以80C51系列單片機為主線,詳細地介紹了單片機的組成,工作原理、應用技術、仿真方法和開發流程。內容有:單片機的意義和發展,單片機硬件(單片機CPU、存儲器、并行口、中斷系統、定時/計數器、系統擴展接口以及AD/DA轉換技術等),單片機軟件(指令系統、匯編語言軟件設計和C語言軟件設計),單片機集成開發環境軟件Keil5,單片機仿真軟件Proteus8,單片機應用系統實例等。
20 世紀70 年代, 單片機的誕生標志著嵌入式計算機系統的出現。而作為最典型的嵌入式系統, 它的成功應用推動了微控制器的發展。
單片機在我國大規模應用已有30 余年歷史, 已成為電子系統智能化最普遍的應用手段。在全國高等院校工科專業中, 已普遍開設了單片機及相關課程。課程設計、畢業設計、各種電子設計競賽等實踐環節, 單片機系統也都有著廣泛的應用。單片機已成為工科學生, 特別是電類專業學生必須掌握的一門專業技術。因此, 出版一本高等工科院校單片機及其相關課程的優秀教材具有十分重要的意義。在品種眾多的單片機中, 80C51 系列單片機以其完整的系統結構、規范的特殊功能寄存器、強大的指令系統以及豐富的仿真和開發工具, 成為單片機中的主流機型。因此, 本書以它作為主線介紹單片機原理與應用。
全書共分10 章, 第1 章介紹了單片機的基本概念, 第2 章介紹了80C51 單片機基本原理與結構, 第3 章介紹了80C51 單片機指令系統、匯編語言和C51 語言程序設計, 第4 章介紹了80C51 單片機集成開發環境Keil 和仿真軟件Proteus, 第5 章介紹了80C51 單片機基本輸入輸出接口, 第6 章介紹了80C51 單片機的中斷系統, 第7 章介紹了80C51 單片機定時器/ 計數器, 第8 章介紹了80C51 單片機串行接口, 第9 ~ 10 章介紹了單片機擴展接口技術和應用系統實例。
參加本書編寫的教師有多年從事單片機原理與應用的教學以及科技開發的工作經歷, 積累了大量的理論與實踐經驗, 為編寫本書打下了堅實的基礎。本書原理部分的敘述力求體現內容的系統性和完整性, 同時簡單明了、深入淺出、循序漸進; 應用部分的介紹完全取材于工程實例, 突出實用性和完整性, 有較高的參考價值。
本書的編寫得到了浙江省重點教材建設項目的資助, 并參考了同行大量的研究成果, 研究生施盛華、肖金輝、金瑋、黃佩也做了大量的文稿整理工作, 在此, 一并表示衷心的感謝!由于時間倉促, 水平有限, 書中錯漏之處在所難免, 敬請讀者批評指正。
編 者
2017 年3 月, 杭州
前 言
第1 章 緒論 1
1. 1 單片機 1
1. 1. 1 單片機的定義 1
1. 1. 2 單片機的發展歷程 1
1. 1. 3 80C51 系列單片機簡介 4
1. 1. 4 單片機的應用 5
1. 2 嵌入式系統 6
1. 2. 1 嵌入式系統與通用計算機 6
1. 2. 2 嵌入式系統與單片機 7
1. 3 學習安排 8
本章小結 9
習題 9
第2 章 80C51 單片機的基本結構與
工作原理 10
2. 1 80C51 單片機的基本組成 10
2. 2 80C51 單片機的基本特性與引腳功能 12
2. 2. 1 80C51/ 80C52 的基本特性 12
2. 2. 2 引腳功能 12
2. 3 80C51 單片機CPU 的結構和時序 14
2. 3. 1 中央控制器 14
2. 3. 2 運算器 15
2. 3. 3 時鐘電路及CPU 的工作時序 17
2. 4 80C51 單片機存儲器結構和地址空間 20
2. 4. 1 程序存儲器 21
2. 4. 2 數據存儲器 22
2. 5 80C51 單片機布爾(位) 處理器 25
2. 6 80C51 單片機的工作方式 26
2. 6. 1 復位方式 26
2. 6. 2 低功耗工作方式 27
本章小結 28
習題 28
第3 章 80C51 單片機指令系統、匯編
語言及C51 程序設計 30
3. 1 80C51 單片機程序設計概述 30
3. 1. 1 指令和指令系統的概念 30
3. 1. 2 80C51 匯編語言程序設計概述 30
3. 1. 3 Keil C51 語言程序設計概述 31
3. 2 80C51 匯編語言指令系統與程序
設計 31
3. 2. 1 80C51 匯編語言指令格式 31
3. 2. 2 80C51 匯編語言指令系統 32
3. 2. 3 80C51 匯編語言程序設計 43
3. 3 Keil C51 程序設計 50
3. 3. 1 Keil C51 基礎 50
3. 3. 2 Keil C51 的運算符 55
3. 3. 3 Keil C51 程序設計 59
3. 4 程序設計實例 67
本章小結 68
習題 69
第4 章 開發環境Keil μVision5 和
仿真軟件Proteus8. 0 70
4. 1 Keil μVision5 使用 70
4. 2 Proteus 8. 0 ISIS 使用 81
4. 2. 1 Proteus 8. 0 ISIS 的基本性能概述 81
4. 2. 2 Proteus8. 0 ISIS 的編輯環境 82
4. 2. 3 Proteus8. 0 電路原理圖設計 83
4. 3 Keil 和Proteus 聯調 90
4. 3. 1 Keil C 編程與編譯 90
4. 3. 2 Proteus 仿真 91
4. 3. 3 Keil 大工程的建立 93
本章小結 96
習題 96
·Ⅳ
第5 章 80C51 單片機基本輸入輸出接口 97
5. 1 輸入輸出端口基本原理 97
5. 1. 1 P0 口 97
5. 1. 2 P1 口 99
5. 1. 3 P2 口 99
5. 1. 4 P3 口 100
5. 2 輸出電路設計 101
5. 2. 1 驅動LED 101
5. 2. 2 驅動蜂鳴器 102
5. 2. 3 驅動繼電器 102
5. 2. 4 驅動七段LED 數碼管 103
5. 2. 5 多個七段數碼管的應用 105
5. 3 輸入電路設計 107
5. 3. 1 輸入設備和電路設計 107
5. 3. 2 抖動與去抖動 107
5. 3. 3 矩陣鍵盤 108
5. 4 應用實例 110
5. 4. 1 蜂鳴器發聲 110
5. 4. 2 單只數碼管循環顯示0~9 111
5. 4. 3 左右流水燈實驗 112
本章小結 115
習題 116
第6 章 80C51 單片機中斷系統 117
6. 1 中斷系統概念與原理 117
6. 1. 1 中斷、中斷源及中斷優先權 117
6. 1. 2 80C51 中斷系統結構與控制 118
6. 2 中斷系統編程基礎 121
6. 2. 1 中斷系統匯編語言編程基礎 121
6. 2. 2 中斷系統C51 語言編程基礎 123
6. 3 中斷系統應用實例 123
6. 3. 1 外部中斷實驗 123
6. 3. 2 數碼管計數實驗 125
本章小結 128
習題 128
第7 章 80C51 單片機定時器/計數器 129
7. 1 定時器/計數器的基本原理和結構 129
7. 2 定時器/計數器T0/ T1 130
7. 2. 1 工作方式寄存器TMOD 130
7. 2. 2 控制寄存器TCON 131
7. 2. 3 4 種工作方式 131
7. 3 定時器/計數器T2 133
7. 3. 1 定時器/ 計數器T2 中的特殊功能
寄存器 134
7. 3. 2 定時器/計數器T2 的工作方式 135
7. 4 看門狗定時器 137
7. 5 定時器/計數器的編程基礎 138
7. 5. 1 定時器/計數器溢出率的計算 138
7. 5. 2 定時器/計數器的編程基礎 138
7. 6 定時器/計數器應用實例 138
7. 6. 1 實例1 138
7. 6. 2 實例2 140
7. 6. 3 實例3 141
本章小結 145
習題 145
第8 章 80C51 單片機串行接口 146
8. 1 串行通信基本知識 146
8. 1. 1 數據通信 146
8. 1. 2 串行通信的傳輸方式 146
8. 1. 3 異步通信和同步通信 147
8. 1. 4 通信協議和單機通信 148
8. 1. 5 RS-232C 149
8. 2 80C51 單片機串行接口的結構和工作原理 150
8. 2. 1 串行接口結構 150
8. 2. 2 傳送過程工作原理 151
8. 2. 3 串行接口的控制寄存器 151
8. 2. 4 串行接口的