《單片機C語言程式設計實訓100例——基於Arduino+Proteus仿真》是2019年8月電子工業出版社出版的圖書,作者是彭偉。
基本介紹
- 書名:單片機C語言程式設計實訓100例——基於Arduino+Proteus仿真
- 作者:彭偉
- ISBN:9787121367885
- 出版社:電子工業出版社
- 出版時間:2019年8月
- 頁數:436
- 字數:715千字
- 開本:16開
- 版次:01-01
內容簡介,圖書目錄,
內容簡介
本書基於Atmel Studio+Arduino IDE開發平台和Proteus硬體仿真平台,精心編寫了100項Arduino C語言程式設計案例並分別提出了難易適中的實訓目標。全書基礎設計類案例涵蓋Arduino最基本的連線埠I/O、定時控制、A/D轉換、中斷控制、串口通信等程式設計;硬體套用類案例涵蓋編/解碼器件,串/並與並/串轉換器件,LED顯示及驅動器件,字元/圖形液晶,TFT彩屏,實時日曆時鐘器件,I2C/SPI/1-Wire匯流排器件,電動機,溫/濕度、壓力、雷達感測器,SD卡等器件;綜合設計類案例包括大量實用型項目設計,如多功能電子萬年曆、計算器、電子秤、密碼鎖、大幅面LED點陣屏設計、交流電壓檢測、K型熱電偶及鉑電阻溫度計、GPS、紅外遙控、測距、溫室監控、遊戲設計、Arduino Web套用等,因全書大量案例基於庫進行設計,很多複雜的程式均可通過便捷的代碼實現。
圖書目錄
目 錄
第1章 Arduino C語言程式設計概述1
1.1 Arduino簡介1
1.2 Arduino開發環境2
1.3 Arduino開發語言6
1.4 Arduino程式結構6
1.5 基本數據類型、有符號數與無符號數的套用及位相關操作8
1.6 數組、字元串與指針套用11
1.7 全局變數、靜態變數、外部變數及修飾符13
1.8 運算符的優先權14
1.9 關於中英文、數字字元的編碼處理及套用15
1.10 Arduino的常用函式20
1.11 Arduino的特殊暫存器21
1.12 Arduino相關線上資源22
第2章 Proteus操作基礎24
2.1 Proteus操作界面簡介24
2.2 仿真電路原理圖設計25
2.3 選擇元件27
2.4 仿真運行31
第3章 基礎程式設計32
3.1 閃爍的LED32
3.2 雙向來回的流水燈35
3.3 花樣流水燈36
3.4 LED模擬交通燈38
3.5 分立式數碼管循環顯示0~940
3.6 集成式數碼管動態掃描顯示42
3.7 按鍵控制LED開關45
3.8 按鍵消抖處理46
3.9 按鍵調節數碼管閃爍增/減顯示49
3.10 繼電器及雙向晶閘管控制照明設備53
3.11 數碼管顯示4×4鍵盤矩陣按鍵54
3.12 INT0中斷計數58
3.13 INT0~INT3中斷計數62
3.14 Timer0控制LED閃爍65
3.15 使用TimerOne庫實現Timer1控制LED閃爍72
3.16 Timer1定時器中斷控制數碼管動態顯示75
3.17 Timer1定時器中斷控制5×7 LED點陣屏顯示77
3.18 Timer2控制門鈴聲音輸出79
3.19 使用FreqencyTimer2庫實現Timer2控制音階演奏83
3.20 使用MsTimer2庫實現Timer2控制交通指示燈86
3.21 Timer1、Timer2及INT0控制報警器與旋轉燈89
3.22 按鍵控制定時器選播多段音樂92
3.23 用模擬與數字輸出方法實現PWM控制LED漸變94
3.24 模數轉換與數碼管顯示97
3.25 通過A/D轉換實現5路按鍵檢測100
3.26 硬體及軟體串口套用103
3.27 雙機串口雙向通信106
3.28 PC與Arduino雙向串口通信111
3.29 Arduino內置EEPROM讀/寫測試117
3.30 Flash數據訪問120
第4章 硬體套用124
4.1 74HC138解碼器與反向緩衝器控制數碼管顯示124
4.2 用74HC164驅動多位數碼管顯示127
4.3 串入並出晶片74HC595控制數碼管顯示4位數字129
4.4 並/串轉換器74HC165的套用133
4.5 用74HC148擴展中斷135
4.6 串列傳送數據到2片8×8點陣屏滾動顯示138
4.7 數碼管BCD解碼驅動器CD4511與DM7447的套用140
4.8 撥碼開關及74HC245的套用142
4.9 14段與16段數碼管演示144
4.10 16鍵解碼晶片74C922的套用148
4.11 1602字元液晶工作於8位模式切換顯示150
4.12 1602字元液晶工作於4位模式顯示162
4.13 LGM12864(KS0108)液晶屏顯示測試163
4.14 UG-2864(SSD1306)OLED屏顯示測試170
4.15 Nokia5110(PCD8544)液晶屏顯示測試175
4.16 PG160128A(T6963C)液晶屏圖文演示178
4.17 EADOGS102液晶屏顯示測試182
4.18 TFT彩屏ILI9341顯示測試184
4.19 WS2812串列全彩燈顯示測試190
4.20 DS1302實時時鐘套用196
4.21 I2C接口時鐘日曆晶片DS1307的套用200
4.22 日曆時鐘晶片PCF8583的套用206
4.23 I2C接口存儲器AT24C04的讀/寫與顯示(4片)210
4.24 用I2C存儲器設計的中文硬體字型檔的套用217
4.25 I2C接口DS1621溫度感測器測試220
4.26 用I2C接口晶片PCF8574驅動LM044L液晶屏224
4.27 I2C接口數字電位器AD5242的套用226
4.28 用兼容I2C接口的MAX6953驅動4片5×7點陣顯示器228
4.29 用I2C接口控制MAX6955驅動16段數碼管顯示232
4.30 用帶I2C接口的MCP23017擴展16位通用I/O連線埠235
4.31 使用I2C接口器件PCA9555擴展接口239
4.32 I2C接口18位ADC晶片MCP3421的套用244
4.33 SPI接口存儲器AT25F1024的讀/寫與顯示249
4.34 SPI接口數字電位器AD5206的套用測試258
4.35 SPI接口串列共陰驅動器MAX7219控制4+2+2數碼管顯示260
4.36 8位數碼管段位復用串列驅動晶片MAX6951的套用264
4.37 SPI接口溫度感測器TC72的套用測試270
4.38 NTC熱敏電阻套用測試273
4.39 溫度感測器LM35全量程套用測試275
4.40 8路12位模數轉換晶片MCP3208的套用278
4.41 壓力感測器MPX4250的套用282
4.42 直流電動機正/反轉及PWM調速控制284
4.43 ULN2803驅動單極步進電動機的正/反轉287
4.44 L298N驅動雙極步進電動機運行292
4.45 伺服電動機控制測試296
4.46 用M145026與M145027設計的無線收發系統299
4.47 溫/濕度感測器DHT22的套用302
4.48 SRF04雷達測距感測器的套用307
4.49 DS18B20溫度感測器的測試309
4.50 SD卡FAT檔案系統讀/寫測試315
第5章 綜合設計324
5.1 帶日曆時鐘及溫度顯示的電子萬年曆324
5.2 簡易計算器設計329
5.3 電子秤仿真設計333
5.4 簡易加密電子密碼鎖337
5.5 用T6963C液晶與DS1302設計的可調指針式電子鐘342
5.6 溫度控制L298N驅動直流電動機調節轉速349
5.7 ULN2003驅動5路繼電器及74HC595控制電梯數字點陣屏滾動顯示351
5.8 用74LS595與74LS154及反向驅動器7406控制16×16LED點陣屏顯示354
5.9 紅外遙控收發仿真358
5.10 交流電壓檢測與數字顯示仿真363
5.11 3端可調正穩壓器LM317套用測試367
5.12 GP2D12紅外測距感測器的套用370
5.13 帶液晶顯示的K型熱電偶溫度計377
5.14 用MCP3421與RTD-PT100設計的鉑電阻溫度計381
5.15 T6963C液晶顯示的模擬射擊訓練遊戲388
5.16 簡易飛船遊戲392
5.17 可接收串口信息的帶中英文硬字型檔的80×16LED點陣屏399
5.18 GPS導航系統仿真405
5.19 溫室綜合監控系統仿真設計409
5.20 Arduino Web服務套用415
第1章 Arduino C語言程式設計概述1
1.1 Arduino簡介1
1.2 Arduino開發環境2
1.3 Arduino開發語言6
1.4 Arduino程式結構6
1.5 基本數據類型、有符號數與無符號數的套用及位相關操作8
1.6 數組、字元串與指針套用11
1.7 全局變數、靜態變數、外部變數及修飾符13
1.8 運算符的優先權14
1.9 關於中英文、數字字元的編碼處理及套用15
1.10 Arduino的常用函式20
1.11 Arduino的特殊暫存器21
1.12 Arduino相關線上資源22
第2章 Proteus操作基礎24
2.1 Proteus操作界面簡介24
2.2 仿真電路原理圖設計25
2.3 選擇元件27
2.4 仿真運行31
第3章 基礎程式設計32
3.1 閃爍的LED32
3.2 雙向來回的流水燈35
3.3 花樣流水燈36
3.4 LED模擬交通燈38
3.5 分立式數碼管循環顯示0~940
3.6 集成式數碼管動態掃描顯示42
3.7 按鍵控制LED開關45
3.8 按鍵消抖處理46
3.9 按鍵調節數碼管閃爍增/減顯示49
3.10 繼電器及雙向晶閘管控制照明設備53
3.11 數碼管顯示4×4鍵盤矩陣按鍵54
3.12 INT0中斷計數58
3.13 INT0~INT3中斷計數62
3.14 Timer0控制LED閃爍65
3.15 使用TimerOne庫實現Timer1控制LED閃爍72
3.16 Timer1定時器中斷控制數碼管動態顯示75
3.17 Timer1定時器中斷控制5×7 LED點陣屏顯示77
3.18 Timer2控制門鈴聲音輸出79
3.19 使用FreqencyTimer2庫實現Timer2控制音階演奏83
3.20 使用MsTimer2庫實現Timer2控制交通指示燈86
3.21 Timer1、Timer2及INT0控制報警器與旋轉燈89
3.22 按鍵控制定時器選播多段音樂92
3.23 用模擬與數字輸出方法實現PWM控制LED漸變94
3.24 模數轉換與數碼管顯示97
3.25 通過A/D轉換實現5路按鍵檢測100
3.26 硬體及軟體串口套用103
3.27 雙機串口雙向通信106
3.28 PC與Arduino雙向串口通信111
3.29 Arduino內置EEPROM讀/寫測試117
3.30 Flash數據訪問120
第4章 硬體套用124
4.1 74HC138解碼器與反向緩衝器控制數碼管顯示124
4.2 用74HC164驅動多位數碼管顯示127
4.3 串入並出晶片74HC595控制數碼管顯示4位數字129
4.4 並/串轉換器74HC165的套用133
4.5 用74HC148擴展中斷135
4.6 串列傳送數據到2片8×8點陣屏滾動顯示138
4.7 數碼管BCD解碼驅動器CD4511與DM7447的套用140
4.8 撥碼開關及74HC245的套用142
4.9 14段與16段數碼管演示144
4.10 16鍵解碼晶片74C922的套用148
4.11 1602字元液晶工作於8位模式切換顯示150
4.12 1602字元液晶工作於4位模式顯示162
4.13 LGM12864(KS0108)液晶屏顯示測試163
4.14 UG-2864(SSD1306)OLED屏顯示測試170
4.15 Nokia5110(PCD8544)液晶屏顯示測試175
4.16 PG160128A(T6963C)液晶屏圖文演示178
4.17 EADOGS102液晶屏顯示測試182
4.18 TFT彩屏ILI9341顯示測試184
4.19 WS2812串列全彩燈顯示測試190
4.20 DS1302實時時鐘套用196
4.21 I2C接口時鐘日曆晶片DS1307的套用200
4.22 日曆時鐘晶片PCF8583的套用206
4.23 I2C接口存儲器AT24C04的讀/寫與顯示(4片)210
4.24 用I2C存儲器設計的中文硬體字型檔的套用217
4.25 I2C接口DS1621溫度感測器測試220
4.26 用I2C接口晶片PCF8574驅動LM044L液晶屏224
4.27 I2C接口數字電位器AD5242的套用226
4.28 用兼容I2C接口的MAX6953驅動4片5×7點陣顯示器228
4.29 用I2C接口控制MAX6955驅動16段數碼管顯示232
4.30 用帶I2C接口的MCP23017擴展16位通用I/O連線埠235
4.31 使用I2C接口器件PCA9555擴展接口239
4.32 I2C接口18位ADC晶片MCP3421的套用244
4.33 SPI接口存儲器AT25F1024的讀/寫與顯示249
4.34 SPI接口數字電位器AD5206的套用測試258
4.35 SPI接口串列共陰驅動器MAX7219控制4+2+2數碼管顯示260
4.36 8位數碼管段位復用串列驅動晶片MAX6951的套用264
4.37 SPI接口溫度感測器TC72的套用測試270
4.38 NTC熱敏電阻套用測試273
4.39 溫度感測器LM35全量程套用測試275
4.40 8路12位模數轉換晶片MCP3208的套用278
4.41 壓力感測器MPX4250的套用282
4.42 直流電動機正/反轉及PWM調速控制284
4.43 ULN2803驅動單極步進電動機的正/反轉287
4.44 L298N驅動雙極步進電動機運行292
4.45 伺服電動機控制測試296
4.46 用M145026與M145027設計的無線收發系統299
4.47 溫/濕度感測器DHT22的套用302
4.48 SRF04雷達測距感測器的套用307
4.49 DS18B20溫度感測器的測試309
4.50 SD卡FAT檔案系統讀/寫測試315
第5章 綜合設計324
5.1 帶日曆時鐘及溫度顯示的電子萬年曆324
5.2 簡易計算器設計329
5.3 電子秤仿真設計333
5.4 簡易加密電子密碼鎖337
5.5 用T6963C液晶與DS1302設計的可調指針式電子鐘342
5.6 溫度控制L298N驅動直流電動機調節轉速349
5.7 ULN2003驅動5路繼電器及74HC595控制電梯數字點陣屏滾動顯示351
5.8 用74LS595與74LS154及反向驅動器7406控制16×16LED點陣屏顯示354
5.9 紅外遙控收發仿真358
5.10 交流電壓檢測與數字顯示仿真363
5.11 3端可調正穩壓器LM317套用測試367
5.12 GP2D12紅外測距感測器的套用370
5.13 帶液晶顯示的K型熱電偶溫度計377
5.14 用MCP3421與RTD-PT100設計的鉑電阻溫度計381
5.15 T6963C液晶顯示的模擬射擊訓練遊戲388
5.16 簡易飛船遊戲392
5.17 可接收串口信息的帶中英文硬字型檔的80×16LED點陣屏399
5.18 GPS導航系統仿真405
5.19 溫室綜合監控系統仿真設計409
5.20 Arduino Web服務套用415