本書從現實教學和工程實際應用出發,兼顧基礎與實用,以數字電子技術作為先修課程,從介紹微型計算機的基本結構和工作原理入手,以AT89S51單片機為例介紹單片微機的結構、工作原理及應用,注重基礎性和實用性相結合。以二進制和基本邏輯電路為起點闡述微型計算機的基本工作原理,并通過豐富的實例將基本概念、基本理論、基本方法講清講透。本書引入Keil C和Proteus,并配備豐富的課堂演示實例,將實驗室搬入教室。另外,例題程序設計采用匯編語言和C語言雙方案,便于讀者對照學習。本書提供配套電子課件、習題解答和教學指南。
徐春輝,男,南昌航空航天大學教授,長期從事電子信息科學與工程專業領域的一線教學和科研工作,出版多部著作,教學、科研和寫作經驗豐富。
目 錄
第1章 緒論1
1.1 計算機的誕生、發展及基本結構1
1.2 計算機類型劃分2
1.2.1 通用計算機2
1.2.2 嵌入式計算機2
1.3 嵌入式計算機的類別及應用特點3
1.3.1 嵌入式計算機的類別3
1.3.2 嵌入式計算機系統的應用特點3
1.4 單片微型計算機應用系統舉例3
習題與思考題15
第2章 微型計算機基礎6
2.1 計算機中的數、編碼和運算6
2.1.1 計算機中常用的數制及相互
轉換6
2.1.2 微型計算機中常用的編碼7
2.1.3 微型計算機的運算基礎8
2.2 微型計算機的基本結構11
2.2.1 存儲器的組成及功能12
2.2.2 微處理器的結構及工作原理14
2.2.3 輸入/輸出設備及其接口電路19
2.2.4 微型計算機的總線連接結構20
2.3 微型計算機的指令執行過程22
2.4 微型計算機系統24
2.4.1 微型計算機系統的組成24
2.4.2 微型計算機系統的性能指標26
2.4.3 微型計算機的分類27
2.5 單片微型計算機概述27
2.5.1 什么是單片微型計算機27
2.5.2 單片機的發展歷史27
2.5.3 單片機的特點28
2.5.4 單片機的應用28
2.5.5 單片機的發展趨勢29
2.5.6 單片機的主要制造廠商和機型30
2.5.7 51系列單片機簡介30
習題與思考題232
第3章 51系列單片機的硬件結構與
時序34
3.1 AT89S51單片機的結構概述34
3.2 AT89S51單片機的外部引腳35
3.2.1 電源及時鐘引腳35
3.2.2 控制引腳36
3.2.3 并行I/O口引腳36
3.3 AT89S51單片機的CPU37
3.3.1 運算器37
3.3.2 控制器39
3.4 AT89S51單片機存儲器的結構39
3.4.1 程序存儲器空間39
3.4.2 數據存儲器空間40
3.4.3 特殊功能寄存器41
3.4.4 位地址空間45
3.5 AT89S51單片機的并行輸入/
輸出接口45
3.5.1 P0口46
3.5.2 P1口47
3.5.3 P2口47
3.5.4 P3口48
3.6 AT89S51單片機的時鐘電路與
時序49
3.6.1 AT89S51單片機的時鐘電路49
3.6.2 時序與時序定時單位51
3.6.3 AT89S51指令的取指/執行
時序52
3.6.4 AT89S51對片外存儲器的操作
時序53
3.7 復位操作與復位電路55
3.8 AT89S51單片機的低功耗節電
模式與看門狗定時器56
3.8.1 空閑模式57
3.8.2 掉電運行模式58
3.8.3 掉電和空閑模式下的看門狗定
時器WDT58
習題與思考題358
第4章 51系列單片機的指令系統60
4.1 指令及其格式60
4.1.1 指令系統概述60
4.1.2 指令描述符號的約定61
4.1.3 機器指令的字節編碼格式61
4.1.4 符號指令的書寫格式62
4.2 51系列單片機的尋址方式62
4.2.1 立即尋址62
4.2.2 直接尋址63
4.2.3 寄存器尋址63
4.2.4 寄存器間接尋址64
4.2.5 變址尋址(基址寄存器加變址
寄存器間址尋址)64
4.2.6 相對尋址方式65
4.2.7 位尋址方式65
4.3 51系列單片機指令系統分類
介紹66
4.3.1 數據傳送類指令66
4.3.2 算術運算類指令71
4.3.3 邏輯運算與移位指令77
4.3.4 控制轉移類指令79
4.3.5 位操作類指令84
4.3.6 51系列單片機指令匯總86
習題與思考題489
第5章 51系列單片機匯編語言程序設
計及仿真調試91
5.1 匯編語言程序設計基礎91
5.1.1 機器語言、匯編語言與高級
語言91
5.1.2 匯編語言的語句和格式92
5.1.3 偽指令93
5.1.4 匯編語言源程序的匯編95
5.1.5 匯編語言程序設計的一般步驟96
5.2 匯編語言源程序的基本結構96
5.2.1 順序結構96
5.2.2 分支結構97
5.2.3 循環結構98
5.2.4 子程序102
5.3 51系列單片機匯編語言實用
程序設計舉例105
5.3.1 查表程序設計105
5.3.2 散轉程序設計107
5.3.3 碼制轉換程序設計108
5.3.4 運算程序設計109
5.4 程序調試與集成開發環境軟件
Keil Vision110
5.4.1 程序調試概述110
5.4.2 Keil Vision軟件簡介110
5.4.3 Keil Vision集成開發環境中
調試單片機匯編語言源程序的
方法111
習題與思考題5117
*第6章 單片機的C語言程序設計118
6.1 單片機C語言概述118
6.1.1 采用C51的優點118
6.1.2 C51的程序框架118
6.1.3 C51的程序開發過程119
6.2 C51的數據與運算120
6.2.1 C51的數據類型120
6.2.2 C51的數據存儲類型121
6.2.3 C51數據的存儲器模式121
6.2.4 C51的指針變量121
6.2.5 C51對SFR、可尋址位、存
儲器和I/O口的定義124
6.3 C51的運算符和表達式126
6.4 C51的基本語句129
6.4.1 表達式語句129
6.4.2 復合語句129
6.4.3 選擇語句129
6.4.4 循環語句130
6.5 C51的函數131
6.5.1 函數的分類131
6.5.2 C51函數的定義132
6.5.3 C51函數的調用133
6.5.4 對被調函數的說明133
6.5.5 C51的庫函數133
6.6 C51編程實例133
6.6.1 C語言程序與匯編語言源程序
的關系133
6.6.2 順序程序的設計135
6.6.3 循環程序的設計136
6.6.4 分支程序的設計136
6.7 匯編語言和C語言的混合編程138
習題與思考題6139
第7章 51系列單片機I/O口應用與
軟/硬件系統模擬調試140
7.1 AT89S51單片機I/O接口的
應用140
7.1.1 AT89S51單片機I/O接口的
操作方式140
7.1.2 I/O接口的應用實例:發光二
極管的控制141
7.2 軟/硬件系統的模擬調試與Proteus
軟件143
7.2.1 Proteus軟件的特點143
7.2.2 Proteus軟件對于單片機教學的
重要意義143
7.3 Proteus軟件快速入門143
7.3.1 Proteus工作界面144
7.3.2 使用Proteus進行單片機系統
仿真設計的步驟146
7.4 應用實例146
7.4.1 原理圖設計146
7.4.2 Proteus仿真149
習題與思考題7150
第8章 51系列單片機的中斷系統151
8.1 中斷系統的基本概念151
8.1.1 中斷的定義和作用151
8.1.2 中斷的分類152
8.1.3 中斷系統的基本結構及功能152
8.2 AT89S51單片機的中斷系統157
8.2.1 AT89S51的中斷請求源和
中斷標志158
8.2.2 AT89S51對中斷請求的控制159
8.2.3 AT89S51中斷處理的過程162
8.3 中斷系統的程序設計及實例165
8.3.1 中斷系統的程序設計165
8.3.2 中斷系統程序設計舉例167
8.4 AT89S51對外部中斷源的擴展171
8.4.1 采用中斷加查詢法擴展外部
中斷源171
習題與思考題8174
第9章 51系列單片機的定時器/計
數器176
9.1 定時器/計數器概述176
9.2 AT89S51單片機定時器/計數器
的結構176
9.2.1 工作方式控制寄存器TMOD177
9.2.2 定時器/計數器控制寄存器
TCON178
9.3 定時器/計數器的4種工作
方式178
9.3.1 方式0178
9.3.2 方式1179
9.3.3 方式2180
9.3.4 方式3180
9.4 對外部輸入信號的要求182
9.5 定時器/計數器的編程和應用182
9.5.1 定時器/計數器的編程182
9.5.2 定時器/計數器的應用舉例183
習題與思考題9196
第10章 51系列單片機的串行接口及
其應用198
10.1 計算機串行通信基礎198
10.1.1 計算機通信方式的分類198
10.1.2 串行通信的分類199
10.1.3 串行通信的制式201
10.1.4 串行通信中的調制與解調201
10.1.5 串行通信的校驗202
10.1.6 串行通信中串行I/O數據的
實現202
10.2 AT89S51單片機串行口的結
構及工作原理203
10.2.1 串行口的結構203
10.2.2 串行口的工作方式205
10.3 AT89S51單片機串行口的
應用211
10.3.1 串行通信的編程要點211
10.3.2 串行口在方式0下的應用212
10.3.3 串行口在其他方式下的
應用215
10.4 單片機的主從式多機通信223
10.5 單片機與PC間的串行通信224
10.5.1 單片機與PC串行通信的
硬件連接224
10.5.2 通信協議與通信程序226
習題與思考題10227
第11章 51系列單片機的存儲器擴展229
11.1 單片機系統擴展概述229
11.2 51系列單片機并行總線構造
和地址鎖存器230
11.2.1 并行總線的構造230
11.2.2 外部地址鎖存器230
11.3 51系列單片機地址空間分配
和地址譯碼器231
11.4 程序存儲器的擴展235
11.4.1 程序存儲器芯片類型的選擇235
11.4.2 常用EPROM芯片的簡介235
11.4.3 訪問程序存儲器的控制信號237
11.4.4 AT89S51單片機與EPROM
的接口電路設計238
11.4.5 單片機外擴程序存儲器的時
序分析與使用239
11.5 數據存儲器擴展240
11.5.1 數據存儲器芯片類型的
選擇240
11.5.2 常用靜態數據存儲器RAM
芯片簡介240
11.5.3 AT89S51單片機與外部RAM
的接口電路設計241
11.5.4 單片機外擴數據存儲器的時
序分析與使用243
11.6 程序存儲器和數據存儲器的綜
合擴展244
11.7 E2PROM的擴展簡介246
11.7.1 并行E2PROM芯片簡介246
11.7.2 E2PROM的工作方式247
11.7.3 并行E2PROM與單片機的
接口設計247
11.8 AT89S51單片機片內Flash存
儲器的編程247
11.8.1 AT89S51單片機片內Flash
存儲器概況248
11.8.2 AT89S51單片機片內Flash
存儲器的編程248
習題與思考題11250
第12章 51系列單片機的并行I/O
接口擴展251
12.1 I/O接口擴展概述251
12.1.1 I/O接口的功能251
12.1.2 I/O端口的編址252
12.1.3 單片機與I/O設備的數據傳
送方式253
12.1.4 單1