內容簡介
《單片機C語言程式設計實訓100例:基於AVR+Proteus仿真》是由北京航空航天大學出版社出版的。
圖書目錄
第1章 AVR單片機C語言程式設計概述1
1.1 AVR單片機簡介1
1.2 AVRStudio+WinAVR開發環境安裝及套用4
1.3 AVRGCC程式設計基礎7
1.4 程式與數據記憶體訪問14
1.5 I/O連線埠編程14
1.6 外設相關暫存器及套用16
1.7 中斷服務程式31
1.8 GCC在AVR單片機套用系統開發中的優勢33
第2章 Proteus操作基礎35
2.1 Proteus操作界面簡介35
2.2 仿真電路原理圖設計37
2.3 元件選擇39
2.4 仿真運行44
2.5 Proteus與AVRStudio的聯合調試45
2.6 Proteus在AVR單片機套用系統開發中的優勢46
第3章 基礎程式設計48
3.1 閃爍的LED48
3.2 左右來回的流水燈50
3.3 花樣流水燈52
3.4 LED模擬交通燈54
3.5 單只數碼管循環顯示0~957
3.6 8隻數碼管滾動顯示單個數字59
3.7 8隻數碼管掃描顯示多個不同字元61
3.8 K1~K4控制LED移位62
3.9 數碼管顯示4×4鍵盤矩陣按鍵65
3.10 數碼管顯示撥碼開關編碼68
3.11 繼電器控制照明設備70
3.12 開關控制報警器72
3.13 按鍵發音74
3.14 INT0中斷計數76
3.15 INT0與INT1中斷計數79
3.16 TIMER0控制單只LED閃爍83
3.17 TIMER0控制流水燈85
3.18 TIMER0控制數碼管掃描顯示87
3.19 TIMER1控制交通指示燈90
3.20 TIMER1與TIMER2控制十字路口秒計時顯示屏94
3.21 用工作於計數方式的T/C0實現100以內的脈衝或按鍵計數98
3.22 用定時器設計的門鈴100
3.23 報警器與旋轉燈103
3.24 100000s以內的計時程式106
3.25 用TIMER1輸入捕獲功能設計的頻率計109
3.26 用工作於異步模式的T/C2控制的可調式數碼管電子鐘113
3.27 TIMER1定時器比較匹配中斷控制音階播放117
3.28 用TIMER1輸出比較功能調節頻率輸出120
3.29 TIMER1控制的PWM脈寬調製器123
3.30 數碼管顯示兩路A/D轉換結果126
3.31 模擬比較器測試128
3.32 EEPROM讀/寫與數碼管顯示130
3.33 Flash程式空間中的數據訪問136
3.34 單片機與PC機雙向串口通信仿真141
3.35 看門狗套用147
第4章 硬體套用150
4.1 74HC138與74HC154解碼器套用150
4.2 74HC595串入並出晶片套用153
4.3 用74LS148與74LS21擴展中斷157
4.4 62256擴展記憶體實驗160
4.5 用8255實現接口擴展163
4.6 可程式接口晶片8155套用168
4.7 可程式外圍定時/計數器8253套用173
4.8 數碼管BCD解碼驅動器7447與4511套用178
4.9 8×8LED點陣屏顯示數字181
4.10 8位數碼管段位復用串列驅動晶片MAX6951套用183
4.11 串列共陰顯示驅動器MAX7219與7221套用188
4.12 16段數碼管演示193
4.13 16鍵解碼晶片74C922套用196
4.14 1602LCD字元液晶測試程式199
4.15 1602液晶顯示DS1302實時時鐘205
4.16 1602液晶工作於4位模式實時顯示當前時間211
4.17 2×20串列字元液晶演示214
4.18 LGM12864液晶顯示程式217
4.19 PG160128A液晶圖文演示226
4.20 TG126410液晶串列模式顯示247
4.21 用帶SPI接口的MCP23S17擴展16位通用I/O連線埠257
4.22 用TWI接口控制MAX6953驅動4片5×7點陣顯示器262
4.23 用TWI接口控制MAX6955驅動16段數碼管顯示266
4.24 用DAC0832生成多種波形270
4.25 用帶SPI接口的數/模轉換晶片MAX515調節LED亮度273
4.26 正反轉可控的直流電機276
4.27 正反轉可控的步進電機279
4.28 DS18B20溫度感測器測試282
4.29 SPI接口溫度感測器TC72套用測試293
4.30 SHT75溫、濕度感測器測試299
4.31 用SPI接口讀/寫AT25F1024309
4.32 用TWI接口讀/寫24C04318
4.33 MPX4250壓力感測器測試326
4.34 MMC存儲卡測試329
4.35 紅外遙控發射與解碼仿真340
第5章 綜合設計348
5.1 多首電子音樂的選播348
5.2 電子琴仿真353
5.3 普通電話機撥號鍵盤套用357
5.4 1602LCD顯示仿手機鍵盤按鍵字元363
5.5 數碼管模擬顯示乘法口訣369
5.6 用DS1302與數碼管設計的可調電子鐘372
5.7 用DS1302與LGM12864設計的可調式中文電子日曆380
5.8 用PG12864LCD設計的指針式電子鐘393
5.9 高仿真數碼管電子鐘401
5.10 1602LCD顯示的秒表409
5.11 用DS18B20與MAX6951驅動數碼管設計的溫度報警器413
5.12 用1602LCD與DS18B20設計的溫度報警器421
5.13 溫控電機在L298驅動下改變速度與方向運行431
5.14 PG160128中文顯示日期時間及帶刻度顯示當前溫度439
5.15 液晶屏曲線顯示兩路A/D轉換結果447
5.16 用74LS595與74LS154設計的16×16點陣屏452
5.17 用8255與74LS154設計的16×16點陣屏457
5.18 8×8LED點陣屏仿電梯數字滾動顯示461
5.19 用內置EEPROM與1602液晶設計的帶MD5加密的電子密碼鎖466
5.20 12864LCD顯示24C08保存的開機畫面480
5.21 12864LCD顯示EPROM27C256保存的開機畫面488
5.22 I2CAT24C1024×2硬字型檔套用491
5.23 SPI-AT25F2048硬體字型檔套用498
5.24 帶液晶顯示的紅外遙控調速仿真505
5.25 能接收串口信息的帶中英文硬字型檔的80×16點陣顯示屏511
5.26 用AVR與1601LCD設計的計算器523
5.27 電子秤仿真設計531
5.28 模擬射擊訓練遊戲537
5.29 PC機通過485遠程控制單片機546
5.30 用IE訪問AVR+RTL8019設計的乙太網套用系統550
參考文獻568
序言
目前,各高校電類專業都將C語言作為專業基礎課程納入教學計畫。由於C語言功能強大、便於模組化開發、所帶庫函式非常豐富、編寫的程式易於移植,因此,它成為單片機套用系統開發最快速高效的程式設計語言。僅具有C語言基礎知識但不熟悉單片機指令系統的讀者也能很快掌握單片機C程式設計技術,C語言在單片機套用系統設計上的效率優勢已經遠遠高於彙編、BASIC等開發語言。
單片機C程式設計不同於通用計算機應用程式設計,它必須針對具體的微控制器及外圍電路來完成。為便於學習單片機應用程式設計和系統開發,很多公司推出了單片機實驗箱、仿真器和開發板等,這些硬體設備可用於驗證單片機程式、開發和調試單片機套用系統。但由於這些設備價格不菲,它們阻礙了普通讀者對單片機技術的學習和研究。令人高興的是,英國Labcenter公司推出了具有單片機系統仿真功能的Proteus軟體,單片機系統開發通常是基於上位機加目標系統進行的,Proteus的出現使讀者僅用一台PC在純軟體環境中完成系統設計與調試成為可能。目前Proteus支持8051、AVR、PIC等多種單片機,系統庫中包含有大量的模擬、數字、光電和機電類元器件,系統還提供了多種虛擬儀器,用AVR Studio+WinAVR(GCC)開發的程式可以在用Proteus設計的仿真電路中調試和互動運行。這無疑為讀者學習和提高AVR單片機C程式設計技術,為單片機套用系統高水平工程師的成長提供了理想平台。
為幫助讀者快速提高AVR單片機C程式設計水平,本書基於AVR Studio+WinAVR(GCC)組合開發環境和Labcenter公司的Proteus仿真平台,精心安排了100個AVR單片機C程式設計案例,各案例同時給出了難易適中的實訓目標。
前2章分別對AVRGCC程式設計和Proteus操作基礎作了概述。第3章基礎程式部分給出的案例涵蓋AVR單片機連線埠編程、定時/計數器套用、A/D轉換、模擬比較器程式設計、中斷程式設計、EEPROM、Flash、USART及看門狗程式設計,各案例分別對相關知識和技術要點作了闡述與分析,源程式中也給出了豐富的注釋信息。第4章硬體套用部分針對AVR單片機的存儲器擴展、接口擴展、解碼、編碼、驅動、光電、機電、感測器、I2C/TWI及SPI接口器件、MMC、紅外等器件給出了數十個案例,對案例中涉及的硬體技術資料亦進行了有針對性的分析,以便於讀者快速理解相關代碼的編寫原理。第5章的案例綜合套用了單片機內部資源和外部擴展硬體,通過對這些案例的獨立分析研究與調試運行,讀者用C語言開發AVR單片機套用系統的能力會得到大幅提升。
本書是單片機C語言程式設計實訓仿真系列8051版之後的第2冊。為使本書能早日與讀者見面,筆者堅持擠出時間不懈耕耘。在編寫過程中,劉靜、張力、王魏參與了案例的調試與校稿工作,在此對他們深表感謝!本書從選題、撰稿到出版的全過程中,學院領導、學院科研處及高教研究所對本選題始終給予大力支持,並提供項目資助,教務處和信息技術系也一直關注本書的編寫與進展情況,在此一併對學院和部門領導的關心與支持表示由衷感謝!