目 錄
第 1章單片機繫統概述 . 1
1.1 微型計算機概述 .1
1.2 單片機的發展歷史 .2
1.3 單片機的分類 .4
1.4 單片機的發展趨勢 .4
1.5 單片機的應用 .7
1.6 主流單片機產品 .9
1.6.1 Intel公司的 MCS-51繫列單片機 .9
1.6.2 Atmel公司的 AVR單片機10
1.6.3 Microchip公司的 PIC單片機 .11
第 2章單片機的硬件結構 12
2.1 單片機的內部結構 .12
2.2 51單片機的中央處理器 14
2.3 單片機的工作過程 .16
2.4 51繫列單片機的引腳及功能 17
2.5 存儲器結構 .20
2.5.1 存儲器地址分配 .20
2.5.2 程序存儲器 .21
2.5.3 片內數據存儲器 .22
2.5.4 片外數據存儲器 .30
2.6 時鐘電路和 CPU時序.30
2.6.1 時鐘電路 .30
2.6.2 時序單位 .31
2.6.3 典型指令時序 .32
2.7 單片機的工作方式 .34
2.7.1 復位方式 .35
2.7.2 程序執行方式 .36
2.7.3 低功耗工作模式 .37
2.8 思考與練習 .38
第 3章指令繫統 .39
3.1單片機開發語言概述 .39
3.2指令格式和尋址方式 .40
3.2.1彙編語言指令格式 .41
3.2.2尋址方式 .41
3.3 80C51單片機的指令繫統 .46
3.3.1數據傳送指令 .47
3.3.2算術運算類指令 .54
3.3.3邏輯運算類指令 .62
3.3.4控制轉移指令 .66
3.3.5位操作指令 .73
3.4 偽指令 .76
3.5彙編語言程序設計 .79
3.5.1順序程序設計 .79
3.5.2查表程序設計 .80
3.5.3分支程序設計 .83
3.5.4循環程序設計 .89
3.5.5子程序設計 .92
3.6彙編語言程序設計實例 .95
3.6.1巡回檢測報警裝置 .95
3.6.2單片機測溫繫統 .95
3.6.3碼制轉換 .96
3.6.4排序問題 .102
3.7 思考與練習 .105
第 4章單片機 C51程序設計 107
4.1 C51基礎知識 .107
4.2數據類型 .110
4.2.1 C語言數據類型 .110
4.2.2 常量 .111
4.2.3 變量 .114
4.3運算符與表達式 .122
4.3.1賦值運算符與表達式 .122
4.3.2算術運算符與表達式 .122
4.3.3邏輯運算符與表達式 .123
4.3.4關繫運算符與表達式 .124
4.3.5位運算符與表達式 .125
4.3.6逗號運算符與表達式 .125
4.3.7條件運算符 .126
4.3.8長度運算符 .126
4.3.9指針運算符 .126
4.3.10復合賦值運算符與表達式 .127
4.3.11類型轉換運算符 .127
4.3.12運算符優先級和結合性 .128
4.4構造數據類型 .129
4.4.1 數組 .129
4.4.2 指針 .135
4.4.3 結構 .138
4.4.4 共用體(聯合).141
4.4.5 枚舉 .142
·IV·
4.5基本語句和程序流程結構 .143
4.5.1順序語句和順序流程結構 .143
4.5.2選擇語句和選擇流程結構 .146
4.5.3循環語句和循環流程結構 .150
4.5.4循環結構 .156
4.6 函數 .158
4.6.1函數的分類 .158
4.6.2函數的定義 .158
4.6.3 函數的參數和函數的值 .160
4.6.4函數的調用 .162
4.6.5數組作為函數的參數 .165
4.7 思考與練習 .165
第 5章 51單片機並行 I/O端口. 167
5.1 I/O端口工作原理 .167
5.1.1 P0口167
5.1.2 P1口169
5.1.3 P2口170
5.1.4 P3口171
5.2端口的負載能力和接口要求 .172
5.3 並行 I/O應用舉例 173
5.4 思考與練習 .176
第 6章 51單片機中斷繫統 . 177
6.1中斷概念 .177
6.2中斷繫統結構及中斷控制 .178
6.2.1中斷繫統結構 .178
6.2.2中斷類型 .178
6.2.3中斷控制 .180
6.2.4多級中斷和中斷嵌套 .182
6.3中斷處理過程 .183
6.4中斷響應時間 .185
6.5中斷請求的撤銷 .186
6.6中斷程序的設計 .187
6.6.1彙編語言中斷程序 .188
6.6.2 C語言中斷程序 .189
6.7 思考與練習 .192
第 7章 MCS-51單片機定時器 /計數器 193
7.1 定時器 /計數器的結構和功能 193
7.2 定時器 /計數器相關寄存器 195
7.3 定時器 /計數器的工作方式 196
7.4 定時器 /計數器的編程 204
7.5 思考與練習 .207
·V·
第 8章 51單片機串行接口 . 208
8.1串行通信基礎 .208
8.1.1 異步通信 .208
8.1.2 同步通信 .210
8.1.3串行通信的傳輸方向 .210
8.1.4串行通信的傳輸速率 .211
8.2 51單片機串行口 212
8.2.1串行口結構 .212
8.2.2串行數據緩衝寄存器 SBUF 213
8.2.3串行口控制寄存器 SCON .213
8.2.4電源控制寄存器 PCON .215
8.2.5波特率的設定 .216
8.3串行口工作方式 .217
8.3.1 方式 0218
8.3.2 方式 1219
8.3.3 方式 2220
8.3.4 方式 3221
8.4串行口應用實例 .221
8.4.1串行口方式 0應用.222
8.4.2串行口方式 1應用.224
8.4.3串行口方式 2和方式 3應用.226
8.5 思考與練習 .227
第 9章並行 I/O接口的擴展 . 229
9.1 I/O接口電路功能 .229
9.2 簡單並行 I/O接口擴展 231
9.2.1簡單並行輸入口擴展 .231
9.2.2簡單輸出口擴展 .232
9.3可編程並行接口芯片 8255234
9.3.1 8255A芯片介紹 .234
9.3.2 8255A的初始化編程 .239
9.3.3單片機和 8255A的接口及程序設計 239
9.4 思考與練習 .242
第 10章存儲器的擴展 243
10.1單片機繫統總線結構 .243
10.2地址譯碼方法 .245
10.2.1編址方法.245
10.2.2 74LS138(3-8譯碼器)246
10.2.3 可編程邏輯器件 .249
10.3程序存儲器擴展 .252
10.3.1常用程序存儲器芯片 .252
10.3.2 典型的 EPROM接口電路 .255
10.4數據存儲器擴展 .259
10.4.1 常用的靜態 RAM(SRAM)芯片260
·VI·
10.4.2 典型的外擴數據存儲器的接口電路 .262
10.5 思考與練習 .264
第 11章輸入設備 . 265
11.1 鍵盤概述 .265
11.1.1按鍵去抖動 .265
11.1.2鍵盤的分類 .267
11.2 鍵盤與單片機的接口 .270
11.2.1 獨立式鍵盤與單片機的接口 .270
11.2.2 矩陣式鍵盤與單片機的接口 .274
11.2.3 串行口擴展鍵盤接口 .277
11.3 思考與練習 .280
第 12章輸出設備 . 281
12.1發光二極管 .281
12.2 LED接口282
12.2.1 LED的結構與工作原理 283
12.2.2 LED的工作方式 284
12.2.3 LED數碼管的選擇和驅動 286
12.2.4 數碼管的軟件譯碼和硬件譯碼 .286
12.2.5數碼管應用設計 .287
12.3 LCD接口290
12.3.1 LCD工作原理 290
12.3.2 OCM12864液晶顯示模塊 .292
12.3.3 LCD應用舉例 296
12.4 8279可編程鍵盤 /顯示器接口芯片 .303
12.4.1 8279可編程芯片簡介 303
12.4.2 8279與單片機接口應用舉例 310
12.5 打印輸出設備 .312
12.5.1 微型打印機概述 .312
12.5.2 微型打印機的應用 .317
12.6 思考與練習 .320
第 13章 A/D和 D/A轉換器 321
13.1 A/D轉換器.321
13.1.1 A/D轉換器的主要參數 .321
13.1.2 逐次逼近式 A/D轉換器 ADC0809 .322
13.1.3 串行 A/D轉換器 ADC0832.327
13.2 D/A轉換器.329
13.2.1 D/A轉換器原理 .330
13.2.2 D/A轉換器的主要技術指標 .331
13.2.3 並行 D/A轉換器 DAC0832.332
13.2.4 串行 D/A轉換器 TLV5618339
13.3 思考與練習 .342
·VII·
第 14章應用實戰案例 343
14.1 仿真軟件 .343
14.1.1 新建文件和項目 .343
14.1.2 下載程序.344
14.2 溫度傳感器 DS18B20 345
14.2.1 單總線概述 .345
14.2.2 單總線器件——溫度傳感器 DS18B20.345
14.2.3 應用電路設計 .352
14.3 紅外遙控 .356
14.4 直流電動機控制 .362
14.4.1 直流電動機工作原理及調速方法 .362
14.4.2 PWM調速原理 362
14.4.3 應用電路設計 .363
14.4.4 軟件程序設計 .364
14.5 RS-232與 VB串行通信 369
14.5.1 VB串行通信簡介 .369
13.5.2 應用電路設計 .370
14.5.3 軟件程序設計 .370
14.6 語音錄放控制 .373
14.6.1 ISD2560引腳功能 373
14.6.2 應用電路設計 .375
14.6.3 軟件程序設計 .375
14.7 思考與練習 .377
附錄 A ASCII碼字符表 .378
附錄 B MCS-51繫列單片機指令一覽表 379
附錄 C C51庫函數.384
·VIII·