第一篇 基础知识篇 2
第1章 51系列单片机开发的基础知识 2
1.1 51系列单片机的硬件结构 2
1.1.1功能模块 2
1.1.2 CPU 2
1.1.3并行I/O端口 4
1.1.4存储器结构 6
1.1.5定时/计数器 10
1.1.6串行口 14
1.1.7中断系统 20
1.2 51系列单片机的指令系统 22
1.2.1寻址方式 22
1.2.2指令说明 26
1.2.3指令系统表 29
1.3本章总结 32
第2章 C语言程序各语句的用法与意义 33
2.1数据结构 33
2.1.1数据类型 34
2.1.2变量与常量 36
2.1.3数组 40
2.1.4指针 44
2.1.5结构 47
2.1.6共用体 51
2.1.7枚举 52
2.2运算符与表达式 54
2.2.1运算符分类与优先级 54
2.2.2算术运算符与表达式 55
2.2.3关系运算符与表达式 55
2.2.4逻辑运算符与表达式 56
2.2.5位操作运算符与表达式 56
2.2.6赋值运算符与表达式 57
2.3程序结构与函数 58
2.3.1程序结构 58
23.2函数 58
2.4流程控制语句 65
2.4.1选择语句 66
2.4.2循环语句 69
2.4.3转移语句 71
2.5本章总结 73
第3章 Keil 8051 C编译器 74
3.1 Keil编译器简介 74
3.2如何使用Keil开发 75
3.2.1建立工程 76
3.2.2工程的设置 78
3.2.3编译与连接 80
3.3 dScope for Windows的使用 81
3.3.1 如何启动 81
3.3.2如何调试 82
3.3.3调试窗口 83
3.4本章总结 86
第二篇 常用模块设计实例 88
第4章 键盘输入与数码显示 88
4.1键盘输入实例——实现4×4键盘 88
4.1.1实例说明 88
4.1.2设计思路分析 88
4.1.3硬件电路设计 89
4.1.4软件设计 90
4.1.5实例总结 94
4.2单片机实现7段数码管显示 94
4.2.1实例说明 94
4.2.2设计思路分析 95
4.2.3硬件电路设计 97
4.2.4软件设计 100
4.2.5实例总结 104
第5章 液晶显示 105
5.1基于MSC-G 12232的液晶显示 105
5.1.1实例说明 105
5.1.2设计思路分析 109
5.1.3硬件电路设计 109
5.1.4软件设计 110
5.1.5实例总结 113
5.2平板液晶实例——基于MSM6255驱动器的显示 114
5.2.1实例说明 114
5.2.2设计思路分析 114
5.2.3硬件电路设计 116
5.2.4软件设计 120
5.2.5实例总结 131
第6章 打印机输出 133
6.1打印机实例——并口打印驱动 133
6.1.1实例说明 133
6.1.2设计思路分析 133
6.1.3硬件电路设计 138
6.1.4软件设计 139
6.1.5实例总结 144
第7章 A/D及D/A转换 145
7.1 ADC0801与TLC1543的A/D转换 145
7.1.1实例说明 145
7.1.2设计思路分析 146
7.1.3硬件电路设计 152
7.1.4软件设计 154
7.1.5实例总结 158
7.2基于MS5534B的数字气压计设计 159
7.2.1实例说明 159
7.2.2设计思路分析 159
7.2.3硬件电路设计 162
7.2.4软件设计 163
7.2.5气压高度计 170
7.2.6实例总结 171
7.3基于DS18B20的数字温度计设计 171
7.3.1实例说明 172
7.3.2设计思路分析 172
7.3.3硬件电路设计 173
7.3.4软件设计 178
7.3.5实例总结 183
7.4基于TLC5617的D/A转换 183
7.4.1实例说明 184
7.4.2设计思路分析 184
7.4.3硬件电路设计 185
7.4.4软件设计 188
7.4.5实例总结 192
第8章 存储模块 193
8.1基于EEPROM AT24C64的数据存储 193
8.1.1实例说明 193
8.1.2设计思路分析 198
8.1.3硬件电路设计 198
8.1.4软件设计 199
8.1.5实例总结 208
8.2基于NOR FLASH AM29LV320的数据存储 209
8.2.1实例说明 209
8.2.2设计思路分析 209
8.2.3硬件电路设计 212
8.2.4软件设计 214
8.2.5实例总结 239
第9章 定时器、复位与中断 240
9.1 RTC设计实例——基于SD2000的实时日历时钟系统设计 240
9.1.1实例说明 240
9.1.2设计思路分析 242
9.1.3硬件电路设计 244
9.1.4软件设计 245
9.1.5实例总结 257
9.2看门狗模块设计实例 257
9.2.1实例说明 257
9.2.2设计思路分析 258
9.2.3硬件电路设计 260
9.2.4软件设计 261
9.2.5实例总结 264
第10章 单片机与CPLD 265
10.1基于XC95144XL的地址译码与端口扩展 265
10.1.1实例说明 265
10.1.2设计思路分析 266
10.1.3硬件电路设计 267
10.1.4软件设计 272
10.1.5实例总结 277
10.2基于XC95144XL的中断共享 277
10.2.1实例说明 277
10.2.2设计思路分析 278
10.2.3硬件电路设计 279
10.2.4软件设计 281
10.2.5实例总结 285
10.3基于XC95144的串口扩展 285
10.3.1实例说明 285
10.3.2设计思路分析 286
10.3.3硬件电路设计 292
10.3.4软件设计 294
10.3.5实例总结 298
第11章 信号与算法实现 300
11.1单片机实现CRC算法 300
11.1.1实例说明 300
11.1.2 CRC原理 301
11.1.3设计分析思路 302
11.1.4软件设计 306
11.1.5实例总结 310
11.2单片机实现智能信号发生器 311
11.2.1实例说明 311
11.2.2设计思路分析 312
11.2.3硬件电路设计 314
11.2.4软件设计 317
11.2.5实例总结 319
11.3 A/D转换后的软件滤波实现 319
11.3.1实例说明 320
11.3.2设计思路分析 320
11.3.3软件设计 322
11.3.4实例总结 327
第12章 步进电机 328
12.1单片机控制的步进电机系统 328
12.1.1实例说明 328
12.1.2设计思路分析 328
12.1.3硬件电路设计 333
12.1.4软件设计 337
12.1.5实例总结 340
第13章 网络传输与通信 342
13.1串行数据通信模块设计实例 342
13.1.1实例说明 342
13.1.2设计思路分析 342
13.1.3硬件电路设计 345
13.1.4软件设计 347
13.1.5实例总结 354
13.2并行数据通信模块设计实例 354
13.2.1实例说明 355
13.2.2设计思路分析 355
13.2.3硬件电路设计 356
13.2.4软件设计 357
13.2.5实例总结 364
13.3短距离无线传输模块设计实例 364
13.3.1实例说明 365
13.3.2设计思路分析 365
13.3.3硬件电路设计 367
13.3.4软件设计 373
13.3.5实例总结 379
第三篇 综合应用系统设计实例 382
第14章 多功能显示屏应用系统设计 382
14.1实例说明 382
14.2设计思路分析 382
14.3硬件电路设计 383
14.4软件设计 391
14.4.1消息的发送和接收 391
14.4.2温度传感器和Flash芯片的操作 392
14.4.3显示和画图的函数定义 400
14.4.4中断的函数定义 409
14.4.5定时器的检测以及发送 410
14.4.6下载协议和信息传输 413
14.4.7整个程序的调度 417
14.5实例总结 419
第15章 家用温湿度测量播报系统设计 420
15.1实例说明 420
15.2设计思路分析 421
15.3硬件电路设计 428
15.4软件设计 429
15.4.1软件流程 429
15.4.2主要代码与注释 429
15.5实例总结 439
第16章 基于单片机的电力监测系统设计 440
16.1实例说明 440
16.1.1系统功能和技术指标 440
16.1.2系统面板介绍和使用 441
16.2设计思路分析 442
16.2.1获取二次回路状态信息 442
16.2.2系统总体结构 442
16.3硬件设计 443
16.3.1监测仪的供电 443
16.3.2信号采集模块 445
16.3.3单片机模块 447
16.3.4键盘电路 448
16.3.5日历时钟芯片 448
16.3.6液晶显示模块LCD 451
16.3.7信息的存储 459
16.4软件设计 461
16.4.1软件设计流程 461
16.4.2主要代码与注释 462
16.5实例总结 475
附录A 汇编语言与C语言的混合编程 476