內容簡介本書全面講述基于AVRGCC的AVR單片機C語言程序設計。首先根據不同編譯器對單片機存儲器操作上的不同,詳細介紹AVRGCC的操作存儲器方法;隨后以大量的實例程序演示AVR單片機內部集成功能模塊的C語言程序設計方法。多數示例程序均基于ATmega8單片機,并在實際硬件上調試通過,對掌握和編程其他AVR器件具有較高的參考價值。本書適合于有一定單片機和C語言基礎知識的工程技術人員、高等院校相關專業(yè)師生使用。前言首先,建議讀者訪問本書的網站http://www.chipart.net,從網站可下載本書中示例程序的源代碼和一些補充內容,并可查看勘誤表等信息。希望讀者以網站上的聯系方式提出對本書的建議并指出內容中存在的錯誤,作者將設法保證網站的必要更新。2004年10月作者用“芯藝”署名,在網上發(fā)布了一個標題為《AVR單片機與GCC編程》的PDF格式文檔,之后得到了廣大網友的認可和支持,他們提出了很多寶貴的意見和建議。本書正是在此基礎上完成的,感謝這些網友的支持。真正撰寫本書是在北京航空航天大學出版社胡曉柏編輯的鼓勵和支持下開始的,在整個出版過程中他給予了很大的幫助,在此表示衷心的感謝。本書為AVR單片機GCC開發(fā)者提供了有價值的信息,內容包含眾多完整的示例程序供參考,盡可能地采用簡單而直接的方式描述問題。本書的讀者假設為具有良好的C語言基礎和單片機知識的設計人員。建議讀者在學習過程中努力創(chuàng)造硬件環(huán)境。作者認為,每當一個單片機按預先編好的程序正確運行時,都會帶來一種成就感,使人對此產生更大的興趣,激勵自學。AVR單片機的硬件開發(fā)可以做到非常廉價,以致于在校學生都可以接受。書中多數示例選用的單片機為ATmega8。ATmega8是ATMEL公司在2002年推出的一款AVR單片機,它內部集成了AVR系列單片機的多數功能,并且價格低廉,在國內的應用較廣,因此比較適用于學習。如果示例程序沒有特殊說明,均使用版本WinAVR20040720編譯,隨著AVR不斷地推出新款單片機,WinAVR的更新也較快,目前的最新版本為WinAVR20050214。之所以更新那么快,是為了支持更多新器件,所以不論哪個版本,只要支持所用到的器件,都是可以用的。本書的結構是按盡可能最好地解釋和描述“AVR單片機GCC開發(fā)”的方式來編排的。全書共包含12章。第1章描述了AVR單片機及GCC的總體情況,并以一個簡單示例的方式介紹了用WinAVR編譯一個AVR應用程序的整個過程;還介紹了學習本書內容時所用到的軟硬件環(huán)境和作者用于測試本書示例的實驗板CAM8。第2章詳細描述了AVR單片機內部各種存儲器的組織結構及在C語言程序中的操作方法。第3章主要討論了單片機程序結構問題,相信這對于初學者會有所幫助。第4章介紹了AVR單片機內部功能模塊及其編程操作方法,并為每個模塊的應用列舉了相應示例。第5章詳細敘述了異步串行通信模塊的應用技術。之所以把UART單獨列入一章,是因為在作者的觀點中UART對單片機系統非常重要。第6章介紹了一種用AVR單片機實現的AT89S52編程器。實際上,它是一個AVR單片機最基礎的應用示例。第7章舉例介紹了AVR單片機內部集成的兩線串行接口模塊(TWI)及其編程。第8章舉例介紹了AVR單片機BootLoader功能。第9章介紹了AVRGCC對匯編語言的支持,其中包括在C語言程序中嵌入匯編、獨立的匯編語言支持及C語言與匯編語言混合編程等方面。第10章介紹了AVRGCC對C++語言的支持。第11章詳細敘述了三個應用實例,分別是“雙基色LED屏控制”、“工作小時計的制作”和“電話遠程控制系統”,它們包括了單片機應用中的各個方面,對于設計開發(fā)人員具有很高的參考價值。第12章主要介紹了AVR單片機上一個自由操作系統AVRX。它能運行于大多數AVR單片機。以上各章節(jié)是按循序漸進的方式編排的,作為初學者,應從第1章開始閱讀,并努力做好書中每一個實驗,這將有助于加深印象。盡管一開始覺得寫這本書有些挑戰(zhàn),但每次讀者的認可和建議讓作者意識到了它的價值所在,希望我們共同努力的結果能在本書的內容中得以體現。再次感謝提出過建議的網友,也感謝購買本書紙版的讀者。你們的建議將是對作者最大的鼓勵,你們的認可將是給作者帶來的最大快樂。另外,為本書的編寫提供幫助的還有范士勇、慶格勒圖、宋艷楷、姚國珍、滿都胡、張翼、張華、周坤、陸新志、李虎林、安強、喬飛和楊勇等,在此表示衷心的感謝。作者2005年10月于內蒙古包頭