本教材圍繞應用型本科院校培養(yǎng)高技能型人才、加強技術應用能力培養(yǎng)為目的,突出了工程實踐和應用性,強化了實踐能力的培養(yǎng)。在內(nèi)容的組織上,以應用為導向,完成任務為目的,應用基礎知識依托國內(nèi)宏晶公司生產(chǎn)的STC89C52單片機展開介紹,再利用仿真軟件Proteus和C51編譯軟件keil C進行雙結合(軟硬件結合,知識點和技能點結合),從而實現(xiàn)了理論與實踐內(nèi)容相互融會貫通的教學方法。
本書內(nèi)容豐富,基礎理論講解詳細,設計實例貼合實際應用,由淺入深,通俗易懂,非常適合于相關專業(yè)的學生對于單片機技術的掌握和學習。
前 言
隨著計算機技術的飛速發(fā)展和普及,單片機以其體積小、功能強大、應用靈活和性能價格比高等優(yōu)點,在工業(yè)控制、智能儀表、數(shù)據(jù)采集系統(tǒng)和各種家用電器等領域得到了廣泛的應用。本書選用STC89C52單片機,它以MCS-51為內(nèi)核。采用該單片機主要的原因是該單片機具有在線系統(tǒng)可編程功能(ISP),無需專用編程器,可通過串口直接下載用戶程序,便于開發(fā),因此受到初學者特別是學生的青睞。同時,由于該單片機可有效減少系統(tǒng)開發(fā)時間,因此廣泛被產(chǎn)品開發(fā)人員所選用。
本教材圍繞應用型本科院校培養(yǎng)高技能型人才、加強技術應用能力培養(yǎng)為目的,以知識目標、技能目標為主線,突出了針對性和應用性,強化了實踐能力的培養(yǎng)。在內(nèi)容的組織上,以工程應用為導向,完成任務為目的,介紹了STC89C52單片機的基本知識,軟硬件結合,知識點和技能點結合,既實現(xiàn)了知識的全面性和連貫性,又做到了理論與實踐內(nèi)容的融會貫通。
本教材將當前流行的電路仿真軟件Proteus和程序編譯軟件Keil μVision4引入到單片機課堂教學和實踐教學中,并使之與現(xiàn)行教學大綱和實驗大綱基本內(nèi)容緊密融合。通過單片機仿真實驗,在近似真實的應用環(huán)境下培養(yǎng)學生的單片機專業(yè)技能,不再受實驗場地、器材和實驗學時的限制,解決了以往基于電路實驗箱教學中驗證性實驗偏多導致學生難以得到足夠的動手機會和教學實踐效果不理想等問題。這種虛擬仿真平臺便于學習者靈活、大膽地進行單片機電路設計、軟件開發(fā)和系統(tǒng)調(diào)試的訓練,能夠極大程度地激發(fā)學生的學習興趣,提高其學習效果,讓單片機學習上手容易,給學習者帶來學習單片機的樂趣。
全書共分為11章:第1章介紹計算機基礎知識、單片機概述。第2章介紹單片機應用系統(tǒng)開發(fā)簡介,包括仿真軟件Proteus和C51編譯軟件Keil μVision4 的應用及樣例;第3章詳細介紹STC89C52單片機硬件結構體系;第4章單片機程序設計詳細介紹51單片機的指令系統(tǒng),匯編語言程序設計,C51程序設計;第5章介紹了STC89C52單片機中斷系統(tǒng)及應用;第6章介紹STC89C52單片機定時/計數(shù)器,特別是增加了51系統(tǒng)中沒有介紹的T2定時器的應用;第7章STC89C52單片機串行通信,介紹了STC89C52單片機串行口的內(nèi)部結構、串行口的4種工作方式、串行口多機通信的工作原理及雙機串行通信的軟件編程;第8章STC89C52單片機存儲器的擴展介紹外部擴展數(shù)據(jù)存儲器和程序存儲器地址空間分配的方法和具體設計;第9章STC89C52單片機I/O擴展與設計,介紹TTL端口擴展、LCD顯示屏應用擴展,A/D、D/A轉換,I2C總線應用等內(nèi)容;第10章STC單片機應用系統(tǒng)設計實例介紹了兩個完整的工程應用實例;第11章實驗應用,包含9個實驗內(nèi)容。整個教學內(nèi)容以Proteus仿真案例貫穿全書,電路仿真圖和程序真實可靠。各章后有相應的各類習題供訓練之用。
本書除署名編者外,還特別感謝武漢大學王思賢教授的指導和關心,王教授主要審核制定教學大綱,把握教學內(nèi)容,對教學實施、學時分配、重難點處理等問題給出指導意見。感謝胡勁老師在前期教材資料文檔收集、實驗教學文檔修改整理等方面做出的工作。同時,編者還參考和引用了參考文獻中有關作者的部分資料,在此一并向他們表示衷心的感謝。
由于編者水平有限,時間比較倉促,書中難免有疏漏和不妥之處,懇請讀者通過出版社進行聯(lián)系我們,并提出提出寶貴的批評意見和建議。
二〇一八年五月二十二日
目 錄
第1章 計算機基礎知識 1
1.1 緒論 1
1.1.1 微型計算機的發(fā)展史 1
1.1.2 微型計算機的特點 2
1.1.3 微型計算機的應用領域 3
1.2 微型計算機的組成 4
1.2.1 微處理器 4
1.2.2 微型計算機 5
1.2.3 微型計算機系統(tǒng) 5
1.3 微型計算機的工作過程和主要性能指標 5
1.3.1 微型計算機的工作過程 5
1.3.2 微型計算機的主要性能指標 6
1.4 微機系統(tǒng)中采用的先進技術 7
1.4.1 流水線技術 7
1.4.2 高速緩沖存儲器 7
1.4.3 CISC和RISC 7
1.4.4 多核心技術 8
1.5 微型計算機中數(shù)的表示 8
1.5.1 數(shù)制及相互轉換 8
1.5.2 符號數(shù)的表示及運算 12
1.5.3 計算機中常用術語和編碼 15
1.6 單片機概述 18
1.6.1 單片機的發(fā)展歷史及趨勢 19
1.6.2 單片機的特點及應用 21
1.7 MCS-51系列與STC系列單片機 23
1.7.1 MCS-51系列單片機 23
1.7.2 STC系列單片機 24
1.8 其他常見系列單片機 24
1.8.1 AT89系列單片機 24
1.8.2 AVR系列單片機 26
1.8.3 PIC系列單片機 27
1.10 本章小結 28
習題 28
第2章 單片機應用系統(tǒng)開發(fā)簡介 29
2.1 集成開發(fā)環(huán)境Keil μViSion 4簡介 29
2.1.1 Keil μVision4運行環(huán)境介紹 29
2.1.2 Keil μVision4集成開發(fā)環(huán)境的STC單片機開發(fā)流程 31
2.2 集成開發(fā)工具Proteus 7 Professional 簡介 34
2.2.1 Proteus基本用法 35
2.2.2 實例分析 36
2.3 Keil μVision4與Proteus 7 Professional的聯(lián)調(diào) 39
2.4 Proteus ISIS模塊應用舉例 40
2.4.1 ISIS原理圖仿真模塊應用舉例 40
2.4.2 ARES模塊應用舉例 44
2.5本章小結 47
習題 48
第3章 STC89C52單片機硬件結構 49
3.1 STC89C52單片機的內(nèi)部功能結構及特點 49
3.2 STC89C52單片機的外部引腳及功能 51
3.3 STC89C52單片機存儲器結構 54
3.3.1 STC89C52單片機程序存儲器 54
3.3.2 STC89C52單片機數(shù)據(jù)存儲器 55
3.3.3 STC89C52單片機特殊功能寄存器 57
3.4 STC89C52單片機I/O口 61
3.4.1 P0端口 62
3.4.2 P1/P2/P3/P4端口 62
3.5 STC89C52單片機的時鐘與復位 63
3.5.1 傳統(tǒng)51單片機時序 63
3.5.2 STC89C52單片機時鐘電路 65
3.5.3 STC89C52單片機的復位電路 66
3.5.4 STC89C52單片機的復位狀態(tài) 67
3.6 STC89C52單片機的省電工作模式 68
3.7 本章小結 68
習題 68
第4章 單片機程序設計 70
4.1 STC系列單片機指令系統(tǒng)基本概念 70
4.1.1 指令書寫格式 70
4.1.2 指令編碼格式 71
4.1.3 指令系統(tǒng)中常用的符號 72
4.1.4 指令系統(tǒng)的尋址方式 73
4.2 STC系列單片機指令分類詳解 76
4.2.1 數(shù)據(jù)傳送類指令 76
4.2.2 算術運算類指令 80
4.2.3 邏輯操作類指令 84
4.2.4 控制轉移類指令 85
4.2.5 位操作類 88
4.3 STC系列單片機匯編語言程序設計 93
4.3.1 匯編語言程序設計基礎 93
4.3.2 匯編語言程序結構與設計示例 97
4.4 STC單片機C語言程序設計 106
4.4.1 Keil C51簡介 106
4.4.2 KeiI C51語言基礎知識 108
4.4.3 C51程序設計舉例 116
4.5 簡單接口程序應用 123
4.5.1 基本輸入/輸出單元與編程 123
4.5.2 LED數(shù)碼管原理與編程 129
4.5.3 I/O端口的進階應用 132
4.6本章小結 137
習題 137
第5章 STC89C52單片機中斷系統(tǒng) 139
5.1 中斷的概念 139
5.2 STC89C52單片機中斷系統(tǒng) 139
5.2.1 中斷系統(tǒng)結構 139
5.2.2 中斷源 140
5.2.3 中斷請求標志 141
5.2.4 中斷控制寄存器 143
5.3 中斷響應 146
5.3.1 中斷響應條件 146
5.3.2 外部中斷響應時間 147
5.3.3 中斷請求的撤銷 147
5.4 中斷程序的設計 148
5.4.1 中斷程序的設計過程 148
5.4.2 C51中斷函數(shù) 151
5.5 本章小結 155
習題 156
第6章 STC89C52單片機定時/計數(shù)器 157
6.1 STC89C52單片機定時/計數(shù)器的組成 157
6.2 定時/計數(shù)器0和1 157
6.2.1 與T0/T1相關的寄存器 158
6.2.2 定時/計數(shù)器0/1的4種工作方式 159
6.2.3 定時/計數(shù)器0/1的應用 161
6.3 定時/計數(shù)器2 172
6.3.1 與定時器/計數(shù)器2相關的寄存器 172
6.3.2 定時/計數(shù)器2的3種工作方式 174
6.3.3 定時/計數(shù)器2的應用 178
6.4 本章小結 182
習題 182
第7章 STC89C52單片機串行通信 184
7.1 串行通信概述 184
7.1.1 數(shù)據(jù)通信 184
7.1.2 異步通信和同步通信 185
7.1.3 波特率 186
7.2 串行口的結構 187
7.2.1 內(nèi)部硬件結構 187
7.2.2 串行口特殊功能寄存器 187
7.3 串行口的4種工作方式 190
7.3.1 串行口方式0 190
7.3.2 串行口方式1 193
7.3.3 串行口方式2和方式3 195
7.4 波特率的設定與計算 196
7.5 STC89C52單片機之間的通信 199
7.5.1 串行通信接口 199
7.5.2 雙機串行通信編程 202
7.5.3 多機通信 204
7.6 PC與單片機間的通信 210
7.6.1 PC與單片機的點對點通信設計 210
7.6.2 PC與多個單片機的串行通信接口設計 211
7.7 本章小結 212
習題 212
第8章 STC89C52單片機存儲器的擴展 214
8.1 系統(tǒng)擴展結構 214
8.2 地址鎖存與地址空間分配 215
8.2.1 地址鎖存 215
8.2.2 地址空間分配 217
8.3程序存儲器的擴展 220
8.3.1 外擴程序存儲器的操作時序 220
8.3.2 程序存儲器的擴展方法 222
8.4數(shù)據(jù)存儲器的擴展 225
8.4.1 外擴數(shù)據(jù)存儲器的讀寫操作時序 226
8.4.2 數(shù)據(jù)存儲器擴展方法 227
8.5 EPROM和RAM的綜合擴展 230
8.6 本章小結 233
習題 234
第9章 STC89C52單片機I/O擴展與設計 235
9.1 I/O接口概述 235
9.2 TTL電路擴展并行接口 237
9.2.1 TTL簡單并行輸出接口的擴展 237
9.2.2 簡單并行輸入接口的擴展 239
9.3 STC單片機與LCD顯示器的接口 241
9.3.1 LCD顯示器簡介 241
9.3.2 STC單片機與1602液晶顯示器的接口及軟件編程 246
9.3.3 STC單片機與12864液晶顯示的接口及軟件編程 248
9.4 STC89C52與A/D轉換器的接口 250
9.4.1 A/D轉換器簡介 250
9.4.2 STC89C52與并型8位A/D轉換器ADC0809的接口 252
9.4.3 STC89C52與并型12位A/D轉換器AD1674的接口 256
9.5 STC89C52與D/A轉換器的接口 260
9.5.1 D/A轉換器簡介 260
9.5.2 STC89C52與8位D/A轉換器DAC0832的接口設計 262
9.6 串行擴展總線接口 266
9.6.1 單總線串行擴展 267
9.6.2 SPI總線串行擴展 281
9.6.3 I2C總線串行擴展 287
9.6.4 STC89C52單片機的I2C總線擴展的設計 291
9.5 本章小結 296
習題 296
第10章 STC單片機應用系統(tǒng)設計實例 298
10.1 STC89C52單片機最小系統(tǒng)簡介 298
10.2 基于STC89C52單片機的智能交通燈設計 300
10.2.1 系統(tǒng)需求分析 300
10.2.2 系統(tǒng)設計方案 300
10.2.3 系統(tǒng)硬件設計 301
10.2.4 系統(tǒng)軟件設計 301
10.3 基本STC89C52單片機的萬年歷設計 303
10.3.1 系統(tǒng)需求分析 303
10.3.2 系統(tǒng)設計方案 303
10.3.3 系統(tǒng)硬件設計 304
10.3.4 系統(tǒng)軟件設計 304
10.4 本章小結 317
習題 317
第11章 實驗指導 318
11.1 實驗1 計數(shù)顯示器 318
11.2 實驗2 指示燈/開關控制器 327
11.3 實驗3 指示燈循環(huán)控制 332
11.4 實驗4 指示燈/數(shù)碼管的中斷控制 339
11.5 實驗5 電子秒表顯示器 345
11.6 實驗6 雙機通信及PCB設計 349
11.7 實驗7 直流數(shù)字電壓表設計 362
11.8 實驗8 步進電機控制設計 369
11.9 實驗9 綜合實驗多位數(shù)字顯示及硬件程序下載 372
參考文獻 375
附錄A Proteus中的常用元器件 376