本書詳細介紹了美國Atmel公司的AT89S51/AT89S52單片機內(nèi)部硬件組成及工作原理,重點介紹單片機應用的各種功能實現(xiàn),包括鍵盤輸入、信息輸出、外部中斷、定時計數(shù)、串行口通信、串行擴展相關應用及單片機控制系統(tǒng)的典型應用等。同時,本書介紹了軟件開發(fā)工具Keil C51及虛擬仿真工具Proteus的安裝、綜合調(diào)試等,也對基于單片機的C51編程語言進行了說明。書中給出了部分設計案例,可為讀者系統(tǒng)學習單片機接口設計實現(xiàn)功能應用提供參考和借鑒。本書為新形態(tài)教材,重點內(nèi)容處以二維碼的形式鏈接了知識點講解視頻,便于學生課前預習和課后復習。
本書可作為各類工科院校、職業(yè)技術學院的電氣工程及其自動化、電子信息工程、測控技術與儀器、機電一體化、車輛工程、智能制造等相關專業(yè)學生的教材及參考用書,也可供相關技術人員參考。
本書遵循教指委相關指導文件和高等院校學生學習規(guī)律編寫而成。踐行四新理念,融入思政元素,注重理論與實踐相結合。
單片機作為計算機的一個重要分支,具有普通計算機所不具備的一系列優(yōu)點,其體積小、功能強、可靠性高、價格低、性能穩(wěn)定,被廣泛應用于智能儀器儀表、自動控制、通信系統(tǒng)、家用電器和計算機外圍設備等。此外,單片機嵌入式系統(tǒng)還在農(nóng)業(yè)、化工、軍事、航空航天等領域得到廣泛應用。各大工科院校都將“單片機原理及應用”課程列為重要的專業(yè)基礎課,為了便于學生系統(tǒng)掌握單片機知識,將其充分應用于課程設計、畢業(yè)設計、電子設計大賽等實踐環(huán)節(jié),編者將長期從事該課程教研活動的經(jīng)驗進行梳理總結形成本書。
本書以美國Atmel(愛特梅爾)公司的AT89S51(各種Intel 8051內(nèi)核單片機最具代表性的機型)為主,詳細介紹其硬件結構、工作原理及典型功能應用設計。書中所有設計案例均基于C51編程語言實現(xiàn),并結合先進虛擬仿真工具Proteus實現(xiàn)綜合聯(lián)調(diào),以直觀地展現(xiàn)功能的運行情況。
本書從單片機原理到硬件/軟件設計、從問題提出到分析解決問題的思路,都進行了詳盡說明。本書具有以下特點:1)內(nèi)容安排合理,精簡但針對性強。從初學者角度出發(fā),內(nèi)容編排循序漸進,主要包含單片機基礎知識(硬件結構和存儲器分布等)、C51編程語言、軟件工具Keil C51和Proteus的使用,以及單片機基本功能及擴展功能的實現(xiàn)。內(nèi)容結構整體符合學習規(guī)律,可讀可用性強。
2)強調(diào)實際動手操作。在掌握基本硬件結構和軟件編程語言的基礎上,借助兩個軟件工具,將硬件、軟件設計與案例設計有機地融為一體,使學生真正從理論出發(fā),設計出能虛擬運行的應用系統(tǒng),實現(xiàn)綜合調(diào)試,同時可借助于開發(fā)板系統(tǒng)進行實物調(diào)試,提升學生的動手能力。
本書共10章,包含了AT89S51單片機相關應用技術的基本內(nèi)容。
第1章介紹微型計算機的分類與組成,導出單片機的基本概念及當前流行的不同系列單片機。
第2章介紹AT89S51單片機的內(nèi)部結構、引腳功能、指令時序。
第3章介紹單片機的C51語言基礎,包括數(shù)據(jù)類型、存儲類型、基本語句、函數(shù)等。
第4章介紹單片機系統(tǒng)開發(fā)與仿真工具Proteus、Keil C51,并通過實例說明綜合調(diào)試的方法。
第5~8章分別介紹單片機的基本功能應用,包含I/O端口、鍵盤掃描、液晶顯示器、外部中斷、定時器/計數(shù)器、串行通信,從各個功能的工作原理出發(fā),詳細分析仿真案例實現(xiàn)全過程。
第9、10章介紹單片機的典型應用,如單總線、I2C總線、直流電動機、步進電動機、舵機等。
為培養(yǎng)學生的自主學習能力和工程應用能力,本書各章均配有一定數(shù)量的思考題和習題,書中實例介紹詳盡。為適應信息時代的學生學習習慣,本書在重點內(nèi)容處以二維碼形式鏈接知識點講解視頻,可以隨掃隨學。
本書由華北水利水電大學王麗君、王欣欣擔任主編,顧波擔任副主編,劉海朝、趙建林、申杰參與編寫。其中王麗君編寫第1章,顧波編寫第2、4章,劉海朝編寫第3、9章,申杰編寫第5、6章,王欣欣編寫第7、8章,趙建林編寫第10章,全書由王欣欣負責統(tǒng)稿。研究生姜仕同、亢業(yè)豪、王航、吳宗明等在文稿錄入、校對修改、文字編輯、實例程序調(diào)試等方面做了大量工作,在此謹向他們致以衷心的感謝!
由于編者水平有限,書中難免存在疏漏和不足之處,懇請讀者批評指正。
編 者
高等院校教師
前言
第1章 緒論 1
1.1 微型計算機的分類與組成 1
1.1.1 微型計算機系統(tǒng)的基本構成 1
1.1.2 微型計算機系統(tǒng)的分類 2
1.2 單片機概述 4
1.2.1 單片機的概念 4
1.2.2 單片機的發(fā)展歷史 4
1.2.3 單片機的應用 5
1.2.4 單片機的特點 6
1.2.5 MCS-51系列單片機簡介 7
1.2.6 AT89S5x系列單片機簡介 7
1.2.7 其他類型的單片機 9
本章小結 10
思考題與習題 10
第2章 AT89S51單片機的硬件
結構 11
2.1 AT89S51單片機的內(nèi)部結構 11
2.1.1 中央處理器(CPU) 12
2.1.2 存儲器 13
2.1.3 總線 21
2.1.4 I/O端口 21
2.2 AT89S51單片機的引腳功能 25
2.3 AT89S51單片機的指令時序 27
2.3.1 AT89S51單片機的典型指令及執(zhí)行時序 27
2.3.2 外部程序存儲器讀時序 28
2.3.3 外部數(shù)據(jù)存儲器讀時序 29
2.3.4 最小系統(tǒng) 30
本章小結 30
思考題與習題 31
第3章 單片機的C語言程序設計 32
3.1 C51語言程序設計基礎 32
3.1.1 C51語言的數(shù)據(jù)類型與存儲
類型 32
3.1.2 常量與變量 38
3.1.3 C51語言的絕對地址訪問 41
3.1.4 C51語言的運算符與表達式 43
3.2 C51語言的基本語句 48
3.2.1 表達式語句和復合語句 48
3.2.2 選擇語句 49
3.2.3 循環(huán)語句 52
3.3 C51語言的數(shù)組 57
3.3.1 一維數(shù)組 57
3.3.2 二維數(shù)組 59
3.3.3 字符型數(shù)組 61
3.3.4 數(shù)組與存儲空間 62
3.3.5 數(shù)組的應用 62
3.4 C51語言的指針 63
3.4.1 通用指針 63
3.4.2 存儲器指針 64
3.5 C51語言的函數(shù) 64
3.5.1 函數(shù)的分類 64
3.5.2 函數(shù)的定義 66
3.5.3 函數(shù)調(diào)用 67
3.5.4 函數(shù)的返回值 68
本章小結 68
思考題與習題 69
第4章 開發(fā)與仿真工具 71
4.1 Proteus集成開發(fā)環(huán)境 71
4.1.1 Proteus軟件介紹 71
4.1.2 Proteus的主要功能 71
4.1.3 Proteus可模擬的元器件和儀器
以及聯(lián)合仿真 72
4.1.4 Proteus軟件的安裝 72
4.1.5 Proteus的新建工程介紹 74
4.1.6 主工具欄 76
4.2 Keil C51集成開發(fā)環(huán)境實例 77
4.2.1 Keil C51集成開發(fā)環(huán)境安裝 77
4.2.2 Keil C51集成開發(fā)環(huán)境介紹 80
4.2.3 Keil C51使用實例 86
4.3 Proteus應用案例 89
4.3.1 流水燈案例 89
4.3.2 靜態(tài)數(shù)碼管案例 93
4.3.3 LED模擬交通燈案例 96
4.3.4 LED步進電動機案例 98
本章小結 100
思考題與習題 100
第5章 單片機I/O端口的應用 102
5.1 輸出端口的應用 102
5.1.1 單片機控制LED 102
5.1.2 LED數(shù)碼管顯示器的設計 110
5.1.3 單片機控制蜂鳴器 114
5.2 輸入端口的應用 117
5.2.1 單片機輸入端口的結構和功能
特點 117
5.2.2 按鍵的輸入電路設計 119
5.2.3 一鍵多功能信號燈的設計 123
5.3 單片機I/O端口的高級應用 127
5.3.1 LED數(shù)碼管顯示方式和單片機與LED數(shù)碼管動態(tài)顯示接口 127
5.3.2 鍵盤掃描 129
5.3.3 單片機與字符型液晶顯示器接口
的設計 133
5.3.4 時鐘/日歷芯片DS1302 142
5.3.5 設計案例:多功能數(shù)字電子
時鐘/日歷的設計 145
本章小結 154
思考題與習題 155
第6章 單片機中斷系統(tǒng)的應用 156
6.1 單片機中斷系統(tǒng)概述 156
6.1.1 中斷的概念 156
6.1.2 中斷源 156
6.1.3 中斷的特點 157
6.1.4 中斷優(yōu)先級 158
6.2 51系列單片機的中斷系統(tǒng) 161
6.2.1 單片機的外部中斷觸發(fā)方式 161
6.2.2 單片機的中斷處理過程 161
6.2.3 單片機的中斷請求的撤銷 163
6.3 51系列單片機中斷系統(tǒng)軟件設計
方法 164
6.3.1 中斷系統(tǒng)的初始化編程 164
6.3.2 中斷服務程序的編寫 165
6.4 設計案例:帶應急信號處理的交通燈
控制器的設計 169
本章小結 170
思考題與習題 170
第7章 單片機定時器/計數(shù)器的
應用 171
7.1 定時器/計數(shù)器的結構和工作原理 171
7.1.1 定時器/計數(shù)器工作方式
寄存器(TMOD) 172
7.1.2 定時器/計數(shù)器控制
寄存器(TCON) 172
7.2 定時器/計數(shù)器的4種工作方式 173
7.2.1 方式0 173
7.2.2 方式1 174
7.2.3 方式2 174
7.2.4 方式3 175
7.2.5 初值計算 176
7.3 定時器/計數(shù)器的應用案例 176
7.3.1 定時器的應用 177
7.3.2 計數(shù)器的應用 181
7.3.3 利用T1控制P1.7發(fā)出1kHz的
音頻信號 183
7.3.4 LED數(shù)碼管秒表 185
7.3.5 門控位的應用—測量脈沖
寬度 187
7.4 AT89S52單片機的定時器/計數(shù)器
T2 190
7.4.1 T2相關的寄存器 190
7.4.2 T2的工作方式 191
本章小結 195
思考題與習題 196
第8章 單片機串行口的應用 197
8.1 串行通信基礎 197
8.1.1 同步通信和異步通信 198
8.1.2 串行通信的傳輸方式 199
8.1.3 串行通信的錯誤校驗 199
8.1.4 傳輸速率與傳輸距離 200
8.2 串行口的結構 200
8.2.1 串行口控制寄存器(SCON) 201
8.2.2 電源控制寄存器(PCON) 203
8.3 串行口的工作方式 203
8.3.1 方式0 203
8.3.2 方式1 206
8.3.3 方式2和方式3 207
8.4 串