第1章 单片机硬件体系简介 3
1.1 AT89系列单片机简介 3
1.2 AT89C51AT89C52的外部引脚 6
1.3 I/O口介绍 9
1.4口操作 11
1.5定时器 14
1.6 RST/VPD脚 15
思考题及习题 16
第2章 开发单片机的软件环境 19
2.1下载Keil C51 19
2.2 Keil C的使用方法 21
2.3程序文件的修改和仿真 26
2.4 WAVE 6000简单介绍 30
2.5编程器的使用 35
2.6烧录芯片 37
思考题及习题 37
第3章 单片机的指令系统 38
3.1指令学习基础 38
3.2复位及复位电路 44
3.3 8051指令系统 46
3.4算术运算类指令 55
3.5伪指令 65
思考题及习题 67
第4章 制作你的单片机系统—学习编程 70
4.1具体的单片机(AT89C51)系统电路制作 70
4.2程序设计语言 70
4.3给灯编点花样(流水灯) 73
4.4让数码管显示一组数 75
4.5显示相应的键盘号 79
4.6利用键盘选中数码管及其数字的修改 87
4.7多次时间设置功能的闹钟程序 95
思考题及习题 105
第5章 中断控制 109
5.1 I/0口的控制方式 109
5.2中断控制 111
思考题及习题 123
第6章 定时/计数器 125
6.1定时/计数器原理 125
6.2定时/计数器的工作方式 127
6.3使用T0/T1的注意事项及设置步骤 129
6.4定时/计数器的基本应用 131
6.5带有闹钟功能的实用时钟 137
6.6定时/计数器T2的结构及控制 155
思考题及习题 160
第7章 串行通信系统 161
7.1串行通信的种类 161
7.2串行口工作方式及应用 167
7.3两个AT89S52做单工发送数据(中断法) 173
7.4两个8051做串行多工数据传输(查询法) 174
7.5两个8051做串行多工数据传输(中断法) 176
7.6多机通信原理 177
7.7一个8751(主)与两个8751(副)做串行单工发送数据 178
7.8一个8751(主)与两个8751(副)做串行多工发送数据 181
思考题及习题 185
第8章 模数-数模转换器 187
8.1 AD0804介绍 187
8.2 AD0804接口设计 188
8.3由AT89S52读取ADC转换值 190
8.4并行A/D转换器ADC0809及其接口电路 193
8.5串行A/D ADC0832及其接口电路 197
8.6数模转换器 200
8.7测量DAC输出电压值 202
8.8 DAC0832及其接口电路 204
8.9 DAC0832应用 207
思考题及习题 208
第9章 I2 C扩展技术及应用系统 209
9.1虚拟I2C总线扩展I/O口 209
9.2 I2C总线E2 PROM芯片AT24C02 209
9.3将数据写入AT24C02 211
9.4将数据从AT24C02中读出 213
9.5串行扩展AT93C46的特点、引脚功能和指令系统 214
9.6 AT93C46读写应用 216
9.7步进电机控制 224
思考题及习题 228
第10章 嵌入式C语言程序设计 231
10.1 C51数据类型及存储结构 231
10.2用C编写跑马灯程序 235
10.3 Keil C的实际应用 236
10.4 I/0口的输入数据读取和控制 237
10.5计时器Timer 0的溢出中断应用 238
10.6外部中断INT0 239
10.7四只数码管的显示控制 241
10.8 4×4小键盘 242
10.9数字时钟 244
10.10用C语言和汇编语言编写的基本程序模块对比 249
思考题及习题 253
第11章 C语言和汇编语言混合编程 254
11.1 Keil C51和A51接口所涉及的几个主要问题 254
11.2在C51中调用汇编程序应用举例 256
11.3在C51中调用汇编程序的一般过程 258
11.4高级语言调用汇编语言子程序的应用(TL.C549) 258
11.5 A/D转换器TL C0832混合编程应用 261
附录 8051指令表 264
参考文献 268