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