作者從2006年8月起,在《電子世界》雜志上連載了《AVR單片機入門及C語言高效設計實踐》一文。本書以此為母本,以實踐(實驗)為主線,以生動短小的實例為靈魂,穿插介紹了C語言語法及新型高性價比AVR單片機的結構、特性及編程。本書理論與實踐結合,引導讀者循序漸進地學習。每學習一段理論,必有與之對應的短小精悍的程序可供實踐,這樣讀者學得進、記得牢,不會產生畏難情緒,直至徹底掌握AVR單片機的C語言高效編程。
本書的學習風格與《手把手教你學單片機》的風格相同,本書附有光盤,內有書中所有軟件設計的程序文件。可用作中高等職業學校、電視大學等的教學用書,也可用作AVR單片機愛好者自學單片機C語言的教材。
作者從2006年8月起,在《電子世界》雜志上連載了《AVR單片機入門及c語言高效設計實踐》一文。本書以此為母本,以實踐(實驗)為主線,以生動短小的實例為靈魂,穿插介紹了c語言語法及新型高性價比ATMEGAl6(L)單片機的結構、特性及編程。本書理論與實踐結合,引導讀者循序漸進地學習。每學習一段理論,必有與之對應的短小精悍的程序可供實踐,這樣讀者學得進、記得牢,不會產生畏難情緒,直至徹底掌握AVR單片機的C語言高效編程。本書的學習風格與《手把手教你學單片機》的風格相同。本書附有光盤,內有書中所有軟件設計的程序文件。
可用作中高等職業學校、電視大學等的教學用書,也可用作AVR單片機愛好者自學單片機C語言的教材。
編寫本書的宗旨就是,依作者的親身體驗,以實用的方法、易入門的手法,將初學者領進單片機世界的大門,使僅稍懂硬件原理的人通過實踐能理解軟件的作用,讓他們知道在單片機組成的系統中,硬件與軟件的區分并不,硬件能做的工作,一般情況下軟件也能完成,軟件的功能也可用硬件替代。等初步學會了單片機軟件設計后,可將通常由硬件完成的工作交由軟件實現。這樣,系統的體積、功耗、成本將大大降低,而功能得到提升與增強,可使習慣于傳統電路設計的人對單片機產生一種妙不可言的相見恨晚之感,感覺到真正找到了一種理想化的器件,真正感受、體會到現代微型計算機的強大作用,從而投身于單片機的領域中。
第1章 概述
1.1 采用C語言提高編制單片機應用程序的效率
1.2 C語言具有突出的優點
1.3 AvR單片機簡介
1.4 AvR單片機的C編譯器簡介
第2章 學習AVR單片機C程序設計所用的軟件及實驗器材介紹
2.1 IAR Enlbedded Workbench IDE C語言編譯器
2.2 AVR Studio集成開發環境
2.3 PonyProg2000下載軟件及SL—ISP下載軟件
2.4 AVR DEM0單片機綜合實驗板
2.5 AvR單片機JTAG仿真器
2.6 并口下載器
2.7 通用型多功能USB編程器
第3章 AvR單片機開發軟件的安裝及及時個入門程序
3.1 安裝IAR for AVR 4.30集成開發環境
3.2 安裝AVR Studio集成開發環境
3.3 安裝PonyProg2000下載軟件
3.4 安裝SLISP下載軟件
3.5 AvR單片機開發過程
3.6 及時個AVR入門程序
第4章 AVR單片機的主要特性及基本結構
4.1 ATMEGA16(L)單片機的產品特性
4.2 ATMEGAl6(L)單片機的基本組成及引腳配置
4.3 AvR單片機的CPU內核
4.4 AvR的存儲器
4.5 系統時鐘及時鐘選項
4.6 電源管理及睡眠模式
4.7 系統控制和復位
4.8 中斷
第5章 c語言基礎知識
5.1 c語言的標識符與關鍵字
5.2 數據類型
5.3 AVR單片機的數據存儲空間
5.4 常量、變量及存儲方式
5.5 數組
5.6 C語言的運算
5.7 流程控制
5.8 函數
5.9 指針
5.10 結構體
5.11 共用體
5.12 中斷函數
第6章 ATMEGA16(L)的I/o端口使用
6.1 ATMEGAl6(L)的I/0端口
6.2 ATMEGAl6(L)中4組通用數字I/0端口的應用設置
6.3 ATMEGA16(L)的I/o端口使用注意事項
6.4 ATMEGAl6(L)PB口輸出實驗
6.5 8位數碼管測試
6.6 獨立式按鍵開關的使用
6.7 發光二極管的移動控制(跑馬燈實驗)
6.8 0~99數字的加減控制
6.9 44行列式按鍵開關的使用
第7章 ATMEGAl6(L)的中斷系統使用
7.1 ATMEGA16(L)的中斷系統
7.2 相關的中斷控制寄存器
7.3 INT1外部中斷實驗
7.4 INTO/INTl中斷計數實驗
7.5 INTO/INTl中斷嵌套實驗
7.6 2路防盜報警器實驗
7.7 低功耗睡眠模式下的按鍵中斷
7.8 44行列式按鍵的睡眠模式中斷喚醒設計
第8章 ATMEGAl6(L)驅動162點陣字符液晶模塊
8.1 162點陣字符液晶顯示器概述
8.2 液晶顯示器的突出優點
8.3 162字符型液晶顯示模塊(LCM)特性
8.4 162字符型液晶顯示模塊(LCM)引腳及功能
8.5 162字符型液晶顯示模塊(LCM)的內部結構
8.6 液晶顯示控制驅動集成電路HD44780特點
8.7 HD44780工作原理
8.8 LCD控制器指令
8.9 LCM工作時序
……
第9章 ATMEGA16(L)的定時/計數器
第10章 ATMEGA16(L)的USART與PC機串行通信
第11章 ATMEGA16(L)的兩線串行接口TWI
第12章 ATMEGA16(L)的模擬比較器
第13章 ATMEGA16(L)的模/數轉換器
第14章 ATMEGA16(L)的同步串行接口SPI
第15章 ATMEGA16(L)驅動12864點陣圖形液晶模塊
第16章 ATMEGA16(L)的系統控制、復位和看門狗定時器
第17章 多功能測溫漢字時鐘實驗
第18章 C++語言開以AVR單片機初步
第1章 概述
自從筆者出版了《手把手教你學單片機》(北京航空航天大學出版社2005年4月)一書后,由于教學方式新穎獨特,入門難度明顯降低,結合邊學邊練的實訓模式,很快有一大批讀者進入了單片機這扇門。據不統計,全國各地(包括港澳臺地區)跟著《手把手教你學單片機》學習的讀者超過50萬名,其中不少讀者已取得了豐碩的成果。有的讀者給筆者來電說研制的"包裝線控制器"已穩定運行數月,還有的讀者利用單片機做"霓虹燈程序控制器"并投放市場……總之,《手把手教你學單片機》使不少讀者從傳統的電子技術領域步入了微型計算機領域,進入了一個暫新的天地。
《手把手教你學單片機》一書是以匯編語言為主進行講解實驗的。所謂匯編語言,就是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。匯編語言的主要優點是占用資源少,程序執行效率高。作為初學者必須基本掌握匯編語言的設計方法,因為匯編語言直接操作計算機的硬件,學習匯編語言對于了解單片機的硬件構造是有幫助的。
匯編語言曾經是單片機工程師進行軟件開發的選擇,匯編語言寫程序代碼效率高,在時序要求嚴格的場合下用得多;但相對而言開發難度較大,而且匯編語言程序的可讀性較差,尤其是遇到算法復雜點的問題時,用匯編寫代碼很容易把自己搞得稀里糊涂;并且匯編語言程序的可移植性也差,基本上不能在各種不同類型的單片機之間進行移植。采用匯編語言編寫單片機應用系統的程序不僅周期長,而且調試和排錯也比較困難。許多讀者都發現,采用匯編語言設計一個大型復雜程序時,讀起來較困難,往往隔一段時間再看,又要花腦力從頭再來。更為重要的是,隨著社會競爭的日益激烈,開發效率已成為商戰致勝的最重要法寶之一。為了較好地解決這些問題,在單片機的開發中引入了高級語言編程,目前C語言是的單片機高級開發語言。
……