1序言,2目錄第1章 概論,第3章 AT89C51指令系統,第4章 AT89C51彙編語言程式設計,第5章 AT89C51輸入/輸出口及其簡單套用,第6章 AT89C51中斷系統與定時器/計數器,應 用 篇,
1序言
現代計算機系統有兩大分支:通用計算機系統和嵌入式計算機系統(簡稱嵌入式系統)。前者是人類的“智力平台”;後者是人類工具的“智力嵌入”。超大規模積體電路技術的發展推動眾多企業為嵌入式系統提供了全面的晶片技術支持,如嵌入式微控制器、嵌入式微處理器、DSP、FPGA/CPLD、ASIC、SOC等。其中的“嵌入式微控制器”簡稱為“微控制器(MCU)”。
單片機就是“微控制器”,是嵌入式系統中重要且發展迅速的組成部分,充當主機角色。單片機接上振盪元件(如晶振)、復位電路和接口電路,載入軟體後,則構成單片機套用系統。將它嵌入到形形色色的套用對象中,可成為眾多產品、設備的智慧型化核心。單片機在國民經濟各個領域中獲得了愈來愈廣泛的套用。單片機原理及套用的課程也成為高等學校重要的專業基礎課或專業課。
本書分原理篇、套用篇和PROTEUS仿真篇,共15章。原理篇以“夠用”為原則,講練結合。套用篇以“實用”為目的,學用並舉。仿真篇為單片機仿真教學實踐提供了基礎。
本書是作者長期從事單片機課程教學、單片機套用產品研發和創建單片機課程PROTEUS仿真教學的總結。本書為浙江省重點建設教材,其主要特點是:
1. 突出實踐,突出實用,突出技能培養。書中有大量實例,它們來自單片機套用產品或產品中的相關部分。
2. 率先將先進的單片機系統設計與仿真平台PROTEUS引進教材中。書中有大量單片機系統的PROTEUS設計與仿真實例。單片機課程PROTEUS仿真教學實踐證明:仿真教學是課程改革和提高教學質量的一條新路。
3. 將單片機產品開發過程的基本工具融於書中。按單片機套用產品研發過程講解Keil軟體調試仿真器、編程器、PROTEUS設計與仿真平台等開發工具。
4. 注意介紹單片機套用產品中套用廣泛的技術與器件。例如:I2C匯流排、液晶顯示、LED點陣顯示、電動機控制、單片機與PC通信、開門狗、ISP在系統編程等技術;DS18B20、DS1302、ADC0831、24LC16B等器件。
5. 本書提供的程式都經過實踐驗證。本書以AT89C51單片機為主體來講述單片機原理,它是性能優、套用廣的與MCS-51兼容的單片機。
本書可作為普通高校本、專科和高等職業技術學院的“單片機原理與套用”課程教材;也可作為電類專業師生、單片機套用工程技術人員及單片機套用技術愛好者的參考書。目錄中綴有*號的章節是高職、專科選用章節。
感謝浙江省紹興托普信息職業技術學院、中北大學和浙江省慈谿市信息產業協會的大力支持。
感謝廣州市風標電子技術有限公司(PROTEUS中國大陸總代理)匡裁華總經理、浙江省慈谿市邁思特電子科技有限公司方曙光董事長和浙江省寧波市阿拉丁電子科技有限公司徐國能總經理的大力支持。
本書第1~4、6章由張靖武編寫,第5、7~15章和附錄由周靈彬編寫。全書由張靖武策劃、統稿和定稿。
另外,王妹芳老師對本書練習進行了驗算,學生應偉科製作了單片機課程教學實驗板,學生呂秀蘭為本書繪製了程式流程圖。作者在此表示感謝。
由於作者水平有限,書中難免有錯誤和不妥之處,懇請讀者批評指正。
2目錄第1章 概論
1.1 嵌入式系統、單片機、AT89C51單片機
1.1.1 嵌入式系統、單片機
1.1.2 單片機發展概況
1.1.3 套用廣泛的AT89系列單片機
1.2 單片機套用系統及其套用領域
1.2.1 單片機套用系統
1.2.2 單片機套用領域
1.3 單片機套用研發工具和教學實驗裝置
1.3.1 單片機軟體調試仿真器
1.3.2 單片機仿真器
1.3.3 編程器和ISP在系統編程
1.3.4 單片機系統的PROTEUS設計與仿真平台
1.3.5 單片機課程教學實驗裝置
1.4 實訓1:單片機研發工具、套用產品
1.4.1 單片機產品、常用安裝工具
1.4.2 單片機套用產品
1.4.3 AT89C51單片機研發工具操作演示
練習與思考1
第2章 AT89C51單片機內部結構基礎
2.1 內部結構和引腳功能
2.1.1 內部結構框圖和主要部件
2.1.2 引腳功能
2.2 時鐘電路與復位電路
2.2.1 時鐘電路
2.2.2 復位電路
2.3 存儲器結構
2.3.1 存儲器組成
2.3.2 程式存儲器ROM
2.3.3 數據存儲器RAM
2.4 實訓2:單片機復位、晶振、ALE信號的觀測
2.4.1 電路安裝
2.4.2 信號觀測
練習與思考2
第3章 AT89C51指令系統
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.2.6 變址定址
3.2.7 相對定址
3.2.8 位定址“bit”
3.3 彙編語言的指令系統
3.3.1 數據傳送指令
3.3.2 算術運算類指令
3.3.3 邏輯運算指令
3.3.4 控制轉移指令
3.3.5 位操作指令
3.4 實訓3:軟體調試仿真器Keil ?Vision及其套用(1)
3.4.1 Keil ?Vision快速入門
3.4.2 Keil的初步套用
習題與思考3
第4章 AT89C51彙編語言程式設計
4.1 偽指令、程式設計
4.1.1 偽指令
4.1.2 程式設計
4.1.3 程式結構
4.2 彙編語言程式設計舉例
4.2.1 延時程式
4.2.2 查表程式
4.2.3 碼制轉換程式
4.2.4 數據排序程式
4.2.5 算術計算程式
4.3 實訓4:軟體調試仿真器Keil?Vision套用(2)
4.3.1 用Keil設計延時子程式並進行仿真調試和延時測量
4.3.2 用Keil設計分支結構程式並仿真調試
4.3.3 用Keil設計查表程式並仿真調試
習題與思考4
第5章 AT89C51輸入/輸出口及其簡單套用
5.1 I/O口結構與工作原理
5.1.1 P1口
5.1.2 P3口
5.1.3 P2口
5.1.4 P0口
5.2 I/O口的負載能力
5.3 I/O口的簡單套用
5.3.1 單片機控制的跑馬燈
5.3.2 單片機控制數碼管靜態顯示實驗
5.3.3 單片機用開關控制LED顯示實驗
5.3.4 單片機用開關控制數碼管顯示實驗
5.4 PROTEUS仿真
5.5 實訓5:編程器使用和I/O口的簡單套用
5.5.1 編程器使用初步
5.5.2 單片機I/O口簡單套用實訓
習題與思考5
第6章 AT89C51中斷系統與定時器/計數器
6.1 中斷系統
6.1.1 中斷基本概念
6.1.2 中斷系統結構
6.1.3 與中斷控制有關的暫存器
6.1.4 中斷過程
6.2 中斷套用
6.2.1 中斷初始化和中斷服務程式
6.2.2 中斷套用舉例
6.3 定時器/計數器
6.3.1 定時器/計數器概述
6.3.2 定時器/計數器的控制
6.3.3 定時器/計數器的工作方式
6.3.4 定時器/計數器的計數容量及初值
6.4 定時器/計數器套用
6.4.1 定時器/計數器套用的基本步驟
6.4.2 定時器/計數器的套用舉例
6.5 PROTEUS仿真
6.6 實訓6:中斷系統和定時器/計數器的綜合套用
6.6.1 基於AT89C51的60s倒計時裝置
*6.6.2 基於AT89C51的按鍵發聲裝置
習題與思考6
應 用 篇
第7章 AT89C51單片機的存儲器擴展技術
7.1 用EPROM擴展單片機程式存儲器
7.1.1 基礎知識
7.1.2 擴展ROM電路設計
7.1.3 擴展ROM程式設計
7.1.4 運行與思考
7.1.5 片外ROM的操作時序
7.2 用SRAM擴展單片機數據存儲器
7.2.1 基礎知識
7.2.2 擴展RAM電路設計
7.2.3 擴展RAM程式設計
7.2.4 運行與思考
*7.2.5 片外RAM的操作時序
7.3 用E2PROM擴展單片機ROM、RAM
7.3.1 基礎知識
7.3.2 E2PROM擴展ROM、RAM電路設計
7.3.3 E2PROM擴展ROM、RAM程式設計
7.3.4 運行與思考
*7.4 用串列E2PROM擴展單片機存儲器
7.4.1 基礎知識
7.4.2 串列E2PROM擴展存儲器電路設計
7.4.3 串列E2PROM擴展存儲器程式設計
7.4.4 運行與思考
7.4.5 串列E2PROM擴展存儲器操作時序
7.5 PROTEUS 仿真
7.6 實訓7:用SRAM 6264擴展單片機RAM實驗
7.6.1 實訓目的
7.6.2 實訓內容
第8章 AT89C51人機互動通道的接口技術
8.1 單片機與LED數碼管動態顯示的接口技術
8.1.1 基礎知識
8.1.2 接口電路設計
8.1.3 接口程式設計
8.1.4 運行與思考
*8.2 單片機與字元型LCD顯示器的接口技術
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 單片機與BCD撥碼盤的接口技術
8.4.1 基礎知識
8.4.2 接口電路設計
8.4.3 接口程式設計
8.4.4 運行與思考
8.5 PROTEUS 仿真
8.6 實訓8:單片機與矩陣式鍵盤的接口技術實驗
8.6.1 實訓目的
8.6.2 實訓內容
第9章 AT89C51單片機前向通道接口技術
9.1 單片機與ADC0809(0808)的接口技術
9.1.1 基礎知識
9.1.2 接口電路設計
9.1.3 接口程式設計
9.1.4 運行與思考
*9.2 單片機控制的水位檢測的接口技術
9.2.1 基礎知識
9.2.2 接口電路設計
9.2.3 接口程式設計
9.2.4 運行與思考
9.3 PROTEUS 仿真
9.4 實訓9:單片機與ADC0809(0808)接口技術實驗
9.4.1 實訓目的
9.4.2 實訓內容
第10章 AT89C51後向通道接口技術
10.1 單片機與DAC0832的接口技術
10.1.1 基礎知識
10.1.2 接口電路設計
10.1.3 接口程式設計
10.1.4 運行與思考
10.2 單片機控制步進電動機的接口技術
10.2.1 基礎知識
10.2.2 接口電路設計
10.2.3 接口程式設計
10.2.4 運行與思考
*10.3 單片機控制直流電動機的接口技術
10.3.1 基礎知識
10.3.2 接口電路設計
10.3.3 接口程式設計
10.3.4 運行與思考
10.4 PROTEUS 仿真
10.5 實訓10:單片機與DAC0832的接口技術實驗
10.5.1 實訓目的
10.5.2 實訓內容
第11章 AT89C51串列通信通道接口技術
11.1 單片機之間的串列通信接口技術
11.1.1 基礎知識
11.1.2 接口電路設計
11.1.3 接口程式設計
11.1.4 運行與思考
*11.2 單片機與PC間的通信接口技術
11.2.1 基礎知識
11.2.2 接口電路設計
11.2.3 接口程式設計
11.2.4 運行與思考
11.3 PROTEUS 仿真
11.4 實訓11:單片機之間通信的接口技術實驗
11.4.1 實訓目的
11.4.2 實訓內容
第12章 單片機的實際套用
12.1 基於單片機和DS1302的電子時鐘
12.1.1 功能與操作
12.1.2 套用電路設計
12.1.3 應用程式設計
12.1.4 技術要點
12.2 基於單片機的帶存儲播放功能的簡易電子琴
12.2.1 功能與操作
12.2.2 套用電路設計
12.2.3 應用程式設計
12.2.4 技術要點
*12.3 基於單片機和DS18B20的數字溫度計
12.3.1 功能與操作
12.3.2 電路設計
12.3.3 應用程式設計
12.3.4 技術要點
12.4 基於單片機控制的LED點陣顯示屏
12.4.1 功能與操作
12.4.2 套用電路設計
12.4.3 應用程式設計
12.4.4 技術要點
*12.5 基於單片機的純水機控制電路板設計
12.5.1 功能與操作
12.5.2 套用電路設計
12.5.3 應用程式設計
12.5.4 技術要點
12.6 PROTEUS 仿真
12.7 實訓12: 製作基於單片機和DS1302的電子時鐘
12.7.1 實訓目的
12.7.2 實訓內容
PROTEUS仿真篇
第13章 單片機系統PROTEUS 設計與仿真基礎
13.1 PROTEUS ISIS視窗與基本操作
13.1.1 ISIS視窗
13.1.2 PROTEUS基本操作
13.2 單片機系統PROTEUS設計與仿真初步
13.2.1 PROTEUS電路設計
13.2.2 源程式設計和生成目標代碼檔案
13.2.3 仿真
13.2.4 調試視窗、帶調試視窗的仿真調試
13.2.5 斷點設定、帶斷點的仿真調試
13.2.6 用PROTEUS虛擬示波器觀測信號
13.2.7 用PROTEUS高級圖表仿真(ASF)觀測信號
第14章 原理篇實例的PROTEUS 設計與仿真
14.1 單片機控制數碼管靜態顯示的設計與仿真
14.2 單片機用開關控制LED顯示實驗的設計與仿真
14.3 單片機用開關控制數碼管顯示實驗的設計與仿真
14.4 單片機外中斷實驗的設計與仿真
14.5 單片機中斷優先權實驗的設計與仿真
14.6 單片機中斷優先權實驗的設計與仿真
14.7 基於AT89C51的60秒倒計時裝置的設計與仿真
*14.8 基於AT89C51的按鍵發聲裝置的設計與仿真
第15章 套用篇實例的PROTEUS 設計與仿真
*15.1 EPROM 27C64擴展單片機ROM的設計與仿真
15.2 SRAM 6264擴展單片機RAM的設計與仿真
*15.3 串列E2PROM 24LC16B擴展單片機存儲器的 設計與仿真
15.4 單片機與LED數碼管動態顯示接口的設計與仿真
*15.5 單片機與字元型LCD顯示器接口的設計與仿真
15.6 單片機與矩陣式鍵盤接口的設計與仿真
*15.7 單片機與BCD撥碼盤的接口的設計與仿真
15.8 單片機與ADC0809(0808)接口的設計與仿真
15.9 單片機與DAC0832接口的設計與仿真
*15.10 單片機與直流電動機接口的設計與仿真
15.11 單片機控制步進電動機接口的設計與仿真
15.12 單片機之間的串列通信接口設計與仿真
*15.13 單片機與PC間的通信接口設計與仿真
15.14 基於單片機、DS1302的電子時鐘的設計與仿真
15.15 帶存儲播放功能的簡易電子琴的設計與仿真
*15.16 基於單片機、DS18B20的數字溫度計的設計與仿真
15.17 基於單片機的LED點陣顯示屏的設計與仿真
*15.18 基於單片機的純水機控制板的設計與仿真
附錄
附錄A AT89S51相對AT89C51 增加的功能
附錄A.1 AT89S51單片機內部結構、引腳圖和特殊功能暫存器
附錄A.2 增加功能的套用
附錄B BCD碼和ASCII碼
附錄B.1 8421 BCD碼
附錄B.2 BCD碼運算
附錄B.3 ASCII碼
附錄C AT89C系列單片機指令表