單片機開發技術和編程技術日新月異,為了使讀者能夠盡快掌握這一技術,根據工科大學生的知識背景編寫了本教材。
《普通高等教育“十二五”機電類規劃教材:單片機原理及應用(第2版)》主要包括單片機基礎知識,51單片機的基本硬件結構,MCS-51單片機的指令系統,MCS-51匯編語言的編寫方法和格式,MCS-51系統總線及其構造技術,功率接口電路及編程方法,C51特點及編程注意事項,基于RTX51的實時操作系統的程序設計方法,單片機開發選型應注意的事項等內容。
《普通高等教育“十二五”機電類規劃教材:單片機原理及應用(第2版)》力求通俗易懂,注重實用,可作為高等院校本專科教材,也可供科技人員參考或自學。為了方便教學和學習,《普通高等教育“十二五”機電類規劃教材:單片機原理及應用(第2版)》配有教學課件。
單片機技術廣泛應用于智能化測控設備及儀器儀表中,為了培養學生能夠熟練掌握單片機技術,并能夠利用所學知識開發、應用智能產品,作者結合多年來單片機教學經驗編寫了《單片機原理及應用》一書,該書經過幾年的使用,得到許多同仁的關愛和指正。隨著電子技術和軟件技術的高速發展,新的元器件、新的程序設計理念和手段不斷涌現出來。為了使學生了解和掌握最前沿的技術和知識,根據近幾年的教學實踐經驗和社會需求,對原教材進行了修訂和補充,增加了單片機C語言程序設計和基于RTX51實時操作系統的單片機程序開發等內容。
本教材的特點是:在內容編排上融入了編者多年的教學經驗,針對工科類學生的課程特點,既考慮內容的系統性和完整性,又照顧到各專業學生的知識特點,力求做到書中內容和實際應用不脫節,理論和實踐相結合,所學內容即是社會所需。為方便教學和學習,本書還配備了詳細的電子課件。
全書內容共分9章。其中,第1章介紹單片機的基本知識,計算機中數的表示方法,計算機中一些常用的術語。第2章主要介紹MCS-51單片機的基本硬件結構和特點,通過本章的學習,使學生對51系列單片機有一個全面的理解和掌握,為后面章節的學習打下基礎。第3章全面系統地介紹MCS-51單片機的指令系統。第4章介紹MCS-51匯編語言的編寫方法和格式,通過實例介紹51單片機匯編程序的開發過程及各部分的功能開發。第5章介紹MCS-51單片機系統總線及其構造技術,以及常用接口芯片的擴展技術,其中包括程序存儲器、數據存儲器(RAM)、I/O口,以及常用并行和串行D/A和A/D的擴展技術,并且通過實例介紹這些芯片的外圍擴展電路及基本編程方法。第6章介紹鍵盤接口設計及LED、LCD顯示器與單片機的接口電路及程序設計方法,學習功率器件在工業控制中的應用、功率接口電路及編程方法。第7章介紹基于C語言的51單片機程序開發。鑒于目前工科學生基本已經掌握了C語言,因此本章闡述了C51與普通C語言的異同之處,通過實例介紹單片機C語言的開發過程。第8章介紹基于實時操作系統的51單片機程序的設計。第9章介紹單片機應用系統的開發方法、研制過程;介紹常用單片機開發工具,敘述單片機軟件、硬件設計方法及調試方法,使學生進一步學習和領會單片機應用系統的開發方法和技巧,為學生走向社會進行實際設計開發打下基礎。
參加本書編寫和修訂的有河北農業大學蔡振江、索雪松、馬躍進、邢雅周、張德寧、華北電力大學韓慶瑤、天津工業大學岳建鋒、廊坊學院陳貴峰、銅陵學院崔雪英。全書由蔡振江教授統稿。在編寫和修訂過程中牛琳媛、連貫、張得龍等同學做了大量的工作,在此對他們表示感謝。
本書在修訂和編寫過程中,參考和吸收了兄弟院校教材的部分內容,并得到了有關院校老師的鼓勵和支持,在此謹向有關同事、作者表示衷心的感謝!
限于編者水平,本書雖然進行了全面的修訂和補充,但書中一定還存在不妥之處,懇請廣大讀者、專家學者予以批評指正。
編者
2011年12月
第1章 單片機基礎
1.1 概述
1.1.1 計算機發展概況
1.1.2 計算機分類
1.1.3 單片機的特點及主要應用領域
1.2 單片機的發展歷史及典型機型
1.2.1 單片機的發展歷史
1.2.2 常用單片機的機型
1.3 計算機中的數制及相互轉換
1.3.1 計算機中數的表示方法
1.3.2 進位計數制
1.3.3 進位計數制之間的轉換
1.4 二進制數的運算
1.4.1 二進制數的加法
1.4.2 二進制數的減法
1.4.3 二進制數的乘法
1.4.4 二進制數的除法
1.5 單片機的組成及工作過程
1.5.1 單片機的組成
1.5.2 單片機的工作過程
習題一
第2章 MCS-51單片機硬件結構
2.1 概述
2.2 MCS-51單片機內部硬件組成
2.2.1 總體結構
2.2.2 中央處理器CPU
2.2.3 單片機的引腳及其功能
2.2.4 存儲器的結構
2.3 時鐘與復位
2.3.1 時鐘輸入
2.3.2 單片機工作的基本時序
2.3.3 單片機的復位
2.4 并行輸入/輸出接口
2.4.1 P0口的結構與功能
2.4.2 P1口的結構與功能
2.4.3 P2口的結構與功能
2.4.4 P3口的結構與功能
2.5 中斷系統
2.5.1 中斷技術概述
2.5.2 中斷請求源與中斷請求標志
2.5.3 中斷控制與中斷響應
2.5.4 中斷處理過程
2.6 定時器/計數器
2.6.1 定時器/計數器T0和T1的結構
2.6.2 定時器/計數器的方式寄存器和控制寄存器
2.6.3 4種工作方式
2.7 串行口
2.7.1 串行口通信的基本概念
2.7.2 MCS- 51單片機串行通信接口
2.7.3 串行通信接口工作方式及多機通信
2.7.4 波特率設置
習題二
第3章 MCS-51單片機指令系統
3.1 匯編指令與格式
3.1.1 匯編指令格式和常用符號
3.1.2 偽指令
3.2 尋址方式
3.2.1 立即尋址
3.2.2 直接尋址
3.2.3 寄存器尋址
3.2.4 寄存器間接尋址
3.2.5 變址尋址
3.2.6 相對尋址
3.2.7 位尋址
3.3 指令類型
3.3.1 按字節數分
3.3.2 按指令的執行時間分
3.3.3 按指令的功能分
3.4 數據傳送類指令
3.4.1 內部數據傳送指令
3.4.2 片外數據傳送指令
3.4.3 訪問程序存儲器的傳送指令
3.4.4 數據交換指令
3.4.5 堆棧操作指令
3.5 算術運算類指令
3.5.1 加法指令
3.5.2 減法指令
3.5.3 十進制調整指令
3.5.4 乘法指令
3.5.5 除法指令
3.6 邏輯運算類指令
3.6.1 累加器A的邏輯操作指令
3.6.2 邏輯與指令
3.6.3 邏輯或指令
3.6.4 邏輯異或指令
3.7 控制轉移類指令
3.7.1 無條件轉移指令
3.7.2 條件轉移指令
3.7.3 子程序調用和返回指令
3.8 位操作類指令
3.8.1 位傳送指令
3.8.2 置位和清0指令
3.8.3 位邏輯運算指令
3.8.4 位條件轉移指令
習題三
第4章 MCS-51匯編語言程序設計
4.1 匯編語言程序設計
4.1.1 程序設計語言
4.1.2 匯編語言程序設計步驟
4.1.3 單片機4大程序結構
4.2 單片機程序舉例
4.2.1 查表程序
4.2.2 運算程序
4.2.3 數值轉換程序
4.2.4 排序程序
4.3 中斷程序結構
4.4 定時器/計數器程序
4.4.1 定時器/計數器的應用
4.4.2 定時器方式0應用
4.4.3 定時器方式1應用
4.4.4 定時器方式2應用
4.5 串行通信程序
4.5.1 串行口方式0應用
4.5.2 串行口方式1應用
4.5.3 串行口方式2、3應用
習題四
第5章 MCS-51單片機系統的擴展
5.1 系統總線及總線構建
5.1.1 系統總線
5.1.2 構建系統總線
5.2 外部存儲器的擴展
5.2.1 存儲器擴展地址分配
5.2.2 程序存儲器擴展
5.2.3 數據存儲器擴展
5.3 輸入/輸出接口的擴展
5.3.1 簡單并行輸入口擴展
5.3.2 簡單并行輸出口擴展
5.3.3 可編程I/O并行接口的擴展
5.4 D/A和A/D接口功能的擴展
5.4.1 D/A轉換器的基本工作原理
5.4.2 DAC0832的應用
5.4.3 A/D轉換器的基本工作原理
5.4.4 ADC0809的應用
5.5 常用串行接口D/A和A/D轉換器
5.5.1 12位串行DAC MAX538的擴展及其應用
5.5.2 12位串行ADC MAX1247的擴展及其應用
習題五
第6章 鍵盤、顯示器及功率接口
6.1 鍵盤的接口
6.1.1 鍵盤輸入的抖動問題
6.1.2 消除按鍵抖動的措施
6.1.3 非編碼鍵盤的接口方法
6.1.4 BCD碼撥盤接口
6.1.5 串行鍵盤應用
6.2 LED 7段發光顯示器接口
6.2.1 靜態顯示接口及編程
6.2.2 動態顯示接口及編程
6.2.3 8155作為LED顯示器接口
6.3 LCD顯示器接口
6.3.1 點陣式字符LCD
6.3.2 字符型LCD與單片機接口
6.3.3 軟件設計
6.4 大功率器件接口電路
6.4.1 繼電器型驅動接口及編程
6.4.2 晶閘管型驅動接口
6.4.3 功率晶體管型驅動接口及編程
6.4.4 功率驅動電路應用實例
習題六
第7章 Keil C51簡介及編程
7.1 Keil C51與標準C語言
7.1.1 C51程序的結構
7.1.2 C51擴展關鍵字
7.1.3 C51數據的存儲類型
7.2 Keil C51函數
7.2.1 C51函數的定義
7.2.2 C51函數的聲明
7.2.3 C51函數的調用
7.2.4 C51常用庫函數
7.3 C51運算符
7.4 C51編程舉例
7.4.1 簡單I/O口編程舉例
7.4.2 中斷程序編寫
7.4.3 定時器/計數器程序編寫
7.4.4 串行通信接口編程
習題七
第8章 RTX 51實時操作系統
8.1 RTX51實時操作系統概述
8.2 基于RTX51 Tiny工作機制
8.2.1 RTX51程序結構
8.2.2 任務管理
8.2.3 RTX51任務調度
8.2.4 RTX51參數的設置
8.3 RTX51的參考函數
8.4 基于RTX51實時操作系統的程序設計
8.4.1 RTX51實時操作系統程序設計的結構特點
8.4.2 應用舉例
習題八
第9章 單片機應用系統綜合開發應用
9.1 單片機應用系統設計概述
9.1.1 單片機應用系統設計的內容
9.1.2 單片機應用系統設計的方法與步驟
9.2 單片機程序的仿真與調試
9.2.1 單片機的開發與開發工具
9.2.2 單片機開發系統所具有的一般功能
9.2.3 軟件設計方法
……