本書以實用為宗旨,以51系列單片機(jī)為背景,結(jié)合Keil、C51、Proteus等單片機(jī)系統(tǒng)開發(fā)軟件,通過實例講解MCS-51單片機(jī)的原理和硬、軟件開發(fā)技術(shù),針對同一功能,同時提供單片機(jī)匯編源程序和單片機(jī)C語言源程序。主要內(nèi)容包括計算機(jī)基礎(chǔ)知識及微處理器、8051單片機(jī)的結(jié)構(gòu)體系、指令系統(tǒng)、8051單片機(jī)程序設(shè)計基礎(chǔ)、8051單片機(jī)的中斷系統(tǒng)、8051單片機(jī)的定時/計數(shù)器、8051單片機(jī)的串行接口及串行總線、8051單片機(jī)的系統(tǒng)擴(kuò)展與接口技術(shù)、單片機(jī)應(yīng)用系統(tǒng)的開發(fā)實例、Proteus仿真軟件及Keil集成開發(fā)環(huán)境的使用。 本書可作為高等院校自動化、電子信息、計算機(jī)應(yīng)用、機(jī)電一體化等專業(yè)的單片機(jī)課程本科教材,也可作為高職高專及函授教材,同時可作為工程技術(shù)人員的參考書。
方紅,成都大學(xué)電子信息工程學(xué)院副教授,成都市精品課程《微機(jī)原理與接口技術(shù)》和學(xué)!白詣踊瘜I(yè)實驗室建設(shè)工程”的負(fù)責(zé)人。主要講授微機(jī)原理及接口技術(shù)、計算機(jī)控制技術(shù)、過程控制與儀表、計算機(jī)網(wǎng)絡(luò)等專業(yè)理論課程。
目 錄
第1章 微型計算機(jī)與單片機(jī)基礎(chǔ)知識 1
1.1 微型計算機(jī)與單片機(jī)的感性認(rèn)識 1
1.2 計算機(jī)硬件的基本組成 1
1.3 微型計算機(jī)的硬件構(gòu)成 2
1.3.1 微型計算機(jī)的硬件結(jié)構(gòu) 2
1.3.2 微處理器(CPU) 2
1.3.3 存儲器 4
1.3.4 輸入/輸出(I/O) 4
1.3.5 總線(BUS) 5
1.4 計算機(jī)中信息的表示 5
1.4.1 計算機(jī)中無符號整數(shù)的表示 5
1.4.2 計算機(jī)中有符號數(shù)的表示 6
1.4.3 十進(jìn)制數(shù)的表示 8
1.4.4 計算機(jī)中字符的表示 9
1.5 單片機(jī)概述 10
1.5.1 單片機(jī)的典型硬件結(jié)構(gòu) 10
1.5.2 單片機(jī)與微型計算機(jī)的比較 10
1.5.3 主要的單片機(jī)產(chǎn)品 11
1.5.4 單片機(jī)的應(yīng)用領(lǐng)域 14
1.5.5 單片機(jī)的發(fā)展過程與趨勢 15
習(xí)題 16
第2章 單片機(jī)的結(jié)構(gòu)及工作原理 18
2.1 MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu) 18
2.1.1 MCS-51單片機(jī)的基本組成 18
2.1.2 中央處理器(CPU) 19
2.1.3 存儲器 20
2.1.4 I/O端口 21
2.2 8051單片機(jī)的存儲器組織 24
2.2.1 存儲器組織 24
2.2.2 程序存儲器 25
2.2.3 數(shù)據(jù)存儲器 27
2.3 51系列單片機(jī)的引腳及功能 31
2.3.1 51單片機(jī)的引腳分類 31
2.3.2 三總線結(jié)構(gòu) 33
2.4 時鐘電路與CPU時序 33
2.4.1 振蕩器和時鐘電路 33
2.4.2 CPU時序 33
2.5 單片機(jī)的工作方式 36
2.5.1 復(fù)位方式 36
2.5.2 程序執(zhí)行方式 36
2.5.3 單步執(zhí)行方式 37
2.5.4 掉電和節(jié)電方式 38
2.5.5 編程和校驗方式 38
2.6 51系列單片機(jī)最小系統(tǒng) 39
習(xí)題 40
第3章 51單片機(jī)指令系統(tǒng)及匯編程序設(shè)計 41
3.1 指令系統(tǒng)概述 41
3.1.1 51單片機(jī)匯編指令格式 41
3.1.2 51單片機(jī)匯編指令常用符號 42
3.2 51單片機(jī)的尋址方式 42
3.2.1 立即尋址 42
3.2.2 寄存器尋址 43
3.2.3 直接尋址 43
3.2.4 寄存器間接尋址 43
3.2.5 變址尋址 44
3.2.6 指令尋址 45
3.2.7 位尋址 45
3.3 51單片機(jī)的指令系統(tǒng) 45
3.3.1 數(shù)據(jù)傳送類指令 46
3.3.2 算術(shù)運算類指令 49
3.3.3 邏輯操作類指令 52
3.3.4 控制轉(zhuǎn)移類指令 54
3.3.5 位操作類指令 57
3.4 51單片機(jī)匯編程序設(shè)計概述 59
3.4.1 51單片機(jī)匯編程序設(shè)計過程 60
3.4.2 51單片機(jī)匯編程序常用偽指令 60
3.5 51單片機(jī)常用匯編程序設(shè)計 63
3.5.1 數(shù)據(jù)傳送程序 63
3.5.2 運算程序 64
3.5.3 代碼轉(zhuǎn)換程序 66
3.5.4 分支程序 67
3.5.5 延時程序 69
習(xí)題 69
第4章 51單片機(jī)C程序設(shè)計 71
4.1 C語言與51單片機(jī) 71
4.1.1 C語言的特點 71
4.1.2 C語言程序的結(jié)構(gòu) 72
4.1.3 C51與標(biāo)準(zhǔn)C語言 73
4.2 C51的數(shù)據(jù)類型 73
4.2.1 char字符型 74
4.2.2 int整型 74
4.2.3 long長整型 74
4.2.4 float浮點型 75
4.2.5 指針型 75
4.2.6 特殊功能寄存器型 75
4.2.7 位類型 76
4.3 C51的變量與存儲類型 76
4.3.1 C51的普通變量及定義 76
4.3.2 特殊功能寄存器變量 79
4.3.3 位變量 79
4.3.4 指針變量 80
4.4 絕對地址的訪問 81
4.4.1 使用C51運行庫中預(yù)定義宏 81
4.4.2 通過指針訪問 82
4.4.3 使用C51擴(kuò)展關(guān)鍵字_at_ 83
4.5 C51中的函數(shù) 83
4.5.1 C51函數(shù)的參數(shù)傳遞 84
4.5.2 C51函數(shù)的返回值 84
4.5.3 C51函數(shù)的存儲模式 85
4.5.4 C51的中斷函數(shù) 85
4.5.5 C51函數(shù)的寄存器組 86
4.5.6 C51的重入函數(shù) 87
習(xí)題 87
第5章 51單片機(jī)中斷系統(tǒng) 89
5.1 中斷的基本概念 89
5.1.1 中斷的概念 89
5.1.2 中斷源及中斷請求 90
5.1.3 中斷優(yōu)先權(quán)控制 90
5.1.4 中斷允許與中斷屏蔽 90
5.1.5 中斷響應(yīng)與中斷返回 90
5.2 51單片機(jī)的中斷系統(tǒng) 90
5.2.1 51單片機(jī)的中斷系統(tǒng)總體結(jié)構(gòu) 90
5.2.2 51單片機(jī)的中斷源 90
5.2.3 兩級中斷允許控制 92
5.2.4 兩級優(yōu)先級控制 92
5.2.5 中斷響應(yīng) 94
5.3 51單片機(jī)中斷系統(tǒng)的編程與應(yīng)用 94
5.3.1 51單片機(jī)中斷系統(tǒng)的編程 94
5.3.2 51單片機(jī)中斷系統(tǒng)的應(yīng)用 95
習(xí)題 99
第6章 51單片機(jī)定時/計數(shù)器 100
6.1 定時/計數(shù)器的結(jié)構(gòu)及原理 100
6.1.1 主要特性 100
6.1.2 結(jié)構(gòu)及工作原理 100
6.2 定時/計數(shù)器的方式和控制寄存器 101
6.2.1 方式寄存器TMOD 101
6.2.2 控制寄存器TCON 102
6.3 定時/計數(shù)器的工作方式 103
6.3.1 方式0――13位定時/計數(shù)器方式 103
6.3.2 方式1――16位定時/計數(shù)器方式 103
6.3.3 方式2――8位自動重置定時/計數(shù)方式 104
6.3.4 方式3――兩個8位定時/計數(shù)器方式 104
6.4 定時/計數(shù)器的初始化編程及應(yīng)用 105
6.4.1 定時/計數(shù)器的初始化編程 105
6.4.2 定時/計數(shù)器的應(yīng)用 105
習(xí)題 110
第7章 51單片機(jī)串行接口 111
7.1 通信的基本概念 111
7.1.1 并行通信和串行通信 111
7.1.2 串行通信的基本過程 112
7.1.3 串行通信的通信方式 113
7.1.4 波特率 114
7.2 51單片機(jī)串行口的功能與結(jié)構(gòu) 114
7.2.1 串行口的功能 114
7.2.2 串行口的結(jié)構(gòu) 114
7.2.3 串行口控制寄存器SCON 115
7.2.4 電源控制寄存器PCON 116
7.3 串行口的工作方式 117
7.3.1 方式0――同步移位寄存器方式 117
7.3.2 方式1――8位異步通信方式 117
7.3.3 方式2和方式3――9位異步通信方式 118
7.4 串行口的應(yīng)用 118
7.4.1 利用方式0擴(kuò)展并行I/O接口 118
7.4.2 利用方式1實現(xiàn)點對點的雙機(jī)通信 122
習(xí)題 125
第8章 51系統(tǒng)擴(kuò)展及接口技術(shù) 126
8.1 51單片機(jī)系統(tǒng)擴(kuò)展概述 126
8.1.1 51單片機(jī)系統(tǒng)擴(kuò)展方法 126
8.1.2 單片機(jī)常用擴(kuò)展芯片 127
8.2 存儲器擴(kuò)展 130
8.2.1 程序存儲器擴(kuò)展 130
8.2.2 數(shù)據(jù)存儲器的擴(kuò)展 131
8.3 I/O口擴(kuò)展設(shè)計 132
8.3.1 簡單I/O口擴(kuò)展 133
8.3.2 8255可編程并行接口芯片 134
8.4 顯示器接口擴(kuò)展技術(shù) 140
8.4.1 LED顯示器及其接口 140
8.4.2 LCD顯示器及其接口 147
8.5 鍵盤接口設(shè)計 153
8.5.1 鍵盤工作原理 153
8.5.2 鍵盤接口設(shè)計 156
8.6 D/A、A/D轉(zhuǎn)換器與51單片機(jī)的接口 163
8.6.1 DAC0832與51單片機(jī)的接口 163
8.6.2 ADC0809與8051的接口 169
習(xí)題 175
第9章 單片機(jī)應(yīng)用系統(tǒng)設(shè)計及舉例 177
9.1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程 177
9.1.1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)的基本過程 177
9.1.2 單片機(jī)應(yīng)用系統(tǒng)的硬件系統(tǒng)設(shè)計 178
9.1.3 單片機(jī)應(yīng)用系統(tǒng)的軟件設(shè)計 180
9.1.4 單片機(jī)應(yīng)用系統(tǒng)開發(fā)工具 182
9.2 單片機(jī)電子時鐘的設(shè)計 182
9.2.1 功能要求 182
9.2.2 總體方案設(shè)計 182
9.2.3 主要器件介紹 183
9.2.4 硬件電路設(shè)計 188
9.2.5 軟件程序設(shè)計 189
9.3 單片機(jī)數(shù)顯溫度計設(shè)計 203
9.3.1 功能要求 203
9.3.2 總體方案設(shè)計 203
9.3.3 主要器件介紹 204
9.3.4 硬件電路設(shè)計 208
9.3.5 系統(tǒng)軟件程序設(shè)計 209
習(xí)題 219
第10章 Keil C51集成環(huán)境的使用 220
10.1 Keil C51簡介 220
10.1.1 Keil ?Vision4 IDE的安裝 220
10.1.2 Keil ?Vision4 IDE界面 220
10.2 Keil ?Vision4 IDE的使用方法 225
10.2.1 建立項目文件 226
10.2.2 給項目添加程序文件 227
10.2.3 編譯、連接項目,形成目標(biāo)文件 229
10.2.4 運行調(diào)試觀察結(jié)果 230
10.2.5 仿真環(huán)境的設(shè)置 230
習(xí)題 233
第11章 Proteus軟件的使用 234
11.1 Proteus概述 234
11.1.1 Proteus的啟動 234
11.1.2 Proteus的界面 235
11.2 Proteus的基本操作 237
11.2.1 新建電路,選擇元件 237
11.2.2 放置元件,調(diào)整元件 239
11.2.3 連接導(dǎo)線 240
11.2.4 給單片機(jī)加載程序 243
11.2.5 運行仿真查看結(jié)果 243
習(xí)題 244
附錄A 51系列單片機(jī)指令表 245
附錄B C51的庫函數(shù) 249