本書從實(shí)際應(yīng)用出發(fā),以AT89C51為藍(lán)本,以C語言為主要編程語言,講解了單片機(jī)原理與應(yīng)用。書中也兼顧講解匯編語言,主要目的是幫助對單片機(jī)原理的理解。本書力圖從以前單片機(jī)教材糾纏具體單片機(jī)原理的解析上解脫出來,著重講解單片機(jī)各種功能的應(yīng)用,以及如何用C程序?qū)崿F(xiàn)要求的功能。本書適合作為普通高等學(xué)校的工學(xué)/電氣信息類本科專業(yè)的教材,也可以作為相關(guān)專業(yè)工程技術(shù)人員的技術(shù)參考書。
適讀人群 :本書適合作為普通高等學(xué)校的工學(xué)/電氣信息類本科專業(yè)的教材,也可以作為相關(guān)專業(yè)工程技術(shù)人員的技術(shù)參考書。
以AT89C51為藍(lán)本,以C語言為主要編程語言,講解了單片機(jī)原理與應(yīng)用。書中也兼顧講解匯編語言。
前言
本書力圖從之前的單片機(jī)教材糾纏于具體單片機(jī)原理的解析上解脫出來,著重講解單片機(jī)各種功能的應(yīng)用。本書的重點(diǎn)既不是AT89C51硬件原理的細(xì)節(jié),也不是軟件語法編程技巧,而是如何使用AT89C51的功能;如何針對應(yīng)用需要,用C程序?qū)崿F(xiàn)要求的功能。本書也介紹匯編指令,但僅僅是為了幫助讀者加深對硬件及單片機(jī)工作原理的了解,因此對匯編語言僅作少量介紹,第6章以后所有例子都以C語言為主。
本書不再介紹8255、8279等芯片的應(yīng)用,避免糾結(jié)于對芯片應(yīng)用的具體細(xì)節(jié)。對于程序存儲器的擴(kuò)展也一帶而過。書中的所有程序舉例均調(diào)試通過,應(yīng)用實(shí)例也在硬件和軟件上調(diào)試無誤。
本書以AT89C51為基礎(chǔ),如果書中出現(xiàn)MCS-51的字樣,則表明對所有MCS-51內(nèi)核的單片機(jī)均適用,具體的示例中一般使用AT89C51或AT89S51。
本書的第1版自2008年發(fā)行以來,許多讀者對書中的錯(cuò)誤和內(nèi)容給出了指正,結(jié)合近幾年使用該書作為教材進(jìn)行的教學(xué)實(shí)踐,對全書的內(nèi)容、書后的習(xí)題進(jìn)行了重新梳理,修訂了錯(cuò)誤,增添了部分內(nèi)容。
本書由杭和平、邵明剛共同在第1版的基礎(chǔ)上修訂和編寫,杭和平負(fù)責(zé)了第1、2、3、4、9、10章;邵明剛負(fù)責(zé)第5、6、7、8章。
本書在編寫過程中參考了大量單片機(jī)方面的教材和技術(shù)書籍,力求編寫出一本實(shí)用性強(qiáng)、重點(diǎn)突出、容易學(xué)習(xí)的教材。由于編者水平所限、時(shí)間倉促,其中難免有錯(cuò)誤之處,懇請讀者提出有益建議。
編者
目錄
前言
第1章單片機(jī)的基礎(chǔ)知識
1.1單片機(jī)概述
1.1.1單片機(jī)的結(jié)構(gòu)與組成
1.1.2單片機(jī)的分類和指標(biāo)
1.1.3MCS-51單片機(jī)及其兼容產(chǎn)品
1.2其他常用單片機(jī)系列
1.2.1Microchip的PIC系列單片機(jī)
1.2.2TI公司的超低功耗型MSP430系列單片機(jī)
1.2.3Atmel公司的AVR系列單片機(jī)
1.2.4ADI公司的ADuC8XX系列單片機(jī)
1.2.5飛思卡爾公司的HCS12X系列單片機(jī)
1.2.6ST公司的STM32FXXX系列單片機(jī)
1.3單片機(jī)的特點(diǎn)及應(yīng)用領(lǐng)域
1.3.1單片機(jī)的特點(diǎn)
1.3.2單片機(jī)的應(yīng)用領(lǐng)域
1.4一個(gè)單片機(jī)的簡單應(yīng)用系統(tǒng)
1.4.1單片機(jī)的I/O電平
1.4.2單片機(jī)電路中晶體管的應(yīng)用
1.4.3單片機(jī)的一個(gè)簡單應(yīng)用系統(tǒng)
1.5單片機(jī)的數(shù)制與編碼
1.5.1進(jìn)位計(jì)數(shù)制
1.5.2進(jìn)位計(jì)數(shù)制的相互轉(zhuǎn)換
1.5.3二進(jìn)制數(shù)和十六進(jìn)制數(shù)的運(yùn)算
1.5.4數(shù)碼和字符的代碼表示
習(xí)題1
第2章AT89C51單片機(jī)的結(jié)構(gòu)
2.1AT89C51單片機(jī)的內(nèi)部結(jié)構(gòu)及引腳功能
2.1.1AT89C51單片機(jī)的內(nèi)部結(jié)構(gòu)
2.1.2AT89C51單片機(jī)的引腳功能
2.2AT89C51單片機(jī)的存儲器配置
2.2.1AT89C51存儲器配置的特點(diǎn)
2.2.2AT89C51的程序存儲器
2.2.3AT89C51低128B的片內(nèi)數(shù)據(jù)存儲器
2.2.4AT89C51的特殊功能寄存器
2.2.5AT89C51的片外數(shù)據(jù)存儲器
2.2.6AT89C52的存儲器配置
2.3AT89C51的時(shí)鐘電路與CPU時(shí)序
2.3.1AT89C51的時(shí)鐘電路
2.3.2單片機(jī)時(shí)序
2.4AT89C51復(fù)位與復(fù)位電路
2.5AT89C51單片機(jī)的最小系統(tǒng)
習(xí)題2
第3章MCS-51單片機(jī)的指令系統(tǒng)
3.1指令系統(tǒng)基本概念
3.1.1指令系統(tǒng)概述
3.1.2指令格式
3.1.3尋址方式
3.2指令系統(tǒng)
3.2.1數(shù)據(jù)傳送類指令
3.2.2算術(shù)運(yùn)算類指令
3.2.3邏輯運(yùn)算及位移指令
3.2.4位操作類指令
3.2.5控制轉(zhuǎn)移類指令
習(xí)題3
第4章單片機(jī)的C51編程語言
4.1C51編程語言概述
4.1.1C51語言編程與匯編語言編程相比的優(yōu)勢
4.1.2單片機(jī)C51與PC上的標(biāo)準(zhǔn)ANSl C編譯器的主要區(qū)別
4.1.3C51的開發(fā)過程
4.2C51的標(biāo)識符和關(guān)鍵字
4.3C51的變量與數(shù)據(jù)類型
4.3.1常量與變量
4.3.2數(shù)據(jù)類型
4.3.3變量的存儲器類型
4.3.4存儲器模式
4.3.5C51語言中的特殊數(shù)據(jù)類型
4.4C51語言的數(shù)組、指針與結(jié)構(gòu)
4.4.1數(shù)組與指針
4.4.2對絕對地址進(jìn)行訪問
4.5C51的運(yùn)算符和表達(dá)式
4.6C51語言的程序結(jié)構(gòu)
4.6.1順序結(jié)構(gòu)
4.6.2選擇結(jié)構(gòu)
4.6.3循環(huán)結(jié)構(gòu)
4.7C51語言的函數(shù)
4.8中斷服務(wù)程序
4.9C51的預(yù)處理
4.9.1宏定義
4.9.2包含文件
4.9.3條件編譯命令
4.10C51的庫函數(shù)
4.10.1本征庫函數(shù)
4.10.2常用庫函數(shù)介紹
4.11使用C51編譯器時(shí)的注意事項(xiàng)
習(xí)題4
第5章MCS-51單片機(jī)的程序設(shè)計(jì)
5.1程序設(shè)計(jì)基本方法
5.1.1單片機(jī)程序設(shè)計(jì)語言
5.1.2程序設(shè)計(jì)步驟
5.1.3程序流程圖
5.2匯編語言程序設(shè)計(jì)的基本概念
5.2.1MCS-51偽指令
5.2.2匯編語言程序的格式
5.2.3匯編語言程序的匯編
5.3單片機(jī)匯編語言與C51語言的程序設(shè)計(jì)
5.3.116位加減法程序
5.3.2順序程序
5.3.3分支程序
5.3.4循環(huán)程序
5.3.5查表程序
5.3.6散轉(zhuǎn)程序
5.3.7子程序
習(xí)題5
第6章MCS-51單片機(jī)的中斷系統(tǒng)與定時(shí)/計(jì)數(shù)器
6.1中斷系統(tǒng)
6.1.1概述
6.1.2AT89C51中斷系統(tǒng)
6.1.3中斷應(yīng)用實(shí)例
6.2定時(shí)/計(jì)數(shù)器及應(yīng)用
6.2.1定時(shí)/計(jì)數(shù)器0、1 的結(jié)構(gòu)及工作原理
6.2.2定時(shí)/計(jì)數(shù)器0、1 的四種工作方式
6.2.3定時(shí)/計(jì)數(shù)器0、1的應(yīng)用
6.2.4AT89C52定時(shí)/計(jì)數(shù)器2的結(jié)構(gòu)
6.2.5AT89C52定時(shí)/計(jì)數(shù)器2的工作方式
習(xí)題6
第7章MCS-51單片機(jī)串行通信及其應(yīng)用
7.1串行通信概述
7.1.1并行通信和串行通信
7.1.2異步通信和同步通信
7.1.3單片機(jī)串行通信傳輸方式
7.1.4串行數(shù)據(jù)通信的傳輸速率
7.2MCS-51串行口
7.2.1MCS-51串行口的結(jié)構(gòu)
7.2.2MCS-51串行口控制寄存器
7.2.3MCS-51串行口的工作方式及波特率計(jì)算
7.3串行通信協(xié)議
7.3.1RS-232協(xié)議
7.3.2RS-485協(xié)議
7.3.3串行通信的數(shù)據(jù)校驗(yàn)
7.4串行通信的應(yīng)用
習(xí)題7
第8章MCS-51單片機(jī)接口電路
8.1單片機(jī)接口電路概述
8.2人機(jī)接口
8.2.1LED接口
8.2.2鍵盤接口
8.2.3蜂鳴器接口
8.3數(shù)字I/O接口
8.3.1光電隔離接口
8.3.2功率輸出(繼電器)接口
8.4串行接口
8.4.1單片機(jī)和PC通信
8.4.2串行口通信應(yīng)用及實(shí)例
8.4.3I2C接口存儲芯片的應(yīng)用
8.4.4SPI串行總線應(yīng)用及實(shí)例
習(xí)題8
第9章MCS-51單片機(jī)總線系統(tǒng)與I/O口擴(kuò)展
9.1單片機(jī)擴(kuò)展總線概述
9.1.1片外總線擴(kuò)展結(jié)構(gòu)
9.1.2三總線擴(kuò)展的方法
9.1.3AT89CX系列單片機(jī)的片內(nèi)存儲容量
9.2MCS-51單片機(jī)I/O口擴(kuò)展及編址技術(shù)
9.2.1單片機(jī)I/O口擴(kuò)展
9.2.2AT89C51單片機(jī)總線擴(kuò)展的編址技術(shù)
9.3MCS-51存儲器擴(kuò)展技術(shù)
9.3.1AT89C51單片機(jī)的數(shù)據(jù)存儲器擴(kuò)展
9.3.2AT89C51單片機(jī)的程序存儲器擴(kuò)展
習(xí)題9
第10章AT89C51單片機(jī)應(yīng)用實(shí)例
10.1單片機(jī)系統(tǒng)設(shè)計(jì)方法
10.2溫度采集與顯示系統(tǒng)的設(shè)計(jì)
10.2.1溫度采集與顯示系統(tǒng)原理
10.2.2一總線(1-Wire)數(shù)字溫度傳感器DS18B20
10.2.3AT89C51單片機(jī)與DS18B20的接口
10.2.4AT89C51單片機(jī)讀取DS18B20溫度值的編程
10.2.5顯示驅(qū)動(dòng)芯片MAX7219
10.2.6AT89C51單片機(jī)與MAX7219的接口與編程
10.2.7溫度的采集處理與顯示程序
習(xí)題10
附錄
附錄AMCS- 51指令簡表