本書在引導讀者認識C51單片機基本結構基礎上,以C語言為設計語言,通過60個案例、詳細的源代碼介紹了C51單片機程序開發(fā)的各項細節(jié),包括單片機應用系統(tǒng)仿真開發(fā)、接口應用技術、中斷系統(tǒng)與定時/計數(shù)器設計、串行接口技術等。程序代碼經(jīng)典,可移植性強:大部分代碼寫成傻瓜式,對C51單片機可直接套用,也容易移植到AVR、PIC等單片機中去,節(jié)省了開發(fā)時間。全書案例豐富,程序代碼可靠,并可以在相應的平臺下載,幫助單片機開發(fā)人員、電子愛好者以及從事智能電子產(chǎn)品開發(fā)的人員快速入門,并迅速提高開發(fā)能力。
《51單片機C語言開發(fā)教程》
1.注重實用:提供源程序代碼,每個開發(fā)環(huán)節(jié)通過58個案例詳細說明。
2.程序代碼經(jīng)典,可移植性強:大部分代碼寫成傻瓜式,對C51單片機可直接套用,也容易移植到AVR、PIC等單片機中去,節(jié)省了開發(fā)時間。
3 在相應課程平臺讀者可以通過視頻、電子資源學習。
對于剛接觸單片機的學習者,似乎都很迷茫,C語言、匯編語言、電路、開發(fā)板,不知道從哪兒開始學起。其實在學習單片機原理與應用系統(tǒng)開發(fā)時,只有在學習一些理論知識的基礎上,多閱讀單片機應用系統(tǒng)開發(fā)案例,注重單片機應用系統(tǒng)開發(fā)實踐訓練,才能透徹地理解和掌握單片機結構與原理,才能更快更好地掌握單片機應用知識和單片機應用系統(tǒng)開發(fā)技能。本書結合筆者多年的教學和實踐經(jīng)驗,根據(jù)案例閱讀與實踐訓練在學習單片機應用系統(tǒng)開發(fā)過程中的重要性,用C語言為編程語言,由易到難,循序漸進地講述51單片機的硬件結構和功能應用,以及C語言為51單片機編程的方法。全書具有以下特點:一、內(nèi)容全面,既有基礎知識介紹,又重視開發(fā)技能、技巧的說明,初學者可以掌握全面的硬件原理和編程技巧,建立比較完善的知識體系。二、案例豐富,源代碼可靠,講解循序漸進,詳細生動,為讀者打好基礎,增強學習興趣和信心。三、相應課程平臺幫讀者答疑解惑,讀者可以少走彎路,快速入門。筆者基于世界大學城平臺創(chuàng)建了一個自助學習空間,有豐富的學習資源和教學課件等,課程空間鏈接:http://www.worlduc.com/SpaceShow/Index.aspx?uid=359771。本書由劉理云編著,祖國建審稿。在編寫本書過程中,參閱了許多文獻資料,在此謹向各位作者表示誠摯的感謝。單片機和電子技術的知識發(fā)展迅猛,涉及的應用面廣,知識更新快,加上筆著者水平有限,雖經(jīng)努力,但書中仍難免有不足之處,懇請廣大讀者指正。劉理云
第1章C51單片機基本結構與最小應用系統(tǒng)1
1.151單片機的基本結構1
1.1.151單片機內(nèi)部的邏輯結構1
1.1.2CPU2
1.1.3存儲器2
1.1.4可編程并行I/O端口9
1.1.5時鐘電路與復位電路10
1.251單片機引腳功能及最小應用系統(tǒng)13
1.2.151單片機引腳功能13
1.2.251單片機最小應用系統(tǒng)14
案例1:單片機最小系統(tǒng)的制作15
第2章C51程序設計16
2.1C語言的特點16
2.2C語言程序的格式和特點19
2.3數(shù)據(jù)類型與存儲區(qū)域的使用21
2.3.1C語言的數(shù)據(jù)類型21
2.3.2C51新增數(shù)據(jù)類型與存儲區(qū)域的使用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語句構成循環(huán)45
2.6.6while語句與do-while語句46
2.6.7for語句48
2.6.8break語句和continue語句49
2.7位運算49
2.8數(shù)組53
2.9函數(shù)55
2.9.1函數(shù)定義的一般形式57
2.9.2函數(shù)參數(shù)和函數(shù)的值58
2.9.3函數(shù)的調(diào)用61
2.9.4局部變量和全局變量67
2.9.5內(nèi)部函數(shù)和外部函數(shù)71
案例1:用單片機控制一個燈閃爍72
案例2:單片機控制發(fā)光二極管流水燈的設計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的點亮狀態(tài)81
案例14:用for語句控制蜂鳴器鳴笛次數(shù)83
案例15:用while語句控制LED84
案例16:用do-while語句控制P1口8位LED流水點亮85
案例17:用數(shù)組控制P1口8位LED流水點亮86
案例18:用P0、P1口顯示整型函數(shù)返回值87
案例19:用有參函數(shù)控制P1口8位LED流水速度88
案例20:基于延時程序?qū)崿F(xiàn)的音樂播放器89
第3章單片機應用系統(tǒng)仿真開發(fā)工具的使用91
3.1KeilC51的使用方法與程序燒寫91
3.1.1Keil軟件的安裝91
3.1.2工程的創(chuàng)建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的單片機應用系統(tǒng)仿真基本方法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數(shù)碼管點陣顯示器133
4.2.3LCD液晶顯示接口137
案例1:無軟件消抖的獨立式按鍵輸入顯示148
案例2:軟件消抖的獨立式按鍵輸入顯示149
案例3:開關控制LED149
案例4:繼電器控制照明設備150
案例5:按鍵狀態(tài)顯示151
案例6:按鍵控制彩燈的設計152
案例7:按鍵控制數(shù)碼管加1減1顯示155
案例8:單只數(shù)碼管顯示0~9157
案例9:8只數(shù)碼管動態(tài)顯示數(shù)字158
案例10:步進電機驅(qū)動控制設計160
案例11:數(shù)碼管顯示44矩陣鍵盤按鍵號161
案例12:點陣顯示屏的應用設計164
案例13:單片機控制LCD(1602)顯示電路及程序設計186
案例14:單片機控制LCD(12864)顯示電路及程序設計189
案例15:電子數(shù)字密碼鎖204
第5章C51單片機中斷系統(tǒng)與定時/計數(shù)器214
5.1中斷系統(tǒng)214
5.1.1中斷概述214
5.1.2中斷系統(tǒng)的結構及其工作原理215
5.1.3中斷處理過程218
5.1.4中斷服務函數(shù)219
5.1.5中斷系統(tǒng)的應用221
5.2定時/計數(shù)器223
5.2.1定時/計數(shù)器的結構及其工作原理224
5.2.2定時/計數(shù)器的控制224
5.2.3定時/計數(shù)器的工作方式及其應用226
5.2.4借用定時器溢出中斷擴展外部中斷源231
案例1:中斷控制LED顯示變化232
案例2:中斷次數(shù)統(tǒng)計233
案例3:簡易搶答器的設計235
案例4:定時器控制單只LED閃爍240
案例5:基于定時/計數(shù)器控制的流水燈242
案例6:用定時器中斷實現(xiàn)1000000s內(nèi)計時243
案例7:倒計時秒表設計245
案例8:紅外檢測模擬啤酒生產(chǎn)計數(shù)器設計248
案例9:電烤爐智能溫度控制電路及程序設計252
案例10:按鍵控制定時器選播多段音樂253
案例11:反應時間測試儀256
案例12:脈寬測量儀的設計262
案例13:頻率計的設計266
案例14:看門狗269
第6章C51單片機應用系統(tǒng)擴展274
6.1C51單片機的三總線結構274
6.2存儲器的擴展275
6.2.1程序存儲器的擴展275
6.2.2數(shù)據(jù)存儲器的擴展275
6.2.3數(shù)據(jù)存儲器擴展舉例277
6.2.4I/O接口電路280
6.3模擬量輸入輸出接口技術281
6.3.1D/A轉(zhuǎn)換器與單片機的接口設計282
6.3.2A/D轉(zhuǎn)換器與單片機的接口設計285
案例1:ADC0809數(shù)模轉(zhuǎn)換與顯示287
案例2:基于ADC0832的數(shù)字電壓表289
第7章串行接口293
7.1串行口通信概念293
7.251單片機串行接口的結構與控制295
7.3串行接口的工作方式296
7.4串行接口的初始化298
7.5串行接口的異步通信應用299
7.6串行口擴展305
案例1:串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù)307
案例2:并行數(shù)據(jù)轉(zhuǎn)換為串行數(shù)據(jù)309
案例3:甲機通過串口控制乙機LED310
案例4:單片機間雙向通信313
案例5:單片機向主機發(fā)送字符串317
案例6:單片機與PC機通信319
第8章綜合案例323
8.1單片機應用系統(tǒng)的抗干擾設計323
8.1.1硬件抗干擾設計323
8.1.2軟件抗干擾設計325
8.2DS18B20數(shù)字溫度計的設計326
8.2.1功能要求326
8.2.2設計方案選擇326
8.2.3DS18B20的性能特點和內(nèi)部結構327
8.2.4DS18B20的測溫原理329
8.2.5DS18B20的各條ROM命令和接口程序設計330
8.2.6系統(tǒng)硬件電路的設計331
8.2.7系統(tǒng)軟件的設計333
8.2.8調(diào)試及性能分析334
8.2.9源程序清單335
附錄ASCII碼表339
參考文獻341