1 单片机原理及单片机系统的开发方法 1
1.1 计算机系统的组成 1
1.1.1 计算机的硬件系统 1
1.1.2 CPU、微处理器及单片机 2
1.1.3 指令系统与寻址方式 3
1.2 嵌入式系统与单片机系统 5
1.2.1 嵌入式系统 5
1.2.2 单片机系统 6
习题与思考题 16
2 51内核单片机的应用基础 18
2.1 MCS-51单片机简介 18
2.2 MCS-51单片机的组成 19
2.3 MCS-51单片机的存储器体系结构与寻址方式 22
2.3.1 MCS-51单片机的存储器体系结构 22
2.3.2 MCS-51单片机的寻址方式 24
2.4 MCS-51单片机的指令系统 25
2.5 C8051F单片机简介 26
2.5.1 C8051F单片机的主要特点 26
2.5.2 C8051F单片机的特殊功能寄存器SFR 29
2.5.3 C8051F单片机的外部数据存储器 30
2.5.4 C8051F单片机的外部数据存储器接口 31
2.5.5 C8051F单片机的程序存储器 32
2.5.6 C8051F单片机的硬件配置向导(Configuration Wizard) 35
2.6 51内核单片机常用的编程语言和方法 37
2.6.1 51内核单片机常用的编程语言 37
2.6.2 51内核单片机常用的编程方法 37
2.7 监视定时器 39
习题与思考题 40
3 C语言开发51内核单片机的范例 42
3.1 通过UART输出“Hello World!” 43
3.1.1 程序解析 44
3.1.2 程序的编译、链接与运行 45
3.1.3 程序在μVision4集成开发环境下的仿真 47
3.2 Keil Software公司的单片机开发工具简介 49
3.2.1 Keil Software公司的51内核单片机开发工具 50
3.2.2 μVision4集成开发环境建立 51
3.2.3 μVision4集成开发环境的使用方法 52
3.2.4 μVision4集成开发环境的配置向导 61
3.2.5 利用μVision4集成开发环境开发C8051F单片机 64
习题与思考题 66
4 51内核单片机通用I/O端口的应用编程 68
4.1 利用单片机通用I/O端口控制LED 68
4.1.1 背景知识——MCS-51单片机通用I/O端口的特性 69
4.1.2 背景知识——μVision4集成开发环境的逻辑分析仪 70
4.1.3 程序解析 74
4.1.4 程序的调试 75
4.2 利用单片机通用I/O端口的推挽输出方式控制LED 77
4.2.1 背景知识——C8051F320单片机通用I/O端口的特性 79
4.2.2 程序解析 81
4.2.3 程序的调试 82
4.3 利用单片机通用I/O端口控制电控锁 82
4.3.1 背景知识——μVision4集成开发环境的调试函数 85
4.3.2 程序解析 85
4.3.3 程序的调试 86
4.4 利用单片机通用输入/输出接口扩展并行输出接口 89
4.4.1 背景知识——单片机输入/输出接口的扩展原理 89
4.4.2 程序解析 92
4.4.3 程序的调试 93
4.5 利用单片机通用输入/输出接口扩展并行输入接口 94
4.5.1 程序解析 95
4.5.2 程序的调试 96
习题与思考题 97
5 51内核单片机中断系统的应用编程 99
5.1 MCS-51单片机外部中断的应用编程 100
5.1.1 背景知识——MCS-51单片机的中断系统 102
5.1.2 程序解析 106
5.1.3 程序的调试 107
5.2 C8051F单片机的外部中断 108
5.2.1 独立于交叉开关的外部中断的应用编程 108
5.2.2 程序解析 111
5.2.3 程序的调试 111
5.2.4 通过交叉开关配置的外部中断的应用编程 112
5.2.5 程序解析 117
5.2.6 程序的调试 117
习题与思考题 118
6 51内核单片机定时器/计数器的应用编程 120
6.1 MCS-51单片机定时器/计数器0实现的定时控制 120
6.1.1 背景知识——MCS-51单片机定时器/计时器0的特性 121
6.1.2 程序解析 124
6.1.3 程序的调试 125
6.2 C8051F单片机定时器/计数器0实现的定时控制 126
6.2.1 背景知识——C8051F单片机定时器/计时器0的特性 126
6.2.2 程序解析 129
6.2.3 程序的调试 129
6.3 MCS-51单片机定时器/计数器2实现的定时控制 130
6.3.1 背景知识——MCS-51单片机定时器/计时器2的特性 130
6.3.2 程序解析 132
6.3.3 程序的调试 133
6.4 C8051F单片机定时器/计数器2实现的定时控制 134
6.4.1 背景知识——C8051F单片机定时器/计时器2的特性 134
6.4.2 程序解析 136
6.4.3 程序的调试 137
6.5 MCS-51单片机定时器/计数器0实现的信号分频 138
6.5.1 程序解析 139
6.5.2 程序的调试 139
6.6 C8051F单片机定时器/计数器2实现的信号分频 140
6.6.1 利用硬件配置向导获取C8051F120单片机相关程序代码 141
6.6.2 程序解析 142
6.6.3 程序的调试 143
6.7 51内核单片机定时器/计数器实现的频率测量 144
6.7.1 背景知识——频率测量和测量周期的原理 145
6.7.2 程序解析 146
6.7.3 程序的调试 147
6.8 51内核单片机定时器/计数器实现的周期测量 147
6.8.1 MCS-51单片机定时器/计数器0完成周期测量 147
6.8.2 MCS-51单片机定时器/计数器2完成周期测量 150
6.9 MCS-51单片机定时器/计数器的硬件配置向导 152
6.9.1 程序解析 156
6.9.2 程序的调试 157
习题与思考题 160
7 C8051F单片机时钟系统的应用编程 162
7.1 C8051F320单片机时钟系统的应用编程 162
7.1.1 C8051F320单片机内部振荡器的应用编程 162
7.1.2 C8051F320单片机时钟乘法器的应用编程 165
7.2 C8051F120单片机时钟系统的应用编程 169
7.2.1 C8051F120单片机内部振荡器的应用编程 169
7.2.2 C8051F120单片机锁相环的应用编程(一) 172
7.2.3 C8051F120单片机锁相环的应用编程(二) 177
习题与思考题 180
8 C8051F单片机WDT的应用编程 182
8.1 C8051F320单片机WDT的应用编程 182
8.1.1 背景知识——C8051F单片机PCA的特性 183
8.1.2 背景知识——C8051F320单片机WDT的特性 187
8.1.3 程序解析和调试 189
8.2 C8051F120单片机WDT的应用编程 190
8.2.1 背景知识——C8051F120单片机WDT的特性 191
8.2.2 程序解析和调试 192
习题与思考题 192
9 51内核单片机UART的应用编程 193
9.1 MCS-51单片机UART的应用编程 193
9.1.1 背景知识——MCS-51单片机UART的特性 194
9.1.2 程序解析 201
9.1.3 程序的调试 202
9.2 C8051F320单片机UART的应用编程 202
9.2.1 背景知识——C8051F320单片机UART的特性 203
9.2.2 利用硬件配置向导获取相关程序代码 205
9.2.3 程序解析 206
9.2.4 程序的调试 207
9.3 C8051F120单片机UART的应用编程 208
9.3.1 背景知识——C8051F120单片机UART的特性 210
9.3.2 利用硬件配置向导获取相关程序代码 214
9.3.3 程序解析 217
9.3.4 程序的调试 218
9.4 MCS-51单片机UART的硬件配置向导 219
9.4.1 程序解析 222
9.4.2 程序的调试 222
9.5 MCS-51单片机的硬件配置向导 223
习题与思考题 230
10 C8051F单片机SMBus的应用编程 232
10.1 查询方式实现的SMBus应用编程 233
10.1.1 背景知识——C8051F320单片机SMBus的特性 235
10.1.2 背景知识——FM24CL64的特性 244
10.1.3 背景知识——AT24C0×B的特性 247
10.1.4 背景知识——C8051F单片机的调试接口及电压调整器 250
10.1.5 利用硬件配置向导获取C8051F320单片机相关程序代码 251
10.1.6 程序解析 253
10.1.7 程序的调试 255
10.2 部分中断方式实现的SMBus应用编程 257
10.2.1 程序解析 261
10.2.2 程序的调试 263
习题与思考题 267
11 C8051F单片机SPI0的应用编程 268
11.1 背景知识——C8051F320单片机SPI0的特性 274
11.1.1 四线SPI0的引脚说明 274
11.1.2 SPI0中断源和时序特性 275
11.1.3 SPI0主方式 275
11.1.4 SPI0从方式 276
11.1.5 SPI0的特殊功能寄存器 277
11.2 背景知识——AT45DB161B的特性 278
11.2.1 AT45DB××××简介 278
11.2.2 AT45DB161B简介 279
11.2.3 AT45DB161B的读操作 283
11.2.4 AT45DB161B的写和擦除操作 283
11.2.5 AT45DB161B的命令格式 284
11.3 利用硬件配置向导获取C8051F320单片机相关程序代码 284
11.4 程序解析 287
11.5 程序的调试 288
习题与思考题 289
12 软件实现UART、I2C和SPI的应用编程 291
12.1 定时器实现软件UART 291
12.1.1 实现原理 291
12.1.2 程序解析 294
12.1.3 程序的调试 294
12.2 定时器实现具有波特率自动识别功能的软件UART 296
12.2.1 实现原理 296
12.2.2 程序解析 299
12.2.3 程序的调试 300
12.3 I2C的软件实现 302
12.3.1 实现原理 302
12.3.2 程序解析与调试 305
12.4 SPI的软件实现 306
12.4.1 实现原理 306
12.4.2 程序解析与调试 311
习题与思考题 311
13 C8051F320单片机FLASH的应用编程 314
13.1 C8051F320单片机FLASH的基本特性 314
13.2 C8051F320单片机FLASH的加密操作 315
13.2.1 背景知识——C8051F320单片机FLASH的写操作 315
13.2.2 程序的调试 317
13.3 C8051F320单片机FLASH的数据存储操作 319
13.3.1 程序解析 320
13.3.2 程序的调试 320
习题与思考题 323
14 C8051F单片机模拟功能模块的应用编程 324
14.1 C8051F320单片机的ADC的应用编程 324
14.1.1 背景知识——光发送和接收器件 328
14.1.2 背景知识——C8051F320单片机的ADC0 330
14.1.3 背景知识——C8051F320单片机的基准电压 335
14.1.4 利用硬件配置向导获取C8051F320单片机相关程序代码 336
14.1.5 程序解析 336
14.1.6 程序的调试 339
14.2 C8051F410单片机的DAC的应用编程 339
14.2.1 背景知识——C8051F410单片机的DAC 341
14.2.2 背景知识——C8051F410单片机的时钟系统 343
14.2.3 利用硬件配置向导获取C8051F410单片机相关程序代码 346
14.2.4 程序解析 346
14.2.5 程序的调试 348
14.3 C8051F120单片机的DAC的应用编程 350
14.3.1 背景知识——C8051F120单片机的DAC 352
14.3.2 背景知识——C8051F120单片机的基准电压 354
14.3.3 利用硬件配置向导获取C8051F120单片机相关程序代码 355
14.3.4 程序解析 355
14.3.5 程序的调试 357
14.4 C8051F410单片机的电压比较器的应用编程 358
14.4.1 背景知识——C8051F410单片机的电压比较器 359
14.4.2 利用硬件配置向导获取C8051F410单片机相关程序代码 362
14.4.3 程序解析 362
14.4.4 程序的调试 363
习题与思考题 364
15 单片机系统常用显示设备的应用编程 366
15.1 7段LED数码管的应用编程 366
15.1.1 程序解析 370
15.1.2 程序的调试 371
15.2 LED点阵屏的应用编程 371
15.2.1 背景知识——LED屏的基本原理 376
15.2.2 背景知识——专用汉字库的建立 380
15.2.3 程序解析 381
15.2.4 程序的调试 382
15.3 单色LCM的应用编程 382
15.3.1 并行总线接口的单色LCM的应用编程 382
15.3.2 串行接口的单色LCM的应用编程 393
15.4 并行总线接口的彩色LCM的应用编程 397
15.4.1 背景知识——YM280T-017AT彩色LCM的基本原理 410
15.4.2 程序解析 414
15.4.3 程序的调试 415
习题与思考题 416
16 单片机系统常用输入设备的应用编程 417
16.1 矩阵式键盘的应用编程 417
16.1.1 背景知识——键盘设计的主要问题 419
16.1.2 程序解析 420
16.1.3 程序的调试 421
16.2 串行移位寄存器扩展键盘的应用编程 422
16.2.1 背景知识——串行控制的并行输入端口的扩展 425
16.2.2 程序解析 427
16.2.3 程序的调试 428
16.3 微机标准键盘的应用编程 428
16.3.1 背景知识——微机键盘的主要特性 443
16.3.2 程序解析及调试 449
16.4 四线电阻式触摸屏的应用编程 451
16.4.1 背景知识——触摸屏的主要特性 456
16.4.2 背景知识——单片机系统常用的通信接口 460
16.4.3 程序解析及调试 466
习题与思考题 468
17 C8051F单片机USB接口和RS_485接口的应用编程 469
17.1 背景知识——C8051F320单片机的USB接口 480
17.2 背景知识——USBXpress开发套件 480
17.3 背景知识——只读型感应卡读卡器 481
17.4 程序解析 482
17.5 程序的调试 484
习题与思考题 485
参考文献 486