本書詳細介紹了與MCS-51單片機兼容的AT89C51單片機的硬件結構、指令系統及工作原理,并從應用設計的角度介紹AT89C51單片機的各種硬件接口設計、匯編語言接口驅動程序設計和AT89C51單片機應用系統設計。本書緊緊抓住接口設計這一主線,突出內容的實用性、典型性。另外,本書在附錄中還給出了實踐教學環節的10個基礎實驗和25個課程設計題目,供課程的實踐教學環節選用。
本書可作為各類工科院校工業自動化、智能儀器儀表、計算機、電子技術、自動控制、電氣工程、機電一體化等專業單片機課程的教材,也可供從事單片機應用設計的工程技術人員參考。
以接口設計為主線、應用設計為目的,全面介紹單片機原理及各種接口技術,提供豐富實例,提高讀者的設計效率。
本書主要介紹AT89C51單片機的原理及接口的軟硬件設計。對讀者學習單片機技術,具有很好的參考作用。作者以單片機原理講義為藍本,結合單片機技術應用的**進展,認真修改,不斷補充完善,形成本書。本書具有如下特色。
作者為國家精品課程“單片機原理”負責人,本書是多年教學、科研工作的結晶。為突出本書的應用性,在對AT89C51的硬件結構和指令系統詳細介紹的基礎上,重點介紹了各種接口設計和應用系統設計,并給出較多實例。
突出選取內容的實用性、典型性。書中的應用實例,均來自科研工作及教學實踐,內容豐富、詳實。所介紹的各種設計方案,均為常用、典型的方案。提供的接口設計實例及程序設計實例,非常有利于讀者提高設計工作效率。
為加強實踐能力的培養,書中兩個附錄給出了10個基礎實驗和25個課程設計題目,以供實踐教學環節選用。
本書文字精練,通俗易懂。書中各章后均附有思考題與習題,供讀者鞏固、消化、理解課堂所學內容之用。
張毅剛,教授,黑龍江省教學名師,國家精品課程“單片機原理”負責人。1982年2月畢業于哈爾濱工業大學無線電技術專業,長期從事“單片機原理及應用”、“計算機自動測試”等課程的教學工作,編著并出版十余本有關《單片機原理及應用》課程的教材及專著,其中普通高等教育“十
第1章 單片機概述
1.1 什么是單片機?
1.2 單片機的發展歷史
1.3 單片機的發展趨勢
1.4 單片機的特點
1.5 單片機的應用
1.6 MCS-51系列與AT89C5x系列單片機
1.6.1 MCS-51系列單片機
1.6.2 AT89C5x系列單片機
本章小結
思考題及習題
第2章 AT89C51單片機片內硬件結構
2.1 AT89C51單片機的硬件組成
2.2 AT89C51單片機的引腳介紹
2.2.1 電源及時鐘引腳
2.2.2 控制引腳
2.2.3 并行I/O口引腳
2.3 AT89C51單片機的CPU
2.3.1 運算器
2.3.2 控制器
2.4 AT89C51單片機存儲器的結構
2.4.1 程序存儲器空間
2.4.2 數據存儲器空間
2.4.3 特殊功能寄存器
2.4.4 位地址空間
2.5 AT89C51單片機的并行I/O端口
2.5.1 P0口
2.5.2 P1口
2.5.3 P2口
2.5.4 P3口
2.6 時鐘電路與時序
2.6.1 時鐘電路
2.6.2 機器周期、指令周期與指令時序
2.7 復位操作和復位電路
2.7.1 復位操作
2.7.2 復位電路
本章小結
思考題及習題
第3章 AT89C51單片機的指令系統
3.1 指令系統概述
3.2 指令格式
3.3 指令系統的尋址方式
3.4 AT89C51單片機指令系統分類介紹
3.4.1 數據傳送類指令
3.4.2 算術運算類指令
3.4.3 邏輯操作類指令
3.4.4 控制轉移類指令
3.4.5 位操作類指令
本章小結
思考題及習題
第4章 AT89C51單片機匯編語言程序設計
4.1 匯編語言程序設計概述
4.1.1 機器語言、匯編語言和高級語言
4.1.2 匯編語言語句和格式
4.1.3 偽指令
4.2 匯編語言源程序的匯編
4.2.1 手工匯編
4.2.2 機器匯編
4.3 AT89C51單片機匯編語言程序設計舉例
4.3.1 子程序的設計
4.3.2 查表程序設計
4.3.3 關鍵字查找程序設計
4.3.4 數據極值查找程序設計
4.3.5 數據排序程序設計
4.3.6 分支轉移程序設計
4.3.7 循環程序設計
本章小結
思考題及習題
第5章 AT89C51單片機的中斷系統
5.1 AT89C51單片機中斷技術概述
5.2 AT89C51單片機中斷系統結構
5.2.1 中斷請求源
5.2.2 中斷請求標志寄存器
5.3 中斷控制
5.3.1 中斷允許寄存器IE
5.3.2 中斷優先級寄存器IP
5.4 響應中斷請求的條件
5.5 外部中斷的響應時間
5.6 外部中斷的觸發方式選擇
5.6.1 電平觸發方式
5.6.2 跳沿觸發方式
5.7 中斷請求的撤銷
5.8 中斷服務子程序的設計
5.9 多外部中斷源系統設計
本章小結
思考題及習題
第6章 AT89C51單片機的定時器/計數器
6.1 定時器/計數器的結構
6.1.1 工作方式控制寄存器TMOD
6.1.2 定時器/計數器控制寄存器TCON
6.2 定時器/計數器的4種工作方式
6.2.1 方式0
6.2.2 方式1
6.2.3 方式2
6.2.4 方式3
6.3 計數器模式下對輸入信號的要求
6.4 定時器/計數器的編程和應用
6.4.1 方式1的應用
6.4.2 方式2的應用
6.4.3 方式3的應用
6.4.4 門控制位GATEx的應用——測量脈沖寬度
6.4.5 實時時鐘的設計
6.4.6 定時器/計數器作為外部中斷源的使用方法
本章小結
思考題及習題
第7章 AT89C51單片機的串行口
7.1 串行口的結構
7.1.1 串行口控制寄存器SCON
7.1.2 特殊功能寄存器PCON
7.2 串行口的4種工作方式
7.2.1 方式0
7.2.2 方式1
7.2.3 方式2
7.2.4 方式3
7.3 多機通信的工作原理
7.4 波特率的制定方法
7.4.1 波特率的定義
7.4.2 定時器T1產生波特率的計算
7.5 串行口的編程和應用
7.5.1 雙機串行通信硬件接口
7.5.2 雙機串行通信軟件編程
本章小結
思考題及習題
第8章 AT89C51單片機擴展存儲器的接口設計
8.1 系統擴展結構
8.2 地址空間分配和外部地址鎖存器
8.2.1 存儲器地址空間分配
8.2.2 外部地址鎖存器
8.3 程序存儲器EPROM的擴展
8.3.1 常用的EPROM芯片
8.3.2 程序存儲器的操作時序
8.3.3 AT89C51單片機與EPROM的接口電路設計
8.4 靜態數據存儲器RAM的擴展
8.4.1 常用的靜態RAM(SRAM)芯片
8.4.2 外擴數據存儲器的讀寫操作時序
8.4.3 AT89C51單片機與RAM的接口電路設計
8.5 EPROM和RAM的綜合擴展
8.5.1 綜合擴展的硬件接口電路
8.5.2 外擴存儲器電路的工作原理及軟件設計
8.6 AT89C51/89C52/89C55單片機的片內閃爍存儲器
本章小結
思考題及習題
第9章 AT89C51單片機擴展I/O接口的設計
9.1 I/O接口擴展概述
9.1.1 I/O接口的功能
9.1.2 I/O端口的編址
9.1.3 I/O數據的傳送方式
9.1.4 I/O接口電路
9.2 AT89C51單片機與可編程并行I/O芯片82C55的接口設計
9.2.1 C55芯片簡介
9.2.2 工作方式選擇控制字及端口PC置位/復位控制字
9.2.3 C55的3種工作方式
9.2.4 AT89C51單片機和82C55的接口設計
9.3 AT89C51單片機與可編程RAM/IO芯片81C55的接口設計
9.3.1 C55芯片介紹
9.3.2 C55的工作方式
9.3.3 AT89C51單片機與81C55的接口設計及軟件編程
9.4 利用74LSTTL電路擴展并行I/O口
9.5 用AT89C51單片機的串行口擴展并行口
9.5.1 用74LS165擴展并行輸入口
9.5.2 用74LS164擴展并行輸出口
本章小結
思考題及習題
第10章 AT89C51單片機與輸入外設和輸出外設的接口設計
10.1 LED顯示器的顯示原理
10.1.1 LED顯示器的結構
10.1.2 LED顯示器工作原理
10.2 鍵盤接口原理
10.2.1 鍵盤輸入應解決的問題
10.2.2 鍵盤接口的工作原理
10.2.3 鍵盤的工作方式
10.3 鍵盤/顯示器接口設計實例
10.3.1 利用AT89C51單片機串行口實現的鍵盤/顯示器接口
10.3.2 專用芯片HD7279A實現的鍵盤/顯示器接口
10.4 AT89C51單片機與液晶顯示器(LCD)的接口
10.4.1 LCD顯示器的分類
10.4.2 點陣字符型液晶顯示模塊介紹
10.4.3 AT89C51單片機與LCD的接口及軟件編程
10.5 AT89C51單片機與微型打印機TPmP-40A/16A的接口
10.6 AT89C51單片機與BCD碼撥盤的接口設計
本章小結
思考題及習題
第11章 AT89C51單片機與D/A、A/D轉換器的接口
11.1 AT89C51單片機與DAC的接口
11.1.1 D/A轉換器概述
11.1.2 AT89C51單片機與8位DAC0832的接口設計
11.1.3 AT89C51單片機與12位D/A轉換器AD667的接口設計
11.2 AT89C51單片機與ADC的接口
11.2.1 A/D轉換器概述
11.2.2 AT89C51單片機與逐次比較型A/D轉換器ADC0809的接口
11.2.3 AT89C51單片機與逐次比較型A/D轉換器AD1674的接口設計
11.2.4 AT89C51單片機與雙積分型A/D轉換器MC14433的接口
本章小結
思考題及習題
第12章 單片機的串行擴展技術
12.1 單總線接口簡介
12.2 SPI總線接口簡介
12.3 I2C串行總線的組成及工作原理
12.3.1 I2C串行總線概述
12.3.2 I2C總線的數據傳送
12.4 AT89C51單片機擴展I2C總線器件的接口設計
12.4.1 I2C總線器件的擴展接口電路
12.4.2 I2C總線數據傳送的模擬
12.4.3 I2C總線模擬通用子程序
本章小結
思考題及習題
第13章 AT89C51單片機應用系統的設計與調試
13.1 AT89C51單片機應用系統的設計步驟
13.2 應用系統的硬件設計
13.3 AT89C51單片機應用系統硬件設計
13.3.1 應用系統設計中的地址空間分配與總線驅動
13.3.2 AT89C51單片機的小系統
13.3.3 應用設計舉例——水溫測控系統的硬件設計
13.4 應用系統的軟件設計
13.4.1 軟件設計考慮的問題
13.4.2 系統軟件的總體框架設計
13.5 軟件的抗干擾設計
13.5.1 軟件濾波
13.5.2 指令冗余及軟件陷阱
13.5.3 開關量輸入/輸出軟件抗干擾設計
13.6 單片機應用系統的仿真開發與調試
13.6.1 仿真開發系統簡介
13.6.2 用戶樣機的開發調試
本章小結
思考題及習題
附錄A 基礎實驗指導
實驗1 熟悉單片機實驗開發系統的使用
實驗2 單片機數據區傳送程序設計
實驗3 數據排序實驗
實驗4 查找相同數個數
實驗5 P1口轉彎燈實驗
實驗6 工業順序控制
實驗7 C55控制交通燈
實驗8 A/D轉換實驗
實驗9 D/A轉換實驗
實驗10 電子時鐘(定時器、中斷綜合實驗)
附錄B 課程設計
題目1 LED顯示的電子鐘
題目2 LCD顯示的電子鐘
題目3 秒表設計
題目4 帶有LCD顯示的定時鬧鐘
題目5 帶有LCD顯示的音樂倒數計數器
題目6 數字溫度計設計1
題目7 數字溫度計設計2
題目8 十字路口交通燈控制1
題目9 十字路口交通燈控制2
題目10 波形發生器的設計
題目11 電容、電阻參數單片機測試系統的設計
題目12 用單片機控制直流電動機并測量轉速
題目13 單片機控制步進電機
題目14 步進電機單片機控制系統的設計
題目15 小直流電機調速控制系統
題目16 以單片機為核心的頻率計
題目17 可編程作息時間控制器程序設計
題目18 單詞記憶測試器程序設計
題目19 位競賽搶答器的設計
題目20 節日彩燈控制器的設計
題目21 單片機數字電壓表設計
題目22 兩個單片機之間的串行通信接口設計
題目23 簡易電子琴設計
題目24 數字音樂盒的設計
題目25 出租車計價器