上篇 基础篇 1
第1章 设计单片机前的准备 3
1.1 51单片机核心外围电路 3
1.2 基本的芯片和分立器件 4
1.2.1 电阻 4
1.2.2 电容 5
1.2.3 三极管 5
1.2.4 光耦 6
1.2.5 74系列芯片 6
1.2.6 CD4000系列芯片 6
1.2.7 继电器 6
1.2.8 电源 7
2.2 软件原则 8
2.2.1 提高C语言编程代码的效率 8
2.2.2 尽量减少程序中的bug 8
2.1 总的原则 8
第2章 单片机开发中应该掌握的原则 8
2.3 硬件原则 9
2.4 单片机的抗干扰性问题 9
2.4.1 干扰的分类 10
2.4.2 抗干扰主要方法 10
2.5 测试单片机系统的可靠性 11
3.1 安装Keil C51软件 12
第3章 Keil C51概述 12
3.2 使用Keil C51软件 16
3.3 第1个程序“Hellow C51” 18
第4章 Keil C51编译 20
4.1 Keil C51的编译环境μVision2 20
4.1.1 μVision2窗口与菜单 22
4.1.2 编译检查工具PC-Lint 27
4.1.3 开发工具选项 28
4.1.4 调试工具选项 34
4.2 Keil C51编译器的控制指令 34
4.3 编译过程 35
4.3.1 A51宏汇编器 36
4.3.2 映像文件 37
4.3.3 LIB51库管理器 37
4.3.4 OC51分段目标文件转换器 38
4.3.5 OH51目标代码到HEX文件的转换器 38
4.4 代码优化 38
4.4.1 代码优化 38
4.4.2 对8051的特殊优化 38
4.4.3 代码生成选项 39
4.5 混合编译 39
4.5.1 项目目标和文件组 39
4.5.2 浏览项目窗口中的文件和文件组的属性 40
4.5.3 用户上电初始化程序STARTUP.A51简介 40
4.5.4 与汇编语言的接口 43
4.6.2 资源浏览器 49
4.6.1 多个文件中查找 49
4.5.5 和PL/M-51的接口 49
4.6 μVision2的其他功能 49
4.7 出错信息 50
第5章 Keil C51的调试与仿真 52
5.1 μVision2调试器的几项功能 52
5.1.1 执行代码 52
5.1.2 完备的分析器 53
5.1.3 代码覆盖分析 53
5.2.1 简单断点 54
5.2 断点 54
5.2.2 复杂断点 55
5.2.3 观察断点 55
5.3 仿真 56
5.3.1 A/D仿真 56
5.3.2 D/A仿真 57
5.3.3 FLASH/E2PROM仿真 58
5.3.4 中断仿真 63
5.3.6 I/O端口输入/输出仿真 64
5.3.5 可编程计数器阵列PCA/CAPCOM仿真 64
5.3.7 低功耗模式仿真 65
5.3.8 串行口的输入/输出仿真 66
5.3.9 定时器/计数器仿真 66
5.3.10 看门狗仿真 67
5.4 μVision2调试命令 68
5.5 RTX51实时操作系统 70
5.5.1 概述 70
5.5.2 RTX51 Tiny的例程TRAFFIC.C 75
下篇 实战应用篇 85
第6章 基础编程与技巧应用实例 87
程序一 I/O口操作程序 87
程序二 I/O位操作程序 87
程序三 定时器0程序 88
程序四 定时器1程序 88
程序五 读写操作程序 89
程序六 软件看门狗程序 90
程序七 软件狗 91
程序八 计数器0程序 93
程序九 外部中断0程序 94
程序十 软件A/D 94
程序十一 ADC程序 95
程序十二 一个简单的VB串口发送程序 97
程序十三 通用93c06~93c86系列驱动程序 98
程序十四 P89CXX编程器控制CPU接收和控制程序 105
程序十五 PS7219驱动代码 111
程序十六 20045读写程序 113
程序十七 24c01-24c16读写驱动程序 116
程序十八 93C46读写程序 118
程序十九 软件陷阱 122
程序二十 串口中断服务函数集 123
程序二十一 在C51中写二进制的方法 128
程序二十二 Keil C51直接嵌入汇编的方法 129
程序二十三 常用的几种码制转换BCD,HEX,BIN 130
程序二十四 十六进制与十进制互换程序 131
程序二十五 AVR单片机一个简单的通信程序 132
第7章 专项应用实例 134
程序二十六 I2C总线驱动程序 134
程序二十七 实时时钟芯片DS1302的C51程序例子 139
程序二十八 DS1820单芯片温度测量 144
程序二十九 用计算机并口模拟SPI通信的C源程序 146
程序三十 在PC上用并行口模拟I2C总线的C源代码 148
程序三十一 串行口综合应用 151
程序三十二 16×2字符液晶屏驱动演示程序 157
程序三十三 12232点阵液晶基本驱动程序 160
程序三十四 12864汉字液晶显示驱动程序 164
程序三十五 与液晶模块T6963C连接代码 169
程序三十六 1330液晶驱动 179
程序三十七 PC键代码 186
程序三十八 拼音输入法模块 194
程序三十九 键盘输入法设计草案 214
程序四十 智能化家电控制 263
第8章 综合应用实例 283
程序四十一 AT89CX051的AD代码 283
程序四十二 飞机游戏 288
程序四十三 蛇游戏代码 305
程序四十四 一个多级菜单的例子 323
附录 385
附录A MCS-51单片机定点运算子程序库 387
附录B MCS-51浮点运算子程序库 411
附录C 单片机C51编程几个有用的模块 446
附录D C51库函数 457
CTYPE.H 457
MATH.H 458
STDIO.H 459
STDLIB.H 459
STRING.H 460