《單片機(jī)技術(shù)及工程實踐》結(jié)合工程實踐系統(tǒng)地介紹了單片機(jī)技術(shù)原理及其應(yīng)用。51系列單片機(jī)是應(yīng)用得最廣泛、最適合初學(xué)者學(xué)習(xí)的單片機(jī)。全書共9章,內(nèi)容分為三個層次。第1~6章為基礎(chǔ)部分,介紹了單片機(jī)硬件結(jié)構(gòu)、指令系統(tǒng)、內(nèi)部功能、總線擴(kuò)展、外圍接口和調(diào)試方法。第7章為單片機(jī)技術(shù)的應(yīng)用實踐部分,所提供的示例和思考方法都與基礎(chǔ)原理緊密結(jié)合,通過動手實驗驗證以加深基礎(chǔ)知識的理解和培養(yǎng)實踐能力。第8、9章對工程應(yīng)用中出現(xiàn)的問題開展單片機(jī)技術(shù)的進(jìn)階學(xué)習(xí)和串行總線擴(kuò)展技術(shù)的系統(tǒng)性學(xué)習(xí),以提高對單片機(jī)技術(shù)的實際運(yùn)用能力。
《單片機(jī)技術(shù)及工程實踐》融合了作者多年的教學(xué)和科研實踐以及工程經(jīng)驗,書中內(nèi)容和技術(shù)資料豐富,提供的實例全部通過驗證,并附有匯編語言和C語言的程序源代碼供對照參考,讀者也可根據(jù)不同層次的需求來選擇學(xué)習(xí)。
《單片機(jī)技術(shù)及工程實踐》既可作為工科院校本科生單片機(jī)課程的教材,也可供研究生學(xué)習(xí)以及從事單片機(jī)技術(shù)培訓(xùn)、開發(fā)和應(yīng)用的工程技術(shù)人員閱讀參考。
“單片機(jī)技術(shù)”是一門與工程應(yīng)用實踐緊密結(jié)合的課程,其涉及面廣、通用性強(qiáng)、工程應(yīng)用創(chuàng)新成果多,已成為電子科技和自動控制系統(tǒng)中最普遍的應(yīng)用手段,并且在課程設(shè)計、畢業(yè)設(shè)計、研究生論文課題、學(xué)生課外科技活動以及各個級別的電子設(shè)計大賽中發(fā)揮著重要作用。用單片機(jī)系統(tǒng)解決各類自動控制問題已成為趨勢。20世紀(jì),51系列單片機(jī)的出現(xiàn),確立了單片機(jī)作為微控制器的地位,今后相當(dāng)長的時間內(nèi)8位單片機(jī)的主流地位不會改變。對于初學(xué)者而言,先從入門級的51系列單片機(jī)學(xué)起,是公認(rèn)的學(xué)習(xí)方法,很多特殊的單片機(jī)都是在51單片機(jī)內(nèi)核基礎(chǔ)上進(jìn)行功能擴(kuò)充的。
很多書籍通常都詳細(xì)講述了單片機(jī)的基礎(chǔ)知識,但學(xué)生更希望知道如何運(yùn)用學(xué)到的知識解決實際問題,如何進(jìn)行工程應(yīng)用的構(gòu)思和設(shè)計,又能在實際運(yùn)用中對單片機(jī)知識加深理解和開拓視野,從而啟發(fā)思維、指導(dǎo)學(xué)習(xí)和創(chuàng)新。本書引用工程實例進(jìn)行思路剖析,結(jié)合科研經(jīng)歷豐富內(nèi)容,重運(yùn)用、重器件、強(qiáng)調(diào)實施能力。要使單片機(jī)技術(shù)的學(xué)習(xí)從入門進(jìn)階到運(yùn)用自如,必須要多思考、多看電路圖、多讀程序、多編程序、多查技術(shù)手冊,多動手實踐,也就是說,知識結(jié)合工程實現(xiàn),才能達(dá)到得心應(yīng)手掌握這門技術(shù)的目標(biāo),本書具有這種特色。
本書內(nèi)容共9章分為三個層次,從第1~6章屬于基礎(chǔ)部分的學(xué)習(xí)。第7章為單片機(jī)技術(shù)的應(yīng)用實踐部分,所提供的示例和思考方法都與基礎(chǔ)原理緊密結(jié)合,且配備匯編語言程序及c語言程序供對照參考,通過動手實驗驗證以加深基礎(chǔ)知識的理解和培養(yǎng)實踐能力,很適合希望借鑒書中的示例進(jìn)一步掌握單片機(jī)技術(shù)、體驗工程應(yīng)用的學(xué)生。對于基礎(chǔ)較好、能力較強(qiáng),希望靈活運(yùn)用單片機(jī)技術(shù)并有所創(chuàng)新的學(xué)生,可進(jìn)入第8、9章單片機(jī)技術(shù)進(jìn)階及串行總線擴(kuò)展技術(shù)內(nèi)容的學(xué)習(xí),這兩章結(jié)合科研實踐中有代表性的電路范例,著重于單片機(jī)技術(shù)的工程運(yùn)用。全書各層次的內(nèi)容既獨(dú)立又相互關(guān)聯(lián),可根據(jù)不同的教學(xué)要求進(jìn)行部分或全部的講授。每章均配有練習(xí)和思考題,特別是第7~9章的習(xí)題,結(jié)合工程項目示例進(jìn)行訓(xùn)練,旨在提高學(xué)生的工程意識和工程能力。
本書可作為工科院校本科生單片機(jī)課程的教材,也可供研究生學(xué)習(xí)以及從事單片機(jī)技術(shù)培訓(xùn)、開發(fā)和應(yīng)用的工程技術(shù)人員閱讀參考。
藉此對本書工作給予大力協(xié)助的研究生表示感謝。其中,林上港組建了全書的實驗電路并對其功能進(jìn)行了測試和驗證,為第7章實驗電路的匯編語言程序編寫了對應(yīng)的c語言程序,對全書各章節(jié)的文字內(nèi)容進(jìn)行了細(xì)致的潤色和修校,使之通俗易懂;劉文哲、鄭元華為第9章的實驗電路編寫了c語言程序并進(jìn)行了仿真驗證。另外,感謝工程師張小玲錄入全書的文字以及繪制第8章和第9章部分附圖所付出的辛勤勞動。本書參考或引用了所列國內(nèi)外相關(guān)文獻(xiàn)中的一些內(nèi)容,在此向原作者表示感謝。最后,感謝華南理工大學(xué)電子與信息學(xué)院對本書出版的大力支持。
作者力圖使本書成為與工程實踐相結(jié)合的教材,由于時間倉促,書中難免有不足或差錯之處,敬請讀者和同行批評指正。
前言
第1章 51系列單片機(jī)的硬件結(jié)構(gòu)
1.1 單片機(jī)概述
1.1.1 微型計算機(jī)的基本功能構(gòu)件
1.1.2 單片機(jī)的發(fā)展概況
1.1.3 51系列8位單片機(jī)的基本類型
1.2 51系列單片機(jī)芯片結(jié)構(gòu)
1.2.1 51系列單片機(jī)基本組成結(jié)構(gòu)
1.2.2 51系列單片機(jī)的引腳及其功能
1.3 51系列單片機(jī)的中央處理器
1.3.1 運(yùn)算部件
1.3.2 控制部件1
1.3.3 CPU的工作時序1
1.4 存儲器結(jié)構(gòu)及存儲空間1
1.4.1 程序存儲器1
1.4.2 片內(nèi)數(shù)據(jù)存儲器1
1.4.3 特殊功能寄存器1
1.4.4 片外數(shù)據(jù)存儲器2
1.5 并行I/O接口2
1.5.1 P0口的結(jié)構(gòu)及功能2
1.5.2 P1口的結(jié)構(gòu)及功能2
1.5.3 P2口的結(jié)構(gòu)及功能2
1.5.4 P3口的結(jié)構(gòu)及功能2
1.5.5 I/O口的帶載能力及要求2
1.6 51系列單片機(jī)的工作方式2
1.6.1 復(fù)位方式2
1.6.2 程序執(zhí)行方式2
1.6.3 低功耗方式2
1.6.4 編程方式2
1.6.5 加密方法2
練習(xí)與思考2
第2章 指令系統(tǒng)3
2.1 指令系統(tǒng)概述3
2.1.1 指令格式3
2.1.2 指令分類3
2.1.3 符號說明3
2.2 尋址方式3
2.2.1 立即尋址3
2.2.2 直接尋址3
2.2.3 寄存器尋址3
2.2.4 寄存器間接尋址3
2.2.5 基址加變址間接尋址3
2.2.6 相對尋址3
2.2.7 位尋址3
2.3 指令系統(tǒng)及應(yīng)用3
2.3.1 數(shù)據(jù)傳輸類指令3
2.3.2 算術(shù)運(yùn)算類指令4
2.3.3 邏輯運(yùn)算類指令4
2.3.4 控制轉(zhuǎn)移類指令4
2.3.5 位操作類指令4
2.4 偽指令4
2.5 部分指令用法說明5
練習(xí)與思考5
第3章 51系列單片機(jī)內(nèi)部功能5
3.1 定時器/計數(shù)器功能5
3.1.1 定時器/計數(shù)器T0、T1的結(jié)構(gòu)及原理5
3.1.2 定時器/計數(shù)器T0、T1的工作模式5
3.1.3 定時器/計數(shù)器T26
3.1.4 定時器/計數(shù)器的初始化6
3.1.5 利用門控位GATE測量脈沖寬度6
3.2 中斷系統(tǒng)功能6
3.2.1 中斷源和中斷向量6
3.2.2 中斷控制6
3.2.3 中斷響應(yīng)7
3.2.4 中斷服務(wù)程序及其初始化7
3.2.5 運(yùn)用中斷功能的程序單步調(diào)試7
3.3 串行口通信功能7
3.3.1 串行通信基本知識7
3.3.2 串行口控制器7
3.3.3 串行口的工作方式7
3.3.4 串行口的多機(jī)通信8
3.3.5 串行通信的波特率8
3.3.6 異步通信的奇偶校驗8
3.3.7 串行口的通信應(yīng)用8
練習(xí)與思考8
第4章 并行總線擴(kuò)展技術(shù)9
4.1 并行總線擴(kuò)展9
4.1.1 并行總線擴(kuò)展方法9
4.1.2 單片機(jī)的最小系統(tǒng)9
4.1.3 并行總線的地址譯碼9
4.2 常用擴(kuò)展器件9
4.2.1 8位D鎖存器9
4.2.2 8位單向總線驅(qū)動器9
4.2.3 8位雙向總線驅(qū)動器9
4.2.4 3-8譯碼器9
4.2.5 4-16譯碼器9
4.3 存儲器的擴(kuò)展9
4.3.1 程序存儲器的擴(kuò)展9
4.3.2 數(shù)據(jù)存儲器的擴(kuò)展9
4.3.3 混合存儲器的擴(kuò)展10
4.4 I/O口擴(kuò)展10
4.4.1 鎖存器擴(kuò)展輸出口10
4.4.2 鎖存器擴(kuò)展輸入口10
4.4.3 三態(tài)門擴(kuò)展輸入口10
4.4.4 I/O口的混合擴(kuò)展10
練習(xí)與思考10
第5章 外圍接口技術(shù)10
5.1 鍵盤接口10
5.1.1 獨(dú)立式鍵盤接口10
5.1.2 撥碼盤接口10
5.1.3 矩陣鍵盤掃描法11
5.1.4 矩陣鍵盤反極法11
5.1.5 矩陣鍵盤位操作法11
5.1.6 矩陣鍵盤接口的工作方式11
5.2 LED顯示器接口11
5.2.1 LED顯示器結(jié)構(gòu)11
5.2.2 LED靜態(tài)顯示方式11
5.2.3 LED動態(tài)顯示方式12
5.3 A/D轉(zhuǎn)換器接口12
5.3.1 A/D轉(zhuǎn)換器概述12
5.3.2 8位并行A/D轉(zhuǎn)換器ADC080912
5.3.3 8位串行A/D轉(zhuǎn)換器TCL548/54912
5.4 D/A轉(zhuǎn)換器接口13
5.4.1 D/A轉(zhuǎn)換器概述13
5.4.2 8位并行DAC0832轉(zhuǎn)換器13
5.5 隔離、執(zhí)行機(jī)構(gòu)與單片機(jī)接口13
5.5.1 光電耦合器與單片機(jī)接口13
5.5.2 繼電器與單片機(jī)接口13
5.5.3 固態(tài)繼電器與單片機(jī)接口13
5.5.4 集電極開路門接口電路14
5.5.5 達(dá)林頓晶體管陣列驅(qū)動電路14
練習(xí)與思考14
第6章 單片機(jī)應(yīng)用系統(tǒng)設(shè)計與調(diào)試14
6.1 單片機(jī)應(yīng)用系統(tǒng)的設(shè)計環(huán)節(jié)14
6.2 硬件功能的設(shè)計原則14
6.2.1 單片機(jī)應(yīng)用系統(tǒng)的硬件組成14
6.2.2 硬件設(shè)計的考慮14
6.3 軟件功能的設(shè)計原則14
6.4 51系列單片機(jī)開發(fā)工具與方式14
6.4.1 在線仿真14
6.4.2 軟件仿真15
6.4.3 在線編程15
6.5 單片機(jī)應(yīng)用系統(tǒng)的調(diào)試15
6.5.1 硬件調(diào)試15
6.5.2 軟件調(diào)試15
練習(xí)與思考15
第7章 單片機(jī)技術(shù)應(yīng)用實踐15
7.1 定時器/計數(shù)器在音樂發(fā)生器中的應(yīng)用15
7.1.1 設(shè)計思路與依據(jù)15
7.1.2 硬件電路設(shè)計15
7.1.3 軟件設(shè)計15
7.1.4 應(yīng)用說明16
7.2 中斷技術(shù)的雙向識別16
7.2.1 設(shè)計思路和依據(jù)16
7.2.2 硬件設(shè)計17
7.2.3 軟件設(shè)計17
7.2.4 應(yīng)用說明17
7.3 串行通信的自發(fā)自收17
7.3.1 設(shè)計思路和依據(jù)18
7.3.2 硬件設(shè)計18
7.3.3 軟件設(shè)計18
7.3.4 應(yīng)用說明19
7.4 融合定時控制的鍵盤輸入19
7.4.1 設(shè)計思路和依據(jù)19
7.4.2 硬件設(shè)計19
7.4.3 軟件設(shè)計19
7.4.4 應(yīng)用說明19
7.5 混合控制技術(shù)的紅外遙控20
7.5.1 設(shè)計思路和依據(jù)20
7.5.2 硬件設(shè)計20
7.5.3 軟件設(shè)計20
7.5.4 應(yīng)用說明21
練習(xí)與思考21
第8章 單片機(jī)工程技術(shù)進(jìn)階21
8.1 中斷返回與抗干擾21
8.1.1 硬件Watchdog及與單片機(jī)的接口21
8.1.2 Watchdog脈沖設(shè)置與復(fù)位可靠性分析21
8.1.3 中斷返回與軟件Watchdog機(jī)理21
8.1.4 中斷返回與軟件Watchdog實驗驗證21
8.1.5 軟件Watchdog的熱啟動改進(jìn)措施22
8.1.6 防錯位干擾的空操作措施22
8.2 待機(jī)與鍵盤喚醒技術(shù)22
8.2.1 待機(jī)與喚醒方法的考慮22
8.2.2 待機(jī)方式的鍵盤喚醒電路22
8.3 數(shù)據(jù)冗余恢復(fù)技術(shù)23
8.3.1 冗余數(shù)據(jù)的存放區(qū)域考慮23
8.3.2 數(shù)據(jù)冗余恢復(fù)的表決策略23
8.4 交流電斷電檢測與信息保護(hù)技術(shù)23
8.4.1 交流電斷電檢測模塊的構(gòu)思與實現(xiàn)23
8.4.2 交流電斷電檢測的信息保護(hù)23
8.5 PC與多單片機(jī)通信的工程問題25
8.5.1 PC與單片機(jī)的邏輯電平轉(zhuǎn)換接口25
8.5.2 PC與多單片機(jī)通信的問題分析25
8.5.3 PC與多單片機(jī)通信的處理措施25
8.5.4 PC與多單片機(jī)通信的實驗驗證25
8.6 點(diǎn)陣字符LCM造字與顯示技術(shù)26
8.6.1 點(diǎn)陣字符LCM的功能結(jié)構(gòu)簡介26
8.6.2 點(diǎn)陣字符LCM的用戶造字26
8.6.3 點(diǎn)陣字符LCM的時序26
8.6.4 點(diǎn)陣字符LCM的指令系統(tǒng)26
8.6.5 單片機(jī)與LCM接口的編程方法26
8.7 實時日歷時鐘27
8.7.1 DS12C887的引腳及存儲器27
8.7.2 DS12C887寄存器A~D的功能27
8.7.3 DS12C887的讀數(shù)方法與復(fù)位27
8.7.4 DS12C887的讀/寫時序27
8.7.5 DS12C887與單片機(jī)的接口電路27
練習(xí)與思考28
第9章 串行總線擴(kuò)展技術(shù)28
9.1 SPI總線擴(kuò)展技術(shù)28
9.1.1 SPI總線概述28
9.1.2 SPI總線擴(kuò)展電路28
9.1.3 SPI總線數(shù)據(jù)交換原理28
9.1.4 SPI時鐘相位和極性28
9.1.5 SPI總線采樣的軟件實現(xiàn)28
9.1.6 51系列單片機(jī)的SPI擴(kuò)展應(yīng)用29
9.2 Microwire總線擴(kuò)展技術(shù)29
9.2.1 Microwire總線概述29
9.2.2 Microwire總線擴(kuò)展電路29
9.2.3 Microwire總線串行E2PROM的數(shù)據(jù)傳輸29
9.2.4 51系列單片機(jī)與Microwire串行E2PROM的應(yīng)用29
9.3 I2C總線擴(kuò)展技術(shù)30
9.3.1 I2C總線概述30
9.3.2 I2C總線時序30
9.3.3 I2C總線串行器件的數(shù)據(jù)傳輸方法30
9.3.4 51系列單片機(jī)與I2C串行E2PROM的擴(kuò)展應(yīng)用31
9.4 單總線擴(kuò)展技術(shù)31
9.4.1 單總線概述31
9.4.2 單總線工作原理32
9.4.3 單總線信號傳輸時序32
9.4.4 單總線的ROM命令32
9.4.5 單總線的功能命令32
9.4.6 51系列單片機(jī)與單總線器件的擴(kuò)展應(yīng)用32
9.5 幾種串行總線技術(shù)的比較33
練習(xí)與思考33
附錄34
附錄A 51系列單片機(jī)按字母順序排列的指令表34
附錄B 特殊功能寄存器綜覽表34
附錄C 內(nèi)部RAM空間結(jié)構(gòu)布局圖34
附錄D IC封裝含義匯總34
附錄E SPI總線的8位MCU34
附錄F SPI總線的外圍器件34
附錄G I2C總線的8位MCU35
附錄H I2C總線的外圍器件35
參考文獻(xiàn)35
(4)32位單片機(jī)近年來各個芯片生產(chǎn)廠商著力于研制性能更高的32位單片機(jī),但由于控制領(lǐng)域的需求不迫切,因此32位單片機(jī)的應(yīng)用并不廣泛。
單片機(jī)的發(fā)展過程中出現(xiàn)的4位、8位、16位單片機(jī),由于各自的特點(diǎn)對應(yīng)于各自的應(yīng)用領(lǐng)域和場合,因此不存在高端產(chǎn)品淘汰或替代低端產(chǎn)品的情況。這是因為工程應(yīng)用中要考慮成本因素,在低端單片機(jī)能完成所需功能的情況下,就沒有必要采用高端單片機(jī),例如在8位機(jī)的發(fā)展時期,考慮到4位單片機(jī)工藝成熟、價格低廉,仍有不少進(jìn)口儀器儀表采用4位單片機(jī)來實現(xiàn)?偟恼f來,單片機(jī)各種機(jī)種均有不同程度的應(yīng)用,尤其8位單片機(jī)的性能在不斷地增強(qiáng)和提高,所以在未來相當(dāng)長的時期內(nèi)8位單片機(jī)在中小規(guī)模的應(yīng)用場合仍占據(jù)主流位置。2.單片機(jī)的特點(diǎn)以MCS-51系列單片機(jī)為例,其結(jié)構(gòu)有別于通用微機(jī),主要特點(diǎn)如下:1)單片機(jī)的ROM(程序存儲器)和RAM(數(shù)據(jù)存儲器)分開成為兩個嚴(yán)格獨(dú)立的地址空間,各自采用不同的尋址方式。對于面向工業(yè)控制的應(yīng)用,存放程序的ROM空間要求較大而存放數(shù)據(jù)的RAM空間則相對要求較小。
2)單片機(jī)的指令系統(tǒng)主要面向控制,在邏輯控制和位控制方面顯得更強(qiáng),可由相應(yīng)的指令來實現(xiàn)功能的選擇和控制的切換而不必依靠硬件跳線。
3)單片機(jī)的IO口線可通過程序的控制實現(xiàn)雙功能復(fù)用,能夠有效解決有限引腳數(shù)目與更多功能設(shè)置之間的矛盾。
4)單片機(jī)的外部擴(kuò)展功能很強(qiáng),接口與許多通用的微機(jī)芯片兼容,能對ROM、RAM、IO口等進(jìn)行擴(kuò)展。
3.常用單片機(jī)系列
單片機(jī)發(fā)展至今已達(dá)幾十個系列、幾百種型號。其中,MCS是Intel公司的注冊商標(biāo),MCS.51系列中的第一位成員是8051單片機(jī),Intel公司把基于8051內(nèi)核的單片機(jī)統(tǒng)稱為MCS.51系列。人們現(xiàn)在泛指的8051系列單片機(jī),是包括了Intel公司在內(nèi)的所有公司如Philips、Atmel、Winbond、Siemens、AMD、OKI、NEC等生產(chǎn)的基于8051內(nèi)核的單片機(jī)。此外還有80C51系列單片機(jī),采用了與8051系列HMOS工藝不同的低功耗型CHMOS工藝,它的增強(qiáng)型版本是80C52系列單片機(jī)。本書把上述所有單片機(jī)統(tǒng)稱為51系列單片機(jī)。
除了基于8051內(nèi)核的51系列單片機(jī)外,還有另外一些常見的系列,如68H系列、PIC16系列等,但它們的指令系統(tǒng)與51系列的均不兼容。鑒于51系列單片機(jī)程序設(shè)計簡單、性能可靠、實用性強(qiáng)、便于初學(xué)者學(xué)習(xí)入門,本書把它作為學(xué)習(xí)討論的重點(diǎn)。
在51系列單片機(jī)中,Intel公司的MCS一51系列單片機(jī)和Atmel公司的AT$9系列單片機(jī)是相互兼容的,它們均屬于8051內(nèi)核。不同的是前者的片內(nèi)程序存儲器為掩膜ROM或EPROM(紫外光擦寫)存儲器,而后者則是Flash(閃速)存儲器,使用起來后者更為方便,因此目前被廣泛采用。本書所述內(nèi)容所指的主要是這兩種系列,不加區(qū)分。