51單片機輕鬆入門--基於STC15W4K系列(C語言版第2版工程師經驗手記)
內容描述
本書以最新流行的不需要外部晶振與復位電路的可仿真的高速STC15W4K系列單片機為核心,
詳細介紹了單片機內部功能模塊,如定時器、中斷、串口、SPI接口、片內比較器、
A/ D轉換器、可編程計數器陣列(CCP/PCA/PWM)等。
每個重要知識點都有簡短精煉的實例作驗證。
然後是對單片機常用外圍接口的介紹與STC15W4K系列單片機的實際產品運用實例分析。
另外,對單片機開發必須掌握的C語言基礎知識與Keil開發環境也作了較為詳細的介紹。
對於沒有學習過C語言的讀者,通過本書也能輕鬆進入以C語言開發單片機的學習狀態。
為了快速驗證本書的理論知識,作者設計了與本書配套的雙核(兩個仿真型單片機)實驗板,
功能強大,操作簡單、直觀,除用於本書實驗測試外,還可用於產品前期開發。
本書可作為普通高校計算機類、電子類、自動控制類、儀器儀表類、機電一體化類等相關專業的教學用書,
對已有一定設計經驗的單片機工程師也有重要的參考價值。
目錄大綱
目錄
第1章單片機高效入門1
1.1單片機簡介1
1.1.1認識單片機1
1.1.2單片機的用途2
1.1.3典型芯片與C語言介紹2
1.1.4本書的配套實驗板及相關學習工具介紹4
1.2點亮一個發光二極管13
1.2.1單片機型號命名規則13
1.2.2單片機引腳功能說明14
1.2.3製作一個最簡單的單片機實驗電路20
1.2.4使用KeilμVision3環境編寫最簡單的程序21
1.2.5ISP下載程序到單片機26
1.2.6程序解釋27
1.3Keil仿真29
1.3.1軟件仿真29
1.3.2硬件仿真36
1.4經典流水燈實例38
1.5單片機C語言延時程序詳解40
1.5.1學會使用計算軟件40
1.5.2計算軟件內部運算過程詳解42
1.5.3利用庫函數實現短暫精確延時47
1.5.4使用定時器/計數器實現精確延時48
1.6main()、void main()和int main()的區別48
1.7printf格式化輸出函數49
第2章單片機開發必須掌握的C語言基礎53
2.1簡單數據類型與運算符53
2.1.1原碼、反碼、補碼、BCD碼和格雷碼54
2.1.2常量58
2.1.3變量的數據類型(bit、char、int、long、float)58
2.1.4變量的存儲空間(code、data、bdata、idata、xdata)67
2.1.5變量的存儲類型(auto、static、extern)68
2.1.6變量的作用域71
2.1.7運算符72
2.1.8運算符的優先級與結合性78
2.2C51構造數據類型80
2.2.1數組80
2.2.2結構體82
2.2.3共用體85
2.2.4指針86
2.2.5#define與typedef的區別90
2.3流程與控制92
2.3.1分支結構92
2.3.2循環結構94
2.3.3跳轉結構95
2.4函數97
2.4.1函數定義97
2.4.2調用格式98
2.4.3傳值調用與傳地址調用的對比98
2.4.4數組作為函數參數99
2.4.5使用指針變量作為函數形式參數100
2.4.6使用結構體變量指針作為函數參數100
2.4.7函數作用域101
2.4.8庫函數101
2.5模塊化編程102
2.5.1頭文件的編寫102
2.5.2條件編譯102
2.5.3多文件程序(模塊化編程)103
2.6關鍵字volatile與代碼調試小技巧105
第3章定時器/計數器、中斷系統106
3.1定時器/計數器106
3.1.1單片機定時器/計數器工作原理概述106
3.1.2定時器/計數器的相關寄存器107
3.1.3定時器/計數器的工作方式110
3.1.4初值計算113
3.1.5編程舉例114
3.2可編程時鐘輸出117
3.3中斷系統122
3.3.1中斷系統結構圖122
3.3.2操作電路圖中的開關(相關寄存器介紹)122
3.3.3編寫中斷函數126
3.3.4中斷程序舉例127
3.3.5外部中斷代碼調試(按鍵的防抖技術)131
第4章串口通信133
4.1最基本的串口通信133
4.1.1串口數據發送格式134
4.1.2串口相關的寄存器135
4.1.3波特率的計算步驟140
4.1.4單片機與計算機通信的簡單例子142
4.2徹底理解串口通信協議146
4.3串口隔離電路151
4.4計算機擴展串口(USB轉串口芯片CH340G)153
4.5RS485串行通信157
4.6SSI通信160
4.6.1SSI數據通信格式160
4.6.2SSI硬件電路161
4.6.3SSI軟件實現162
4.7數據通信中的錯誤校驗165
4.7.1校驗和(CheckSum)與重要的串口通信實例165
4.7.2CRC校驗168
4.8單片機向計算機發送多種格式的數據172
第5章SPI通信177
5.1SPI總線數據傳輸格式177
5.1.1接口定義177
5.1.2傳輸格式178
5.2SPI接口相關的寄存器179
5.2.1SPI相關的特殊功能寄存器179
5.2.2SPI接口引腳切換183
5.3SPI接口運用舉例183
第6章I2C通信193
6.1I2C總線數據傳輸格式193
6.1.1各位傳輸要求193
6.1.2多字節傳輸格式196
6.2程序模塊功能測試200
6.2.1硬件仿真觀察24C02讀/寫結果(R/C時鐘:22.118 4 MHz)200
6.2.2硬件仿真觀察24C32/64讀/寫結果(R/C時鐘:22.118 4 MHz)207
6.2.3硬件仿真觀察24C512讀/寫結果(R/C時鐘:22.118 4 MHz)210
6.324C02運用實例(斷電瞬間存儲整數或浮點數)210
第7章單片機內部比較器與DataFlash存儲器217
7.1STC15W系列單片機內部比較器217
7.1.1比較器結構圖217
7.1.2寄存器說明217
7.1.3電路講解與程序實例219
7.2DataFlash存儲器220
7.2.1與DataFlash操作有關的寄存器介紹221
7.2.2DataFlash操作實例(斷電瞬間存儲數據)223
第8章可編程計數陣列CCP/PCA/PWM模塊(可用作DAC)229
8.1PCA模塊總體結構圖229
8.2PCA模塊的特殊功能寄存器230
8.3PCA模塊的工作模式與應用舉例233
第9章模/數轉換器ADC244
9.1ADC的主要技術指標244
9.2使用單片機內部的10位ADC246
9.2.1與ADC相關的特殊功能寄存器246
9.2.2實例代碼248
9.312位ADC轉換芯片MCP3202B250
9.4單通道16位ADC轉換芯片ADS1110A0256
9.5單通道18位ADC轉換芯片MCP3421A0TE/CH256
第10章數/模轉換器DAC261
10.1TLC5615數/模轉換電路與基本測試程序261
10.2TLC5615產生鋸齒波、正弦波、三角波264
10.3TLC5615的高級運用(播放歌曲)268
第11章單片機實用小知識272
11.1復位272
11.1.1外部RST引腳復位272
11.1.2軟件復位273
11.1.3內部低壓檢測復位273
11.1.4看門狗定時器復位274
11.2單片機的低功耗設計275
11.2.1相關寄存器說明275
11.2.2應用舉例278
11.3單片機擴展32 KB外部數據存儲器62C256279
11.3.1電路講解280
11.3.2軟件測試實例281
第12章常用單片機接口程序284
12.1數碼管靜態顯示284
12.2數碼管動態顯示288
12.3獨立鍵盤292
12.4矩陣鍵盤300
第13章1602液晶308
13.11602液晶外形與電路圖308
13.21602液晶應用舉例309
13.31602液晶顯示漢字與特殊符號313
13.4使用中文液晶屏315
第14章精密電壓表/電流表/通用顯示器/計數器的製作317
14.1功能說明與電路原理分析317
14.2程序實例320
14.2.1通用顯示器功能檢測程序(外部程序)320
14.2.2計數器功能檢測程序(外部程序)321
14.2.3模塊程序321
第15章步進電機測試326
15.1步進電機的特點326
15.2步進電機的3種勵磁方式327
15.3步進電機驅動電路328
15.4步進電機驅動實例329
15.5步進電機專用驅動器介紹331
第16章頻率檢測334
16.1頻率檢測的用途與頻率定義334
16.2頻率檢測實例335
第17章DS1302時鐘芯片340
17.1DS1302的SPI數據通信格式340
17.2程序實例342
第18章紅外通信346
18.1紅外通信電路與基本原理346
18.2紅外接收軟件實例349
第19章單總線DS18B20通信(長距離無線通信)355
19.1DS18B20運用基礎355
19.1.1單只DS18B20的溫度檢測電路355
19.1.2DS18B20的通信時序355
19.1.3DS18B20內部功能部件ROM、RAM和指令集358
19.1.4讀取溫度步驟360
19.2單只DS18B20的溫度檢測361
19.3多只DS18B20的溫度檢測366
19.3.1讀取傳感器代碼366
19.3.2讀取傳感器溫度367
第20章SD卡與znFAT文件系統371
20.1認識SD卡與SD卡驅動程序371
20.1.1認識SD卡371
20.1.2電路講解373
20.1.3通信時序與完整驅動程序說明373
20.2znFAT文件系統382
20.2.1znFAT的移植方法382
20.2.2znFAT移植實例386
第21章MP3播放器實驗388
21.1MP3的介紹與電路講解388
21.1.1VS1003B引腳說明389
21.1.2VS1003寄存器390
21.2正弦測試392
21.3通過SD卡播放MP3文件395
第22章數字存儲示波器技巧與邏輯分析儀的操作399
22.1測量直流電源開關機瞬間輸出的毛刺浪湧399
22.2測量稍縱即逝的紅外發射信號403
22.3精確測量直流電源紋波405
22.4示波器帶寬選用依據407
22.5邏輯分析儀概述408
22.6線束和測試夾409
22.7邏輯分析儀軟件的安裝409
22.8採集數據和分析儀設置413
22.8.1演示模式413
22.8.2採集數據413
22.8.3邏輯分析儀設置414
22.9導航數據(縮放、平移、重排、隱藏等)415
22.9.1放大和縮小415
22.9.2左右平移415
22.9.3數字邊緣跳躍416
22.9.4調整窗口大小417
22.9.5使用標籤418
22.9.6重新排列通道419
22.9.7改變通道信號高度420
22.9.8隱藏通道420
22.10測量、時間標記和書籤421
22.10.1數字測量421
22.10.2使用註釋422
22.10.3使用時間標記422
22.10.4添加多個時間標記423
22.10.5快速顯示任意兩點間時間(持久顯示)424
22.11使用書籤426
22.12使用協議分析器427
22.13在波形的指定點啟動分析器430
22.14查看協議分析器結果431
22.15導出分析結果432
22.16保存和加載波形433
22.17使用觸發433
22.17.1邊沿觸發433
22.17.2脈衝寬度觸發435
22.18鍵盤快捷鍵435
附錄ASCII碼表436
參考文獻438