編輯推薦
對於剛接觸單片機的學習者,似乎都很迷茫,C語言、彙編語言、電路、開發板,不知道從哪兒開始學起。其實在學習單片機原理與套用系統開發時,只有在學習一些理論知識的基礎上,多閱讀單片機套用系統開發案例,注重單片機套用系統開發實踐訓練,才能透徹地理解和掌握單片機結構與原理,才能更快更好地掌握單片機套用知識和單片機套用系統開發技能。
本書結合筆者多年的教學和實踐經驗,根據案例閱讀與實踐訓練在學習單片機套用系統開發過程中的重要性,用C語言為程式語言,由易到難,循序漸進地講述51單片機的硬體結構和功能套用,以及C語言為51單片機編程的方法。
全書具有以下特點:
一、內容全面,既有基礎知識介紹,又重視開發技能、技巧的說明,初學者可以掌握全面的硬體原理和編程技巧,建立比較完善的知識體系。
二、案例豐富,原始碼可靠,講解循序漸進,詳細生動,為讀者打好基礎,增強學習興趣和信心。
三、相應課程平台幫讀者答疑解惑,讀者可以少走彎路,快速入門。
內容簡介
本書在引導讀者認識C51單片機基本結構基礎上,以C語言為設計語言,通過60個案例、詳細的原始碼介紹了C51單片機程式開發的各項細節,包括單片機套用系統仿真開發、接口套用技術、中斷系統與定時/計數器設計、串列接口技術等。程式代碼經典,可移植性強:大部分代碼寫成傻瓜式,對C51單片機可直接套用,也容易移植到AVR、PIC等單片機中去,節省了開發時間。
全書案例豐富,程式代碼可靠,並可以在相應的平台下載,幫助單片機開發人員、電子愛好者以及從事智慧型電子產品開發的人員快速入門,並迅速提高開發能力。
目錄
第1章C51單片機基本結構與最小套用系統1
1.151單片機的基本結構1
1.1.151單片機內部的邏輯結構1
1.1.2CPU2
1.1.3存儲器2
1.1.4可程式並行I/O連線埠9
1.1.5時鐘電路與復位電路10
1.251單片機引腳功能及最小套用系統13
1.2.151單片機引腳功能13
1.2.251單片機最小套用系統14
案例1:單片機最小系統的製作15
第2章C51程式設計16
2.1C語言的特點16
2.2C語言程式的格式和特點19
2.3數據類型與存儲區域的使用21
2.3.1C語言的數據類型21
2.3.2C51新增數據類型與存儲區域的使用23
2.4運算符與表達式28
2.4.1算術運算符與算術表達式29
2.4.2賦值運算符和賦值表達式30
2.4.3關係運算符和關係表達式33
2.4.4邏輯運算符和邏輯表達式33
2.5指針與絕對地址訪問35
2.5.1指針35
2.5.2絕對地址的訪問38
2.6控制語句與程式設計39
2.6.1C語言語句概述39
2.6.2賦值語句40
2.6.3if語句40
2.6.4switch語句43
2.6.5goto語句以及用goto語句構成循環45
2.6.6while語句與do-while語句46
2.6.7for語句48
2.6.8break語句和continue語句49
2.7位運算49
2.8數組53
2.9函式55
2.9.1函式定義的一般形式57
2.9.2函式參數和函式的值58
2.9.3函式的調用61
2.9.4局部變數和全局變數67
2.9.5內部函式和外部函式71
案例1:用單片機控制一個燈閃爍72
案例2:單片機控制發光二極體流水燈的設計73
案例3:通過對P1口地址的操作流水點亮8位LED73
案例4:用P0口、P1口分別顯示加法和減法運算結果75
案例5:用P0、P1口顯示乘法運算結果76
案例6:用P1、P0口顯示除法運算結果76
案例7:用自增運算控制P1口8位LED流水花樣77
案例8:用P1口顯示邏輯“與”運算結果77
案例9:用P1口顯示按位“異或”運算結果78
案例10:用P1顯示左移運算結果78
案例11:用右移(或左移)運算流水點亮P1口8位LED78
案例12:用if語句控制P1口8位LED的流水方向80
案例13:用swtich語句的控制P1口8位LED的點亮狀態81
案例14:用for語句控制蜂鳴器鳴笛次數83
案例15:用while語句控制LED84
案例16:用do-while語句控制P1口8位LED流水點亮85
案例17:用數組控制P1口8位LED流水點亮86
案例18:用P0、P1口顯示整型函式返回值87
案例19:用有參函式控制P1口8位LED流水速度88
案例20:基於延時程式實現的音樂播放器89
第3章單片機套用系統仿真開發工具的使用91
3.1KeilC51的使用方法與程式燒寫91
3.1.1Keil軟體的安裝91
3.1.2工程的創建92
3.1.3編寫程式95
3.1.4程式燒寫100
3.1.5工程軟體仿真102
3.1.6存儲空間資源的查看與修改104
3.1.7變數的查看與修改106
3.1.8外圍設備的操作106
3.2ProteusISIS的使用106
3.2.1ProteusISIS的編輯界面107
3.2.2設計電路原理圖109
3.2.3電路測試和材料清單115
3.2.4ISIS的單片機套用系統仿真基本方法115
案例1:Keil軟體的使用方法及程式燒寫117
案例2:簡易十字路口交通信號燈控制(用Proteus軟體仿真)118
第4章C51單片機簡單接口套用技術121
4.1開關量接口121
4.1.1開關量輸入接口122
4.1.2鍵盤接口124
4.1.3開關量輸出接口128
4.2顯示接口129
4.2.1LED顯示接口130
4.2.2LED數碼管點陣顯示器133
4.2.3LCD液晶顯示接口137
案例1:無軟體消抖的獨立式按鍵輸入顯示148
案例2:軟體消抖的獨立式按鍵輸入顯示149
案例3:開關控制LED149
案例4:繼電器控制照明設備150
案例5:按鍵狀態顯示151
案例6:按鍵控制彩燈的設計152
案例7:按鍵控制數碼管加1減1顯示155
案例8:單只數碼管顯示0~9157
案例9:8隻數碼管動態顯示數字158
案例10:步進電機驅動控制設計160
案例11:數碼管顯示4×4矩陣鍵盤按鍵號161
案例12:點陣顯示屏的套用設計164
案例13:單片機控制LCD(1602)顯示電路及程式設計186
案例14:單片機控制LCD(12864)顯示電路及程式設計189
案例15:電子數字密碼鎖204
第5章C51單片機中斷系統與定時/計數器214
5.1中斷系統214
5.1.1中斷概述214
5.1.2中斷系統的結構及其工作原理215
5.1.3中斷處理過程218
5.1.4中斷服務函式219
5.1.5中斷系統的套用221
5.2定時/計數器223
5.2.1定時/計數器的結構及其工作原理224
5.2.2定時/計數器的控制224
5.2.3定時/計數器的工作方式及其套用226
5.2.4借用定時器溢出中斷擴展外部中斷源231
案例1:中斷控制LED顯示變化232
案例2:中斷次數統計233
案例3:簡易搶答器的設計235
案例4:定時器控制單只LED閃爍240
案例5:基於定時/計數器控制的流水燈242
案例6:用定時器中斷實現1000000s內計時243
案例7:倒計時秒表設計245
案例8:紅外檢測模擬啤酒生產計數器設計248
案例9:電烤爐智慧型溫度控制電路及程式設計252
案例10:按鍵控制定時器選播多段音樂253
案例11:反應時間測試儀256
案例12:脈寬測量儀的設計262
案例13:頻率計的設計266
案例14:看門狗269
第6章C51單片機套用系統擴展274
6.1C51單片機的三匯流排結構274
6.2存儲器的擴展275
6.2.1程式存儲器的擴展275
6.2.2數據存儲器的擴展275
6.2.3數據存儲器擴展舉例277
6.2.4I/O接口電路280
6.3模擬量輸入輸出接口技術281
6.3.1D/A轉換器與單片機的接口設計282
6.3.2A/D轉換器與單片機的接口設計285
案例1:ADC0809數模轉換與顯示287
案例2:基於ADC0832的數字電壓表289
第7章串列接口293
7.1串列口通信概念293
7.251單片機串列接口的結構與控制295
7.3串列接口的工作方式296
7.4串列接口的初始化298
7.5串列接口的異步通信套用299
7.6串列口擴展305
案例1:串列數據轉換為並行數據307
案例2:並行數據轉換為串列數據309
案例3:甲機通過串口控制乙機LED310
案例4:單片機間雙向通信313
案例5:單片機向主機傳送字元串317
案例6:單片機與PC機通信319
第8章綜合案例323
8.1單片機套用系統的抗干擾設計323
8.1.1硬體抗干擾設計323
8.1.2軟體抗干擾設計325
8.2DS18B20數字溫度計的設計326
8.2.1功能要求326
8.2.2設計方案選擇326
8.2.3DS18B20的性能特點和內部結構327
8.2.4DS18B20的測溫原理329
8.2.5DS18B20的各條ROM命令和接口程式設計330
8.2.6系統硬體電路的設計331
8.2.7系統軟體的設計333
8.2.8調試及性能分析334
8.2.9源程式清單335
附錄ASCII碼錶339
參考文獻341