本書以80C51為代表,系統(tǒng)、全面地闡述了51系列單片微型計算機(jī)的硬件組成及工作原理、匯編語言和C51語言體系及其程序設(shè)計方法、系統(tǒng)擴(kuò)展的原理及方法、接口技術(shù)及其應(yīng)用基礎(chǔ),并簡要介紹了單片機(jī)應(yīng)用系統(tǒng)設(shè)計、開發(fā)及調(diào)試的原則、步驟、方法及常用的開發(fā)工具。
目前,國內(nèi)本科院校電氣信息類、機(jī)械類、計算機(jī)類相關(guān)專業(yè)普遍開設(shè)了單片機(jī)原理及應(yīng)用方面的課程,其中許多專業(yè)還將它列為重要的必修課程。本書是編者結(jié)合各開設(shè)專業(yè)的特點(diǎn),將自身長期從事相關(guān)教學(xué)和科研的經(jīng)驗成果悉心總結(jié)、提煉而成的。
本書以經(jīng)典的80C51為代表,介紹了51系列單片機(jī)的硬件結(jié)構(gòu)及原理、編程語言及程序設(shè)計方法,進(jìn)而闡述了單片機(jī)系統(tǒng)擴(kuò)展、常用接口技術(shù),后就單片機(jī)應(yīng)用系統(tǒng)開發(fā)的相關(guān)知識進(jìn)行了較深入的探討。本書對各章節(jié)內(nèi)容和編排順序進(jìn)行了精心地組織,全書包括以下8章:第1章單片機(jī)基礎(chǔ)知識導(dǎo)論;第2章51單片機(jī)硬件基礎(chǔ);第3章匯編語言及其程序設(shè)計;第4章51單片機(jī)中斷、定時/計數(shù)器及串行接口;第5章單片機(jī)系統(tǒng)擴(kuò)展的原理及方法;第6章接口技術(shù)及其應(yīng)用基礎(chǔ);第7章C51語言及其程序設(shè)計;第8章51單片機(jī)應(yīng)用系統(tǒng)開發(fā)。為便于讀者更好地理解本書內(nèi)容的重點(diǎn)和難點(diǎn),以及幫助讀者檢驗學(xué)習(xí)的效果,書中每一章都附有思考題。
全書內(nèi)容組織合理,深入淺出,循序漸進(jìn),層次分明;知識點(diǎn)闡述上力求用語精準(zhǔn)、細(xì)致和全面,以期更好地為讀者服務(wù)。主要特色有:①在第1章適當(dāng)補(bǔ)充相關(guān)預(yù)備知識以滿足初學(xué)者,尤其是非計算機(jī)專業(yè)學(xué)生的需求;②在第3章和第7章分別安排了匯編語言和C51語言及程序設(shè)計的內(nèi)容,并闡述了將兩者結(jié)合進(jìn)行混合匯編的方法,從而較全面地涵蓋了程序設(shè)計的知識;③在第8章中向讀者簡介了目前實用的51單片機(jī)開發(fā)軟件Keil μVision及Proteus;④本書在例題及思考題的設(shè)計上,力求把握相關(guān)內(nèi)容的重點(diǎn)和難點(diǎn)知識,注重題目的典型性、實用性和可拓展性。
本書配有精心制作的電子課件可供用書院校使用,如有需要請發(fā)郵件至cipedu@ 163.com索取。
本書由陳慧、劉舉平等編著,參與本書編寫和程序調(diào)試工作的還有李志剛、胡愛閩、羅智中、章海亮、余為清及吳至境,所有編寫人員均長期從事單片機(jī)原理及應(yīng)用相關(guān)的教學(xué)及研究工作。另外,陳浩參與了本書的文字核錯工作。
由于編者水平有限,書中若有缺點(diǎn)或不妥之處,敬請讀者批評指正,謝謝!
編者
2016年9月
第1章單片機(jī)基礎(chǔ)知識導(dǎo)論1
1.1基本術(shù)語及定義1
1.2單片微型計算機(jī)概述2
1.2.1微型計算機(jī)及其系統(tǒng)組成2
1.2.2單片微型計算機(jī)及其應(yīng)用4
1.3數(shù)制及數(shù)制間的轉(zhuǎn)換7
1.3.1常用進(jìn)位計數(shù)制8
1.3.2數(shù)制之間的轉(zhuǎn)換9
1.3.3二進(jìn)制數(shù)的運(yùn)算11
1.4計算機(jī)中數(shù)的表示方法13
1.4.1真值與機(jī)器數(shù)13
1.4.2原碼、反碼與補(bǔ)碼14
1.4.3溢出的判別15
1.4.4定點(diǎn)數(shù)與浮點(diǎn)數(shù)16
1.5計算機(jī)常用編碼18
1.5.1字符的ASCII碼及奇偶檢驗18
1.5.2BCD碼及其十進(jìn)制調(diào)整20
思考題21
第2章51單片機(jī)硬件基礎(chǔ)22
2.180C51單片機(jī)概述22
2.1.180C51內(nèi)部功能結(jié)構(gòu)22
2.1.280C51引腳定義及總線結(jié)構(gòu)23
2.2中央處理器CPU26
2.2.1運(yùn)算部件27
2.2.2控制部件28
2.2.3CPU時序29
2.3存儲器30
2.3.1程序存儲器30
2.3.2內(nèi)部數(shù)據(jù)存儲器31
2.3.3外部數(shù)據(jù)存儲器34
2.4并行I/O接口34
2.4.1P0接口34
2.4.2P1接口36
2.4.3P2接口36
2.4.4P3接口37
2.580C51的工作方式38
2.5.1程序運(yùn)行方式38
2.5.2低功耗方式38
思考題39
第3章匯編語言及其程序設(shè)計41
3.1匯編語言概述41
3.1.1匯編語言源程序及其匯編41
3.1.2匯編語言指令類型與指令格式41
3.1.3匯編語言指令常用符號42
3.1.4操作數(shù)尋址方式43
3.251單片機(jī)匯編語言指令體系45
3.2.1數(shù)據(jù)傳送類指令45
3.2.2算術(shù)運(yùn)算類指令49
3.2.3邏輯運(yùn)算及循環(huán)移位類指令52
3.2.4轉(zhuǎn)移控制類指令54
3.2.5位操作類指令58
3.2.6偽指令59
3.3匯編語言程序設(shè)計61
3.3.1匯編語言程序設(shè)計步驟61
3.3.2程序基本結(jié)構(gòu)及設(shè)計方法63
3.3.3數(shù)碼轉(zhuǎn)換程序設(shè)計67
3.3.4運(yùn)算程序設(shè)計70
3.3.5查表程序設(shè)計74
3.3.6散轉(zhuǎn)程序設(shè)計75
3.3.7延時程序設(shè)計76
思考題77
第4章51單片機(jī)中斷、定時/計數(shù)器及串行接口79
4.1中斷系統(tǒng)79
4.1.1中斷系統(tǒng)概述79
4.1.2中斷源及中斷申請的建立80
4.1.3中斷響應(yīng)的條件81
4.1.4中斷響應(yīng)的過程83
4.1.5中斷的應(yīng)用84
4.2定時/計數(shù)器86
4.2.1定時/計數(shù)器結(jié)構(gòu)及原理86
4.2.2定時/計數(shù)器的工作方式88
4.2.3定時/計數(shù)器的應(yīng)用90
4.3串行通信及串行接口92
4.3.1串行通信概述92
4.3.280C51串行口結(jié)構(gòu)及工作原理95
4.3.380C51串行口的應(yīng)用98
思考題101
第5章單片機(jī)系統(tǒng)擴(kuò)展的原理及方法103
5.1單片機(jī)系統(tǒng)擴(kuò)展概述103
5.1.1系統(tǒng)擴(kuò)展的內(nèi)容及方法103
5.1.2常用擴(kuò)展器件簡介104
5.1.3存儲單元及I/O端口的編址105
5.2存儲器的擴(kuò)展108
5.2.1程序存儲器擴(kuò)展109
5.2.2數(shù)據(jù)存儲器擴(kuò)展111
5.3I/O接口擴(kuò)展114
5.3.1并行I/O接口擴(kuò)展114
5.3.2串行I/O接口的擴(kuò)展115
思考題117
第6章接口技術(shù)及其應(yīng)用基礎(chǔ)119
6.1常用并行I/O接口芯片119
6.1.1接口芯片8255A及其應(yīng)用119
6.1.2接口芯片8155及其應(yīng)用124
6.2鍵盤及其接口130
6.2.1鍵盤的結(jié)構(gòu)及工作原理130
6.2.2鍵盤接口及其應(yīng)用134
6.3LED數(shù)碼顯示器及其接口137
6.3.1LED數(shù)碼顯示器結(jié)構(gòu)及原理137
6.3.2多位LED數(shù)碼顯示器接口及其應(yīng)用139
6.4LCD顯示器及其接口142
6.4.1LCD顯示器結(jié)構(gòu)及原理142
6.4.2LCD顯示器的特點(diǎn)及分類143
6.4.3LCD顯示器接口及其應(yīng)用144
6.5D/A轉(zhuǎn)換器及其接口150
6.5.1D/A轉(zhuǎn)換器結(jié)構(gòu)及原理150
6.5.2D/A轉(zhuǎn)換芯片DAC0832及其應(yīng)用152
6.6A/D轉(zhuǎn)換器及其接口157
6.6.1A/D轉(zhuǎn)換器結(jié)構(gòu)及原理157
6.6.2A/D轉(zhuǎn)換芯片ADC0809及其應(yīng)用158
思考題162
第7章C51語言及其程序設(shè)計164
7.1C51語言及程序結(jié)構(gòu)的特點(diǎn)164
7.1.1C51語言特點(diǎn)164
7.1.2C51程序結(jié)構(gòu)特點(diǎn)164
7.1.3C51預(yù)處理命令166
7.2C51數(shù)據(jù)與運(yùn)算168
7.2.1數(shù)據(jù)類型168
7.2.2常量與變量173
7.2.3運(yùn)算符與表達(dá)式177
7.3C51流程控制語句與函數(shù)179
7.3.1流程控制語句179
7.3.2函數(shù)182
7.4C51程序設(shè)計舉例186
7.4.1單片機(jī)基本I/O口應(yīng)用186
7.4.2訪問外部數(shù)據(jù)存儲器空間187
7.4.3外部中斷的應(yīng)用188
7.4.4定時器/計數(shù)器的應(yīng)用189
7.4.5串行口的應(yīng)用190
7.5C51語言與匯編語言的混合編程192
7.5.1混合匯編的基本方式192
7.5.2C51與匯編之間的參數(shù)傳遞193
7.5.3混合匯編的實現(xiàn)方法194
思考題195
第8章51單片機(jī)應(yīng)用系統(tǒng)開發(fā)197
8.1系統(tǒng)總體方案設(shè)計197
8.2硬件設(shè)計198
8.3軟件設(shè)計200
8.4可靠性設(shè)計201
8.5系統(tǒng)調(diào)試204
8.651單片機(jī)應(yīng)用系統(tǒng)設(shè)計實例208
8.6.1四相步進(jìn)電機(jī)控制系統(tǒng)設(shè)計208
8.6.2十字路口交通信號控制系統(tǒng)設(shè)計212
思考題233
附錄A51系列單片機(jī)指令表234
附錄BC51庫函數(shù)237
參考文獻(xiàn)247