上篇
第1章 Keil C51语法 1
1.1 数据类型 1
1.2 存储种类及存储区 3
1.2.1 整型常量 3
1.2.2 字符型常量 4
1.2.3 字符串常量 4
1.2.4 位标量 4
1.3 变量 5
1.3.1 变量的定义 5
1.3.2 存储器类型 5
1.3.3 存储器模式 6
1.3.4 特殊功能寄存器(SFR) 7
1.3.5 重新定义数据类型 8
1.4 数组 9
1.5 指针 10
1.6 结构 16
1.7 联合 18
1.8 枚举 19
第2章 Keil C51程序设计 22
2.1 预处理 22
2.2 运算符与表达式 23
2.3 控制流语句 28
2.3.1 条件语句 28
2.3.2 while 循环 29
2.3.3 do-while循环 29
2.3.4 for 循环 30
2.3.5 goto 语句 31
2.3.6 switch语句 32
2.3.7 Break语句和continue语句 33
2.3.8 返回语句return 33
2.4 函数 35
2.4.1 定义函数 36
2.4.2 调用函数 37
2.4.3 中断服务函数 38
2.4.4 函数的递归调用与再入函数 41
2.5 汇编语言和C语言混合编程 42
2.6 C51使用规范 47
2.6.1 注释 47
2.6.2 命名 48
2.6.3 编辑风格 48
第3章 Keil C51集成开发环境 49
3.1 Keil C51安装 49
3.2 μVision3集成开发环境 53
3.3 μVision3的栏目和窗口 54
3.4 创建项目 55
3.5 简单的程序调试 60
3.6 含有多个文件的项目 63
3.7 代码优化 64
3.8 技巧和窍门 68
3.9 Keil C编译器常见警告与错误信息的解决方法 69
第4章 单片机内部资源及C语言开发 73
4.1 中断系统 73
4.1.1 中断系统介绍 73
4.1.2 C51编写中断服务程序 77
4.1.3 共用中断 80
4.1.4 外部中断的扩充 81
4.2 定时器/计数器 82
4.2.1 定时器/计数器结构 82
4.2.2 定时器/计数器控制寄存器 83
4.2.3 定时器/计数器工作模式 84
4.2.4 定时器/计数器的初始化 85
4.2.5 定时器/计数器综合应用 86
4.3 并行I/O口 87
4.3.1 并行I/O口简析 87
4.3.2 编程实例 92
4.3.3 LED显示电路 96
4.3.4 键盘控制电路 107
4.4 串行口及其通信 114
4.4.1 8051单片机的串行口结构 114
4.4.2 串行口应用 117
第5章 单片机资源扩展及C语言开发 120
5.1 可编程外围并行接口8255A 120
5.1.1 8255简介 120
5.1.2 程序设计实例 127
5.2 三线制Microware串行总线E2PROM的应用 131
5.2.1 三线制Microware串行总线简介 131
5.2.2 三线制Microware总线的E2PROM 131
5.2.3 在51单片机上的应用 133
5.2.4 程序设计 133
5.3 键盘与LED控制芯片HD7279A 136
5.3.1 简介 136
5.3.2 控制指令 138
5.3.3 时序 143
5.3.4 HD7279A与AT89S51的接口以及程序设计 144
下篇
第6章 液晶显示LCD 153
6.1 液晶显示简介 153
6.2 内置HD61202控制驱动器图形液晶显示模块 154
6.2.1 液晶显示模块的电路特性 154
6.2.2 液晶显示模块的软件特性 156
6.2.3 液晶显示模块12864和19264的应用 158
第7章 虚拟I2C接口技术 183
7.1 I2C总线简介 183
7.1.1 I2C总线的基本结构 183
7.1.2 双向传输的接口特性 184
7.1.3 I2C总线上的时钟信号 184
7.1.4 数据的传送 184
7.1.5 总线竞争的仲裁 185
7.1.6 I2C总线接口器件 186
7.2 模拟I2C总线的C51程序 187
7.3 I2C总线在IC卡设计中的应用 193
7.3.1 简介 193
7.3.2 硬件特性 193
7.3.3 AT24C01与单片机接口 194
7.3.4 程序设计 194
第8章 红外通信接口 200
8.1 红外遥控器基本原理 200
8.2 P87LPC762单片机简介 201
8.3 NB9148简介 201
8.4 接收处理电路 206
8.5 程序设计 208
第9章 语音芯片ISD4004及其应用 215
9.1 ISD4004简介 215
9.2 引脚功能描述 215
9.3 工作原理与功能特性 217
9.4 典型应用 219
第10章 时钟芯片 225
10.1 时钟芯片DS1302 225
10.1.1 DS1302简介 225
10.1.2 结构与工作原理 226
10.1.3 DS1302与89C51的连接电路 230
10.1.4 程序设计 230
10.2 时钟/日历芯片PCF8563 239
10.2.1 PCF8563简介 239
10.2.2 PCF8563与I2C总线 240
10.2.3 应用概述 240
10.2.4 程序设计 241
第11章 数据采集 246
11.1 A/D转换器ADS7804 246
11.1.1 ADS7804简介 246
11.1.2 ADS7804与51单片机的接口 248
11.1.3 C51语言程序设计 249
11.2 MAX1247、MAX525与单片机接口 250
11.2.1 MAX1247和MAX525简介 250
11.2.2 工作原理 251
11.2.3 硬件接口及软件编程实例 255
11.2.4 其他同类产品的应用 259
第12章 单片机通信 265
12.1 单片机双机通信 265
12.1.1 双机通信原理 265
12.1.2 双机通信协议 266
12.1.3 双机通信程序设计 266
12.2 单片机多机通信 269
12.2.1 多机通信原理 269
12.2.2 程序设计 269
第13章 单片机与PC通信 277
13.1 RS-232C介绍与PC硬件 277
13.2 通信程序设计 283
第14章 51单片机系统应用实例 295
14.1 语音数据采集、回放和串行数据传输系统 295
14.1.1 系统功能简介 295
14.1.2 DS1270接口及51扩展方案 296
14.1.3 LCM1602总线方式驱动接口 297
14.1.4 外围器件 300
14.1.5 语音处理模拟部分设计 302
14.1.6 系统原理图 303
14.1.7 程序设计 306
14.2 医疗激光器功率控制 314
14.2.1 系统功能简介 314
14.2.2 行列式扫描键盘及C51程序设计 315
14.2.3 数字电位器DS1867驱动 315
14.2.4 LCM1602口线方式驱动接口 317
14.2.5 数字温度计DS1820及1-wire总线 318
14.2.6 系统原理图 321
14.2.7 程序设计 322
展开