《ATmega16單片機C語言程式設計經典實例》
《ATmega16單片機C語言程式設計經典實例》
GITHUB: https://github.com/jash-git/Jash-good-idea-20220101-001/tree/main/HW/Arduino
封面; 1
版權頁; 2
前言; 3
目錄; 5
專案一 單片機及最小應用系統; 8
任務1 認識單片機; 8
任務2 AVR列單片機的識讀; 13
任務3 單片機最小系統及系統控制; 23
任務4 自製下載線; 30
專案二 單片機系統開發軟體的應用; 33
任務1 CVAVR編譯軟體的使用; 33
任務2 AVR Studio集成開發軟體的使用; 41
任務3 PonyProg2000下載軟體的使用; 46
任務4 Proteus 7.10模擬軟體的使用; 48
專案三 AVR單片機C語言程式設計基礎; 57
任務1 C語言程式組成的識讀; 57
任務2 運算子和運算式; 67
任務3 程式結構及流程控制; 74
任務4 陣列與指標; 84
任務5 函數與編譯預處理; 91
專案四 LED廣告燈的設計; 99
任務1 LED控制原理認知; 99
任務2 閃燈廣告燈的設計; 105
任務3 流水廣告燈的設計; 109
任務4 拉幕式與閉幕式廣告燈的設計; 113
任務5 複雜廣告燈的設計; 117
專案五 按鍵控制與LED數碼管顯示; 122
任務1 按鍵控制原理認知; 122
任務2 LED數碼管顯示原理認知; 124
任務3 單個LED數碼管顯示設計; 128
任務4 多個LED數碼管顯示設計; 132
任務5 條形LED花樣選擇顯示; 138
任務6 查詢式按鍵設計; 141
任務7 LED數碼管顯示矩陣鍵盤按鍵的設計; 144
任務8 矩陣鍵盤按鍵控制LED+條形LED的設計; 151
任務9 簡單撥號鍵盤的設計; 158
專案六 中斷控制的應用設計; 165
任務1 中斷控制原理; 165
任務2 帶中斷控制的LED花樣燈; 172
任務3 採用外中斷控制的條形LED彩燈設計; 175
任務4 採用兩個外中斷的條形LED彩燈控制; 179
任務5 採用兩個外中斷實現LED鍵控移位; 183
任務6 採用外中斷實現計數; 186
任務7 採用外中斷進行計數和清零控制; 191
專案七 計時器/計數器控制的應用設計; 196
任務1 計時器/計數器控制原理認知; 196
任務2 用T/C0實現簡單計數; 212
任務3 用T/C0實現流水燈控制; 216
任務4 用T/C0的CTC模式輸出方波; 219
任務5 用T/C0的快速PWM模式實現調光控制; 222
任務6 用T/C0的相位修正PWM模式實現調光控制; 227
任務7 用T/C1計數功能實現數控分頻; 230
任務8 用T/C1實現預置值計時器的設計; 234
任務9 用T/C1的CTC模式實現LED滾動閃爍控制; 240
任務10 用T/C1的快速PWM模式輸出占空比可調方波; 244
任務11 用T/C1的相位修改PWM模式輸出占空比可調方波; 249
任務12 用T/C1的輸入捕捉模式測量低頻脈衝週期; 253
任務13 用T/C2實現簡單門鈴控制; 257
任務14 用T/C2的非同步計數功能實現59s計時器; 261
專案八 單片機串列通信設計; 267
任務1 單片機串列通信原理認知; 267
任務2 甲機通過串口控制乙機LED顯示狀態; 278
任務3 甲機通過串口控制乙機計時; 282
任務4 單片機雙機通信; 290
任務5 單片機自發自收資料; 298
專案九 LED點陣顯示器的設計; 305
任務1 LED點陣顯示器控制原理認知; 305
任務2 一個5×7 LED點陣字元顯示; 307
任務3 一個8×8 LED點陣字串顯示; 310
任務4 兩個8×8 LED點陣字串顯示; 317
任務5 兩個8×8 LED點陣滾動顯示; 324
任務6 一個16×16 LED點陣漢字顯示; 328
任務7 一個16×16 LED點陣漢字移位元顯示; 334
任務8 兩個16×16 LED點陣漢字顯示; 337
任務9 兩個16×16 LED點陣漢字分批顯示; 343
任務10 兩個16×16 LED點陣漢字移位元顯示; 347
專案十 LCD顯示設計; 352
任務1 LCD顯示原理認知; 352
任務2 字元式LCD顯示字串; 358
任務3 字元式LCD顯示漢字; 361
任務4 字元式LCD顯示可調數位鐘; 367
任務5 字元式LCD滾動顯示; 373
任務6 字元式LCD移位元顯示; 376
項目十一 內置模擬比較器和A/D轉換器的應用設計; 382
任務1 內置類比比較器和A/D轉換器; 382
任務2 系統電源電壓監測器的設計; 392
任務3 低壓報警器的設計; 395
任務4 簡易電壓表的設計; 398
任務5 電壓監控器的設計; 403
專案十二 SPI串列匯流排的應用; 408
任務1 SPI匯流排基礎知識認知; 408
任務2 74LS164驅動數碼管顯示可調數位鐘; 412
任務3 74HC595驅動1位元數碼管顯示; 420
任務4 74HC595驅動數碼管動態顯示; 423
任務5 74HC595驅動8位元數碼管靜態顯示; 428
任務6 MAX7219驅動數碼管動態顯示; 434
專案十三 TWI串列匯流排的應用; 442
任務1 TWI匯流排基礎知識; 442
任務2 24C256開啟次數讀/寫控制; 451
任務3 PCF857驅動8位元數碼管顯示; 458
專案十四 D/A轉換器的應用; 463
任務1 DAC0832 D/A轉換; 463
任務2 TLC5615 D/A轉換; 468
任務3 MAX515 D/A轉換; 474
專案十五 綜合應用設計; 478
任務1 籃球計分器的設計; 478
任務2 按鍵選播電子音樂; 488
任務3 DS1302時鐘日曆的設計; 496
附錄A Proteus常用快速鍵; 507
附錄B CodeVisionAVR編譯器常用庫函數簡介; 508
參考文獻; 525
反侵權盜版聲明; 526
《ATmega16單片機C語言程式設計經典實例》; 527