單片機C語言程序設計實訓100例:基于AVR+Proteus仿真
定 價:65 元
- 作者:彭偉 著
- 出版時間:2010/5/1
- ISBN:9787512400689
- 出 版 社:北京航空航天大學出版社
- 中圖法分類:TP312C
- 頁碼:567
- 紙張:膠版紙
- 版次:1
- 開本:16開
基于AVR Studio+WinAVR(GCC)組合環(huán)境和Proteus硬件仿真平臺,精心安排了100個AVR單片機C程序設計案例!秵纹瑱CC語言程序設計實訓100例:基于AVR+Proteus仿真》提供了所有案例完整的C語言源程序,各案例設計了難易適中的實訓目標。
基礎設計類案例涵蓋AVR單片機最基本的端口編程、定時/計數器應用、中斷程序設計、A/D轉換、比較器程序設計、EEPROM、Flash、USART及看門狗程序設計;硬件應用類案例涉及單片機存儲器擴展、接口擴展、譯碼、編碼、驅動、光電、機電、傳感器、I2C/TWI及SPI接口器件、MMC、紅外等器件;綜合設計類案例涉及消費類電子產品、儀器儀表及智能控制設備相關技術,相關案例涉及485及RTL8019的應用。
《單片機C語言程序設計實訓100例:基于AVR+Proteus仿真》適合用作大專院校學生學習實踐AVR單片機C語言程序設計技術的參考書,也可用作電子工程技術人員、單片機技術愛好者的學習參考書。
目前,各高校電類專業(yè)都將C語言作為專業(yè)基礎課程納入教學計劃。由于C語言功能強大、便于模塊化開發(fā)、所帶庫函數非常豐富、編寫的程序易于移植,因此,它成為單片機應用系統(tǒng)開發(fā)最快速高效的程序設計語言。僅具有C語言基礎知識但不熟悉單片機指令系統(tǒng)的讀者也能很快掌握單片機C程序設計技術,C語言在單片機應用系統(tǒng)設計上的效率優(yōu)勢已經遠遠高于匯編、BASIC等開發(fā)語言。
單片機C程序設計不同于通用計算機應用程序設計,它必須針對具體的微控制器及外圍電路來完成。為便于學習單片機應用程序設計和系統(tǒng)開發(fā),很多公司推出了單片機實驗箱、仿真器和開發(fā)板等,這些硬件設備可用于驗證單片機程序、開發(fā)和調試單片機應用系統(tǒng)。但由于這些設備價格不菲,它們阻礙了普通讀者對單片機技術的學習和研究。令人高興的是,英國Labcenter公司推出了具有單片機系統(tǒng)仿真功能的Proteus軟件,單片機系統(tǒng)開發(fā)通常是基于上位機加目標系統(tǒng)進行的,Proteus的出現使讀者僅用一臺PC在純軟件環(huán)境中完成系統(tǒng)設計與調試成為可能。目前Proteus支持8051、AVR、PIC等多種單片機,系統(tǒng)庫中包含有大量的模擬、數字、光電和機電類元器件,系統(tǒng)還提供了多種虛擬儀器,用AVR Studio+WinAVR(GCC)開發(fā)的程序可以在用Proteus設計的仿真電路中調試和交互運行。這無疑為讀者學習和提高AVR單片機C程序設計技術,為單片機應用系統(tǒng)高水平工程師的成長提供了理想平臺。
為幫助讀者快速提高AVR單片機C程序設計水平,本書基于AVR Studio+WinAVR(GCC)組合開發(fā)環(huán)境和Labcenter公司的Proteus仿真平臺,精心安排了100個AVR單片機C程序設計案例,各案例同時給出了難易適中的實訓目標。
前2章分別對AVRGCC程序設計和Proteus操作基礎作了概述。第3章基礎程序部分給出的案例涵蓋AVR單片機端口編程、定時/計數器應用、A/D轉換、模擬比較器程序設計、中斷程序設計、EEPROM、Flash、USART及看門狗程序設計,各案例分別對相關知識和技術要點作了闡述與分析,源程序中也給出了豐富的注釋信息。第4章硬件應用部分針對AVR單片機的存儲器擴展、接口擴展、譯碼、編碼、驅動、光電、機電、傳感器、I2C/TWI及SPI接口器件、MMC、紅外等器件給出了數十個案例,對案例中涉及的硬件技術資料亦進行了有針對性的分析,以便于讀者快速理解相關代碼的編寫原理。第5章的案例綜合應用了單片機內部資源和外部擴展硬件,通過對這些案例的獨立分析研究與調試運行,讀者用C語言開發(fā)AVR單片機應用系統(tǒng)的能力會得到大幅提升。
本書是單片機C語言程序設計實訓仿真系列8051版之后的第2冊。為使本書能早日與讀者見面,筆者堅持擠出時間不懈耕耘。在編寫過程中,劉靜、張力、王魏參與了案例的調試與校稿工作,在此對他們深表感謝!本書從選題、撰稿到出版的全過程中,學院領導、學院科研處及高教研究所對本選題始終給予大力支持,并提供項目資助,教務處和信息技術系也一直關注本書的編寫與進展情況,在此一并對學院和部門領導的關心與支持表示由衷感謝!
第1章 AVR單片機C語言程序設計概述1
1.1 AVR單片機簡介1
1.2 AVRStudio+WinAVR開發(fā)環(huán)境安裝及應用4
1.3 AVRGCC程序設計基礎7
1.4 程序與數據內存訪問14
1.5 I/O端口編程14
1.6 外設相關寄存器及應用16
1.7 中斷服務程序31
1.8 GCC在AVR單片機應用系統(tǒng)開發(fā)中的優(yōu)勢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單片機應用系統(tǒng)開發(fā)中的優(yōu)勢46
第3章 基礎程序設計48
3.1 閃爍的LED48
3.2 左右來回的流水燈50
3.3 花樣流水燈52
3.4 LED模擬交通燈54
3.5 單只數碼管循環(huán)顯示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 按鍵發(fā)音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輸出比較功能調節(jié)頻率輸出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調節(jié)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 紅外遙控發(fā)射與解碼仿真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設計的以太網應用系統(tǒng)550
參考文獻568