本書是三大內(nèi)容整合之作,包括單片機(jī)基本原理,從底層做起的原創(chuàng)應(yīng)用構(gòu)思和實(shí)踐,相關(guān)元器件選用導(dǎo)引和工程經(jīng)驗(yàn)。內(nèi)容結(jié)構(gòu)以起提綱挈領(lǐng)作用的定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、串行品通信三大核心功能來貫穿單片機(jī)原理的學(xué)習(xí)和實(shí)踐過程,著重應(yīng)用思維的啟發(fā),重視相關(guān)元器件的選擇和運(yùn)用,實(shí)施資料完備,體現(xiàn)技術(shù)發(fā)展和傳承并圖文并茂。
學(xué)與用之道的啟示學(xué)以致用是單片機(jī)技術(shù)課程學(xué)習(xí)的終極目的。時(shí)代需要培養(yǎng)這方面的電子技術(shù)人才,社會(huì)的呼喚和期待無疑是一種集思廣益、學(xué)與用之道的有益啟示,聽聽以下來自社會(huì)的聲音。
* 現(xiàn)在從大學(xué)畢業(yè)的學(xué)生學(xué)到了什么東西呢?一些理論,跟實(shí)際脫鉤的理論。有沒有用呢?有點(diǎn)用。但是,在企業(yè)中,需要的是干點(diǎn)事情出來,解決實(shí)際問題。
* 電子工程師就是將一堆器件搭在一起,注入思想(程序),完成原來的這些器件分離時(shí)無法完成的功能,做成一個(gè)成品。所需要的技能越高、功能越復(fù)雜、成本越低、市場(chǎng)對(duì)相應(yīng)的東西的需求越大,就越成功。這就是電子工程師的自身價(jià)值。
* 做一個(gè)電子工程師,先從51系列學(xué)起,這是得到公認(rèn)的。
* 對(duì)于初學(xué)者來說,應(yīng)該從51系列著手,一方面,51系列還是入門級(jí)的芯片,作為初學(xué)者練手還是比較好的,可以將原理和概念學(xué)一遍;很多特殊的單片機(jī)也是在51系列的核的基礎(chǔ)上增加了一些I/O和A-D、D-A;也為今后學(xué)習(xí)更高級(jí)的單片機(jī)和ARM打下基礎(chǔ)。
* 對(duì)于初學(xué)者,全面掌握這些知識(shí)是很有必要的,因?yàn)槟悴恢澜窈笮枰褂媚男┲R(shí),而這些知識(shí),80%以上你會(huì)在今后的工作中使用到,因?yàn)檫@都是最基本的。
* 學(xué)習(xí)單片機(jī)最有效的方法是理論與實(shí)踐并重。學(xué)習(xí)與實(shí)踐結(jié)合,邊學(xué)習(xí)、邊演練,循序漸進(jìn),舉一反三,就能將用到的指令理解、吃透、扎根于腦海,甚至“根深蒂固”。
* 有心人就是這樣,在什么樣的情況下,都能慢慢積蓄知識(shí)和力量。畢竟,完成一個(gè)產(chǎn)品,不是只會(huì)單片機(jī)就可以了,還需要很多的外圍電路。
* 有一些所謂的單片機(jī)高手只停留于編程,以為買了一塊高級(jí)學(xué)習(xí)板,練習(xí)完了里面所有的程序就行了,殊不知,他們中的很多人到最后連單片機(jī)系統(tǒng)中的LED限流電阻加多大都不清楚,更不用說單片機(jī)的引腳分布了。
* 單片機(jī)這門課是一項(xiàng)非常重視動(dòng)手實(shí)踐的科目,而且單片機(jī)也是一門集計(jì)算機(jī)編程與電子技術(shù)為一身的學(xué)科。如果你是單片機(jī)高手,那么說明你也是計(jì)算機(jī)編程和電子技術(shù)高手。
* 建議想成為單片機(jī)高手的初學(xué)者首先學(xué)習(xí)匯編語言,學(xué)的差不多的時(shí)候,轉(zhuǎn)入C語言學(xué)習(xí)。盡管匯編語言屬于低級(jí)語言,編程效率低,但是較C語言具有目標(biāo)代碼簡(jiǎn)短、占用內(nèi)存少、執(zhí)行速度快等優(yōu)點(diǎn),更重要的是能使初學(xué)者盡快熟悉單片機(jī)的內(nèi)部結(jié)構(gòu),并能對(duì)其進(jìn)行精確的控制。
* 如果你想成為單片機(jī)的程序高級(jí)設(shè)計(jì)師,那么匯編語言是非掌握不可的。很多高級(jí)單片機(jī)如ARM都是以匯編語言作為引導(dǎo)代碼的,還有很多新出品的單片機(jī),也是先有匯編語言編譯器,之后才有C語言編譯器。所以,學(xué)習(xí)單片機(jī),要先從匯編語言入門,再學(xué)C語言精通,再學(xué)匯編語言進(jìn)一步精通。
* 技術(shù)這個(gè)東西就是這樣,需要勤奮勤奮再勤奮,突破了門檻,就是坦途。有一天這個(gè)日子來了,你就苦盡甘來了。
作者前言單片機(jī)課程是高校電類學(xué)科的熱門課。本書針對(duì)應(yīng)用型本科院校的教學(xué)特點(diǎn),結(jié)合工程實(shí)踐,介紹了應(yīng)用最廣、最適合初學(xué)者入門的51系列單片機(jī)的原理與實(shí)踐應(yīng)用。
本書結(jié)構(gòu)獨(dú)特,共8章內(nèi)容,分為三個(gè)層次。第1~6章為基本原理部分,以應(yīng)用為側(cè)重點(diǎn),介紹了單片機(jī)的內(nèi)部硬件結(jié)構(gòu)、指令系統(tǒng)、三大內(nèi)部功能、外部系統(tǒng)擴(kuò)展、常見外圍接口、應(yīng)用系統(tǒng)構(gòu)建與調(diào)試;第7章為相關(guān)的常用電子元器件應(yīng)用導(dǎo)引部分,從工程應(yīng)用的角度縱覽元件的性能和考慮元件的選擇, 對(duì)單片機(jī)的靈活運(yùn)用、應(yīng)用電路的合理構(gòu)思和性能的提高均有重要作用;第8章為單片機(jī)原理的運(yùn)用實(shí)踐部分,分別展示以定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、串行口通信三大內(nèi)部功能為主線的運(yùn)用示例,并以此為基礎(chǔ)進(jìn)一步展示與單片機(jī)基礎(chǔ)原理緊密結(jié)合的相關(guān)綜合應(yīng)用示例和構(gòu)思方法,這些示例是基于作者的原創(chuàng)應(yīng)用或?qū)嵱醚b置,撰寫方式不是沿襲把整個(gè)復(fù)雜電路裝置和盤托出的做法,而是去掉電路冗余只精簡(jiǎn)演繹其中對(duì)運(yùn)用單片機(jī)基本原理最有啟示性的部分,并著重把電路設(shè)計(jì)思想和工程經(jīng)驗(yàn)融入在文字陳述之中,用以拓寬應(yīng)用視野,培養(yǎng)工程意識(shí)和實(shí)踐能力,啟發(fā)創(chuàng)新思維,提高對(duì)單片機(jī)技術(shù)的實(shí)際運(yùn)用能力。
本書融入了作者長(zhǎng)期的研究實(shí)踐和工程經(jīng)驗(yàn),基礎(chǔ)原理從源頭引證,各元器件配圖經(jīng)針對(duì)性精選,提供的運(yùn)用實(shí)例均屬原創(chuàng)并全部經(jīng)過實(shí)施和驗(yàn)證,體現(xiàn)了本書重運(yùn)用、重器件、重實(shí)踐和學(xué)以致用的特點(diǎn),書中豐富的工程實(shí)用資料可供讀者使用參考。
本書可作為應(yīng)用型工科院校本科和高職高專單片機(jī)課程的教材,內(nèi)容可根據(jù)不同層次的需求選擇使用,也可供相關(guān)工程技術(shù)人員閱讀參考。
本書第1、3、4、5章由林土勝編寫,第2、6章由林上港編寫,第7、8章及其程序和實(shí)驗(yàn)由兩人共同完成。
本書參考或引用了所列相關(guān)文獻(xiàn)中的一些內(nèi)容,在此向文獻(xiàn)作者表示感謝。對(duì)書中存在的不足和錯(cuò)誤之處,敬請(qǐng)讀者批評(píng)指正(電子郵箱:eetshlin@scuteducn)。
作者
前言
第1章 單片機(jī)內(nèi)部硬件結(jié)構(gòu)
1.1 單片機(jī)概述
1.1.1 單片機(jī)發(fā)展概況
1.1.2 51系列單片機(jī)類型
1.1.3 主要特點(diǎn)和應(yīng)用選擇
1.2 51系列單片機(jī)芯片結(jié)構(gòu)
1.2.1 51系列單片機(jī)基本組成
1.2.2 51系列單片機(jī)引腳及功能
1.2.3 CPU的工作時(shí)序
1.3 51系列單片機(jī)的存儲(chǔ)器
1.3.1 程序存儲(chǔ)器
1.3.2 內(nèi)部數(shù)據(jù)存儲(chǔ)器
1.3.3 外部數(shù)據(jù)存儲(chǔ)器
1.4 51系列單片機(jī)的并行接口
1.4.1 地址/數(shù)據(jù)分時(shí)復(fù)用口
1.4.2 數(shù)據(jù)通用輸入/輸出口
1.5 51系列單片機(jī)的工作方式
1.5.1 復(fù)位方式
1.5.2 待機(jī)方式
練習(xí)與思考
第2章 指令系統(tǒng)
2.1 指令系統(tǒng)概述
2.1.1 指令分類
2.1.2 格式和符號(hào)說明
2.2 尋址方式
2.2.1 立即尋址
2.2.2 直接尋址
2.2.3 寄存器尋址
2.2.4 寄存器間接尋址
2.2.5 基址加變址間接尋址
2.2.6 相對(duì)尋址
2.2.7 位尋址
2.3 指令系統(tǒng)及應(yīng)用
2.3.1 數(shù)據(jù)傳輸類指令
2.3.2 算術(shù)運(yùn)算類指令
2.3.3 邏輯運(yùn)算類指令
2.3.4 控制轉(zhuǎn)移類指令
2.3.5 位操作類指令
2.4 偽指令
練習(xí)與思考
第3章 單片機(jī)內(nèi)部功能
3.1 定時(shí)器/計(jì)數(shù)器功能
3.1.1 定時(shí)器/計(jì)數(shù)器的組成結(jié)構(gòu)
3.1.2 定時(shí)器/計(jì)數(shù)器的工作模式
3.1.3 定時(shí)器/計(jì)數(shù)器的初始化
3.1.4 應(yīng)用示例
3.2 中斷系統(tǒng)功能
3.2.1 中斷源和中斷入口地址
3.2.2 中斷控制
3.2.3 中斷處理過程
3.2.4 中斷系統(tǒng)的初始化
3.2.5 應(yīng)用示例
3.3 串行口通信功能
3.3.1 串行通信基本知識(shí)
3.3.2 串行口控制器
3.3.3 串行口的工作方式
3.3.4 串行口的多機(jī)通信
3.3.5 串行通信的波特率
3.3.6 應(yīng)用示例
練習(xí)與思考
第4章 單片機(jī)外部系統(tǒng)擴(kuò)展
4.1 存儲(chǔ)器擴(kuò)展
4.1.1 程序存儲(chǔ)器擴(kuò)展
4.1.2 并行總線的地址譯碼
4.1.3 數(shù)據(jù)存儲(chǔ)器擴(kuò)展
4.2 并行I/O口擴(kuò)展
4.2.1 輸出口擴(kuò)展
4.2.2 輸入口擴(kuò)展
4.2.3 輸入輸出口擴(kuò)展
4.3 串行總線擴(kuò)展
4.3.1 I2C總線擴(kuò)展
4.3.2 單總線擴(kuò)展
練習(xí)與思考
第5章 單片機(jī)外圍接口
5.1 鍵盤接口
5.1.1 矩陣鍵盤掃描法
5.1.2 矩陣鍵盤反極法
5.1.3 矩陣鍵盤位操作法
5.1.4 鍵盤接口工作方式
5.2 LED顯示器接口
5.2.1 LED顯示器結(jié)構(gòu)
5.2.2 LED靜態(tài)顯示接口
5.2.3 LED動(dòng)態(tài)顯示接口
5.3 點(diǎn)陣字符LCM接口
5.3.1 點(diǎn)陣字符LCM的構(gòu)成
5.3.2 點(diǎn)陣字符LCM的造字
5.3.3 點(diǎn)陣字符LCM的指令系統(tǒng)
5.3.4 點(diǎn)陣字符LCM接口的編程
5.4 輸入/輸出通道接口
5.4.1 并行A-D轉(zhuǎn)換器接口
5.4.2 并行D-A轉(zhuǎn)換器接口
練習(xí)與思考
第6章 單片機(jī)應(yīng)用系統(tǒng)構(gòu)建與調(diào)試
6.1 單片機(jī)應(yīng)用系統(tǒng)的構(gòu)建
6.1.1 硬件構(gòu)建
6.1.2 軟件構(gòu)建
6.2 51系列單片機(jī)的開發(fā)方式
6.2.1 在線仿真
6.2.2 軟件仿真
6.2.3 在線編程
6.3 單片機(jī)應(yīng)用系統(tǒng)的調(diào)試
6.3.1 硬件調(diào)試
6.3.2 軟件調(diào)試
練習(xí)與思考
第7章 常用電子元器件選用導(dǎo)引
7.1 無源元件的選用
7.1.1 電阻元件
7.1.2 電容元件
7.1.3 電感元件
7.1.4 整流和穩(wěn)壓二極管
7.1.5 發(fā)光二極管
7.1.6 LED數(shù)碼管
7.2 有源元器件的選用
7.2.1 晶體管
7.2.2 集成電路芯片
7.3 紅外傳感元器件的選用
7.3.1 紅外發(fā)射/接收二極管
7.3.2 紅外發(fā)射/接收對(duì)管
7.3.3 一體化紅外接收頭
7.3.4 光電隔離器
7.4 電氣執(zhí)行器件的選用
7.4.1 發(fā)聲器
7.4.2 繼電器
7.4.3 固體繼電器
7.4.4 雙向晶閘管
練習(xí)與思考
第8章 單片機(jī)原理的運(yùn)用實(shí)踐
8.1 定時(shí)器/計(jì)數(shù)器實(shí)現(xiàn)的答辯倒計(jì)時(shí)
8.1.1 基本思路
8.1.2 硬件方案
8.1.3 軟件方案
8.1.4 演示說明
8.2 外部中斷實(shí)現(xiàn)的雙向移動(dòng)識(shí)別
8.2.1 基本思路
8.2.2 硬件方案
8.2.3 軟件方案
8.2.4 演示說明
8.3 串行口實(shí)現(xiàn)的雙向多機(jī)通信
8.3.1 基本思路
8.3.2 硬件方案
8.3.3 軟件方案
8.3.4 演示說明
8.4 待機(jī)節(jié)能與鍵盤喚醒的實(shí)現(xiàn)
8.4.1 基本思路
8.4.2 硬件方案
8.4.3 軟件方案
8.4.4 演示說明
8.5 機(jī)器人用舵機(jī)的轉(zhuǎn)角控制
8.5.1 基本思路
8.5.2 硬件方案
8.5.3 軟件方案
8.5.4 演示說明
8.6 非接觸式的電動(dòng)機(jī)轉(zhuǎn)速測(cè)定
8.6.1 基本思路
8.6.2 硬件方案
8.6.3 軟件方案
8.6.4 演示說明
8.7 I2C總線器件的密碼門禁應(yīng)用
8.7.1 基本思路
8.7.2 硬件方案
8.7.3 軟件方案
8.7.4 演示說明
8.8 單總線器件電子標(biāo)識(shí)的讀取
8.8.1 基本思路
8.8.2 硬件方案
8.8.3 軟件方案
8.8.4 演示說明
練習(xí)與思考
附錄
附錄A 51系列單片機(jī)按字母順序排列的指令表
附錄B 特殊功能寄存器綜覽表
附錄C 內(nèi)部RAM空間結(jié)構(gòu)布局圖
參考文獻(xiàn)