內容簡介
本書主要基於當前廣為套用的單片機開發軟體Keil C51集成開發環境和單片機仿真軟體Proteus,在介紹51單片機基本結構的基礎上,進一步詳細介紹了單片機仿真軟體Proteus的使用方法、單片機開發軟體Keil C51集成開發環境及Keil C51的使用方法、原始碼級調試和Keil C與Proteus聯合調試方法,用大量實例說明了單片機和外圍晶片的連線方法,同時提供電子資料包,詳細展示Proteus仿真原理圖、程式代碼和仿真調試方法,便於讀者學習、實踐。
目錄
第1章 51單片機基礎
1.1 51單片機基本結構 1
1.1.1 51單片機的基本組成 1
1.1.2 51單片機的引腳與功能 2
1.1.4 專用暫存器 5
1.2 51單片機的彙編語言 6
1.2.1 一個極簡單的彙編語言程式 6
1.2.2 彙編語言特點 6
1.2.3 彙編語言語句的種類和格式 6
1.2.4 彙編語言的基本語法規則 7
1.2.5 偽指令 8
1.2.6 51單片機的指令 9
1.3 51系列單片機 11
第2章 單片機仿真軟體Proteus的使用
2.1 進入Proteus ISIS 15
2.2 工作界面 16
2.3 Proteus ISIS原理圖設計 22
2.4 Proteus ISIS原理圖設計中若干注意事項 32
2.5 Proteus 軟體的仿真調試方法 34
2.5.1 直接用擴展名為HEX的十六進制檔案調試 34
2.5.2 原始碼級調試 37
2.5.3 Keil C與Proteus聯合調試 45
2.6 Proteus VSM仿真工具簡介 49
第3章 單片機開發軟體Keil C51的使用
3.1 Keil C51簡介 54
3.2 安裝Keil C51 54
3.3 如何建立一個工程 56
3.4 單片機選型 57
3.5 創建源程式 58
3.6 把新創建源程式加入到工程檔案中 60
3.7 工程的設定 61
3.8 編譯 66
3.9 調試 66
3.10 調試視窗(DEBUG Window) 68
4.1 和單片機直接連線的LED顯示器 71
4.1.1 兩位LED顯示器 71
4.1.2 四位LED顯示器 72
4.2 通過顯示解碼器和單片機連線的LED顯示器 76
4.2.1 74LS48七段顯示解碼器的套用 76
4.2.2 CD4543共陽極七段顯示解碼器的套用 79
4.3 通過觸發器暫存器晶片和單片機連線的顯示器 81
4.3.1 單片機AT89C51通過觸發器74LS273連線的顯示器 81
4.3.2 單片機AT89C51通過
移位暫存器74LS164連線的顯示器 83
4.4 通過
專用顯示器驅動晶片和單片機連線的顯示器 84
4.4.1 MAX7219/7221新型高集成度七段共陰極
LED驅動晶片簡介 85
4.4.2 MAX7219/7221與單片機的連線 86
4.4.3 顯示8位LED的彙編語言程式 88
4.4.4 顯示16位LED的彙編語言程式 89
4.4.5 程式設計與調試 96
第5章 記憶體的擴展
5.1 關於存儲器 98
5.2 程式存儲器的擴展 101
5.2.1 2K-EPROM晶片2716 101
5.2.2 64K-EPROM晶片27512 103
5.3 數據存儲器的擴展 105
5.3.1 2K-RAM晶片6116 105
5.3.2 32K-RAM晶片62256 106
5.5 串列存儲器的擴展 111
5.5.1 PCF8570簡介 111
5.5.2 PCF8570 與單片機的連線 111
5.5.3 程式設計和調試 113
5.5.4 彙編語言程式 113
5.5.5 使用PCF8570的注意事項 118
6.1 通用並行輸出8位單路A/D轉換器ADC0804 119
6.1.1 ADC0804簡介 119
6.1.2 ADC0804與單片機AT89C52的連線 121
6.1.3 程式設計說明及調試 122
6.1.4 ADC0804的彙編語言程式1 123
6.1.5 ADC0804的彙編語言程式2 124
6.1.6 ADC0804的彙編語言程式3 125
6.1.7 使用ADC0804的注意事項 126
6.2 通用串列輸出8位A/D轉換器TLC549 127
6.2.1 TLC549簡介 127
6.2.2 TLC549與單片機AT89C52的連線 128
6.2.3 程式設計說明及調試 128
6.2.4 TLC549的彙編語言程式1 130
6.2.5 TLC549的彙編語言程式2 131
6.2.6 使用TLC549的注意事項 132
6.3 串列輸出8位A/D轉換器ADC0832 132
6.3.1 ADC0832簡介 132
6.3.2 ADC0832與單片機AT89C52的連線 134
6.3.3 程式設計說明及調試 134
6.3.4 ADC0832的彙編語言程式 136
6.3.5 使用ADC0832的注意事項 138
6.4 串列輸出8通道12位A/D轉換器MAX128 138
6.4.1 MAX128簡介 138
6.4.2 MAX128與單片機AT89C52的連線 142
6.4.3 程式設計說明及調試 142
6.4.4 MAX128的彙編語言程式 145
6.4.5 使用MAX128的注意事項 149
第7章 D/A轉換器
7.1 單路串列10位D/A轉換器MAX504 151
7.1.1 MAX504簡介 151
7.1.2 MAX504和單片機AT89C52的連線 154
7.1.3 程式設計說明及調試 155
7.1.4 MAX504彙編語言程式1 157
7.1.5 MAX504彙編語言程式2 159
7.1.6 使用MAX504的注意事項 161
7.2 通用串列輸出10位D/A轉換器TLC5615 161
7.2.1 TLC5615 D/A轉換器簡介 161
7.2.2 TLC5615 D/A轉換器與單片機AT89C52的連線 164
7.2.3 程式設計說明及調試 164
7.2.4 彙編語言程式 166
7.2.5 使用TLC5615的注意事項 166
第8章 時鐘晶片
8.1 不用時鐘晶片構成的時鐘 168
8.1.1 關於日曆時鐘的說明 168
8.1.2 不用時鐘晶片構成時鐘的單片機硬體電路 169
8.1.3 程式設計 169
8.1.4 仿真和調試 174
8.2 低功耗帶RAM實時時鐘晶片DS1302 175
8.2.1 DS1302晶片簡介 175
8.2.2 DS1302與單片機AT89C52的連線 176
8.2.3 讀寫DS1302時鐘區特定單元彙編語言程式 177
8.2.4 讀寫DS1302 RAM的彙編語言程式 180
8.2.5 程式設計說明及調試 183
8.2.6 使用DS1302的注意事項 184
8.3 低功耗、多功能時鐘日曆晶片PCF8563 184
8.3.1 PCF8563簡介 184
8.3.2 PCF8563與單片機的連線 187
8.3.3 彙編語言程式 188
8.3.4 程式設計說明及調試 193
8.3.5 使用PCF8563的注意事項 194
第9章 模擬開關
9.1 四雙向電子模擬開關74HC4066 195
9.1.1 單片機和74HC4066模擬電子開關的連線 195
9.1.2 程式設計 196
9.1.3 仿真和調試 197
9.2 16選1電子模擬開關CD4067 197
9.2.1 單片機AT89C52和CD4067模擬電子開關的連線 197
9.2.2 程式設計 198
9.2.3 仿真和調試 199
9.3.1 MAX335簡介 200
9.3.2 MAX335與單片機AT89C52的連線 202
9.3.3 程式設計說明及調試 204
9.3.4 彙編語言程式 205
9.3.5 使用MAX335的注意事項 207
9.4 串列控制的低電壓8通道多路開關MAX349 208
9.4.1 MAX349簡介 208
9.4.2 MAX349與單片機的連線 209
9.4.3 程式設計說明及調試 211
9.4.4 彙編語言程式 211
9.4.5 使用MAX349的注意事項 212
第10章 單匯流排器件
10.1 序列號或信息按鈕(iButton)DS1990A 213
10.1.1 DS1990A簡介 213
10.1.2 DS1990A與單片機AT89C52的連線 216
10.1.3 程式設計說明及調試 217
10.1.4 彙編語言程式 217
10.1.5 使用DS1990A的注意事項 219
10.2 1024位1-Wire EEPROMDS2431 220
10.2.1 DS2431簡介 220
10.2.2 DS2431與單片機AT89C52的連線 225
10.2.3 程式設計說明及調試 226
10.2.4 彙編語言程式1 227
10.2.5 彙編語言程式2 229
10.2.6 使用DS2431的注意事項 233
第11章 感測器
11.1.1 DS1621簡介 234
11.1.2 DS1621與單片機AT89C52的連線 236
11.1.3 程式設計說明及調試 236
11.1.4 DS1621的彙編語言程式 238
11.1.5 使用DS1621的注意事項 242
11.2 1-Wire數字溫度感測器DS18B20 242
11.2.1 DS18B20簡介 242
11.2.2 DS18B20與單片機AT89C52的連線 248
11.2.3 程式設計說明及調試 249
11.2.4 DS18B20的彙編語言程式 250
11.2.5 使用DS18B20的注意事項 252
12.1 256抽頭低漂移雙數字電位器MAX5413 254
12.1.1 MAX5413簡介 254
12.1.2 MAX5413和單片機AT89C52的連線 256
12.1.3 程式設計說明及調試 256
12.1.4 彙編語言程式MAX5413.ASM 258
12.1.5 使用MAX5413的注意事項 259
12.2 線性32抽頭數字電位器MAX5435 260
12.2.1 MAX5432-MAX5435簡介 260
12.2.2 MAX5434/MAX5435和單片機AT89C52的連線 262
12.2.3 程式設計說明及調試 263
12.2.4 彙編語言程式 263
12.2.5 使用MAX5435的注意事項 268
第13章 I/O擴展器件
13.1.1 8255A簡介 269
13.1.2 8255A和單片機AT89C52的連線 272
13.1.3 程式設計 272
13.1.4 仿真和調試 274
13.2 8位並行輸入、串列輸出的同步移位暫存器74LS166 274
13.2.1 74LS166簡介 274
13.2.2 74LS166與單片機AT89C52的連線 275
13.2.3 程式設計說明及調試 276
13.2.4 彙編語言程式 276
13.2.5 使用74LS166的注意事項 277
13.3 具有三態輸出的8緩衝器和線驅動器74LS244 277
13.3.1 單片機AT89C52和74LS244 的連線 277
13.3.2 程式設計 278
13.3.3 仿真和調試 279
13.4 I2C匯流排16位遠程I/O擴展口晶片PCF8575 279
13.4.1 PCF8575簡介 280
13.4.2 PCF8575 與單片機的連線 282
13.4.3 程式設計說明及調試 282
13.4.4 PCF8575作為輸入口的彙編語言程式 284
13.4.5 PCF8575作為輸出口的彙編語言程式 287
13.4.6 使用PCF8575的注意事項 288
附錄 51單片機指令集
參考文獻