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