第1章 單片機的C語言概述 1
1.1 C語言與51單片機編程 1
1.1.1 單片機的C語言的特點 1
1.1.2 單片機的C語言和標準C語言的
比較 2
1.1.3 單片機的C語言與匯編語言的
優(yōu)勢對比 2
1.2 C51程序 6
1.2.1 C51的程序結構 6
1.2.2 C51編程規(guī)范及注意事項 8
1.2.3 C51的標識符與關鍵字 9
本章小結 11
習題 12
第2章 51系列單片機硬件及C51編程基礎 13
2.1 51單片機的總體結構 13
2.1.1 內部結構 13
2.1.2 外部引腳說明 15
2.1.3 CPU的時序周期 18
2.2 51單片機的存儲器 18
2.2.1 程序存儲器 19
2.2.2 數據存儲器 19
2.2.3 特殊功能寄存器 21
2.3 C51語言的數據 24
2.3.1 數據類型 24
2.3.2 常量與變量 25
2.3.3 數據存儲類型 27
2.4 C51語言對單片機主要資源的控制 29
2.4.1 特殊功能寄存器的C51語言定義 29
2.4.2 絕對地址的訪問 31
2.4.3 位變量的C51語言定義 32
2.5 C51語言的基本運算與流程控制
語句 33
2.5.1 基本運算 33
2.5.2 分支判斷――if、switch語句 34
2.5.3 循環(huán)控制――while、for語句 37
2.5.4 break、continue、return和goto
語句 39
2.6 C51語言的數組、指針、函數 41
2.6.1 數組 41
2.6.2 指針 42
2.6.3 函數 44
2.7 C51語言的預處理命令及匯編語句的
嵌入 47
2.7.1 文件包含、宏定義、條件編譯 47
2.7.2 C51中匯編語句的嵌入 49
本章小結 49
習題 50
第3章 51系列單片機P0~P3口輸入/輸出的
C51編程 51
3.1 51單片機的P0~P3口基礎知識 51
3.1.1 P0~P3口結構 51
3.1.2 P0~P3口特點總結 52
3.2 輸出操作 53
3.2.1 基本輸出操作舉例――字節(jié)輸出與
位輸出 53
3.2.2 擴展輸出操作舉例――流水燈與
霹靂燈 54
3.2.3 擴展輸出操作舉例――8段LED
數碼顯示器 56
3.3 輸入操作 60
3.3.1 閘刀型開關輸入信號 61
3.3.2 單個按鈕型開關輸入信號 62
3.3.3 多個按鈕型開關輸入信號――
鍵盤 64
3.4 實驗 70
實驗1 閘刀型開關輸入/8段LED靜態(tài)
顯示輸出 70
實驗2 按鈕型開關輸入/8段LED靜態(tài)
顯示輸出 70
本章小結 72
習題 73
第4章 51單片機中斷系統(tǒng)的C51編程 74
4.1 中斷系統(tǒng)結構與中斷控制 74
4.1.1 中斷系統(tǒng)結構 74
4.1.2 特殊功能寄存器 75
4.2 中斷優(yōu)先級與中斷函數 76
4.2.1 中斷優(yōu)先級 76
4.2.2 中斷函數的結構形式 78
4.3 外部中斷源的C51編程 78
4.3.1 外部中斷源初始化 78
4.3.2 編程示例 78
4.4 實驗 83
實驗1 按鈕型開關模擬外部中斷實驗 83
實驗2 外部中斷優(yōu)先級實驗 84
本章小結 86
習題 86
第5章 51單片機的定時器/計數器的
C51編程 87
5.1 51單片機的定時器/計數器基本
知識 87
5.1.1 結構 87
5.1.2 特殊功能寄存器 87
5.2 定時器/計數器工作模式 89
5.3 定時器/計數器的應用舉例 92
5.3.1 定時器/計數器的初始化 92
5.3.2 應用舉例 94
5.4 實驗 99
實驗1 按鈕型開關模擬計數器實驗 99
實驗2 定時器實驗 100
本章小結 101
習題 102
第6章 51單片機串行口的C51編程 103
6.1 51單片機串行口基礎知識 103
6.1.1 串行口的結構原理 103
6.1.2 串行口的應用控制 104
6.2 51單片機串行口的工作方式 105
6.2.1 串行口工作方式0 105
6.2.2 串行口工作方式1 109
6.2.3 串行口工作方式2 113
6.2.4 串行口工作方式3 116
6.3 51單片機串行口的應用舉例 119
6.3.1 串行口編程基礎 119
6.3.2 串行口應用舉例 121
6.4 實驗 125
實驗1 串行口控制的流水燈實驗 125
實驗2 串行口控制的8段LED
顯示器 125
本章小結 127
習題 127
第7章 51單片機并行擴展的C51編程 128
7.1 51單片機并行I/O口擴展基礎 128
7.1.1 系統(tǒng)擴展總線結構圖 128
7.1.2 數據線、控制線的連接 129
7.1.3 譯碼信號的形成―系統(tǒng)擴展的
尋址 129
7.2 可編程的I/O接口芯片8255A的
C51編程 132
7.2.1 8255A簡介 132
7.2.2 利用8255A擴展并行的輸入/輸出
口示例 136
7.2.3 利用Intel8255A作為8段LED
靜態(tài)顯示輸出口的示例 136
7.2.4 利用Intel8255A作為8段LED
動態(tài)顯示輸出口的示例 138
7.3 D/A與A/D轉換器的C51編程 140
7.3.1 D/A轉換器基礎 140
7.3.2 8位并行D/A轉換器DAC0832 141
7.3.3 A/D轉換器基礎 147
7.3.4 8位并行A/D轉換器ADC0809 148
7.4 液晶顯示器的C51編程 151
7.4.1 字符型LCD1602液晶顯示模塊
的C51編程 152
7.4.2 點陣式帶漢字庫12864液晶顯示
模塊接口技術 156
7.5 實驗 165
實驗1 DAC0832單緩沖實驗 165
實驗2 ADC0809實驗 165
本章小結 168
習題 168
第8章 51單片機外部串行擴展的
C51編程 170
8.1 I2C總線器件的C51編程 170
8.1.1 認識I2C總線接口 170
8.1.2 I2C總線典型器件AT24C02
應用舉例 172
8.2 SPI總線器件的C51編程 177
8.2.1 認識SPI總線 178
8.2.2 SPI總線典型器件X25045應用
舉例 179
8.3 單總線(1-wire)的C51編程 183
8.3.1 認識單總線(1-wire) 183
8.3.2 單總線典型器件DS18B20應用
舉例 184
8.4 串行A/D接口芯片TLC2543的C51編程 190
本章小結 193
習題 194
第9章 Vision2與Proteus使用基礎 195
9.1 Vision2集成開發(fā)環(huán)境 195
9.1.1 File、Edit和View菜單 196
9.1.2 Project、Debug和Flash菜單 198
9.1.3 Peripherals、Tools和Window
菜單 199
9.2 用Vision2建立與調試工程 200
9.2.1 工程創(chuàng)建、設置、編譯與鏈接 200
9.2.2 用Vision2調試工程 204
9.2.3 C51程序調試舉例說明――
HELLO.C 208
9.2.4 Keil C51的調試技巧及舉例 210
9.3 Proteus快速入門 213
9.3.1 集成Proteus ISIS環(huán)境 213
9.3.2 電路原理圖設計 218
9.4 Proteus仿真工具介紹 223
9.4.1 探針 223
9.4.2 虛擬儀器 223
9.4.3 信號發(fā)生器 224
9.4.4 仿真圖表 224
9.5 Proteus軟件中的C51程序運行與
調試 225
9.5.1 驅動的安裝 225
9.5.2 Keil和Proteus的配置 225
9.5.3 Keil和Proteus的調試過程 226
本章小結 226
習題 227
附錄A ASCII碼字符表 228
附錄B 單片機應用資料的網上查詢方法 229
附錄C Proteus常用分離器件名稱 230
參考文獻 231