第1篇 入 门篇 2
第1章 走近单片机 2
1.1我们身边的单片机 2
1.2认识单片机 5
1.3了解51单片机 8
1.3.1 51单片机的由来 8
1.3.2 51单片机的特点 9
1.3.3 51单片机的代表AT89C51 10
第2章 练练我们的刀和剑:Proteus、 Keil C51 13
2.1 Proteus介绍 13
2.1.1安装Proteus 13
2.1.2运行Proteus 15
2.1.3学用Proteus 17
2.2 Keil C51介绍 22
2.2.1安装Keil C51 22
2.2.2运行Keil C51 23
2.2.3学用Keil C51 27
2.3刀剑合并 31
2.3.1安装VDM51.DLL 31
2.3.2设置Keil C51和Proteus 33
2.3.3联合调试 37
第3章 让你的单片机眨眨眼睛 42
3.1我们的第一个单片机程序 42
3.1.1先画出我们要用的电路 42
3.1.2用程序点亮我们的灯 47
3.1.3分析代码 52
3.2不仅仅是让它亮起来 55
3.2.1怎么让发亮的灯闪烁呢 55
3.2.2代码分析 56
3.2.3调试分析 57
3.2.4优化程序 58
3.3做些程序的改动 60
3.3.1改动延时时间 60
3.3.2做个众人皆知的跑马灯 60
3.4能不能连点花样呢 64
3.4.1想想你能画什么 64
3.4.2用代码显示数字 65
第4章 让数字显示出来 66
4.1引入数码管的概念 66
4.1.1数码管介绍 66
4.1.2写段程序让它亮起来 67
4.1.3数码管的驱动方式 69
4.2多显示几个数字看看 70
4.2.1电路实现 70
4.2.2程序实现 72
4.2.3你的眼睛欺骗了你 73
4.3仿真万年历 75
4.3.1电路实现 75
4.3.2程序实现 76
4.3.3优化程序 77
第5章 用按键告诉单片机你想做什么 83
5.1能不能让闪烁的灯停下来 83
5.1.1让跑马灯停下来 83
5.1.2认识我们用的按键 86
5.2如何实现软件消抖 87
5.3如何实现按键的复用 90
第6章 如何实时控制单片机 97
6.1中断的引入 97
6.1.1中断允许寄存器IE 97
6.1.2定时/计数器控制寄存器TCON 98
6.1.3中断操作流程 99
6.2原来按键还可以这样用 100
6.2.1写个程序实现按键的中断 100
6.2.2不同的触发方式 104
6.3中断的优先级 106
6.3.1中断优先级 106
6.3.2了解更多中断的概念 107
6.3.3比较4个I/O口 108
第7章 让定时更精确 110
7.1定时/计数器概念 110
7.1.1 T0、 T1介绍 110
7.1.2复习寄存器IE、 TCON、 IP 110
7.1.3介绍几个专用寄存器 111
7.2工作方式0的应用 112
7.3工作方式1的应用 116
7.4工作方式2的应用 119
7.5工作方式3的应用 121
7.6计数器介绍 124
第8章 单片机与外界的联系——串口通信 128
8.1串口通信的概念 128
8.2先试试如何发送 129
8.2.1与串口通信有关的寄存器 129
8.2.2先写个示例程序 132
8.2.3补充一点51单片机的串口知识 135
8.3收发都能实现 138
8.3.1将Proteus中的串口连接到硬件上 138
8.3.2实现串口收发通信 143
8.3.3用中断的方式实现串口收发 146
第9章 让单片机“响”起来 149
9.1单片机还会响呢 149
9.1.1了解一下蜂鸣器 149
9.1.2写个程序让它响起来 149
9.2用定时器模拟门铃 152
9.3用蜂鸣器演奏曲子 155
9.4重新认识AT89C51 158
9.4.1 AT89C51的总体认识 158
9.4.2 AT89C51的引脚 160
9.4.3有关AT89C51的寄存器 161
第2篇 提 高篇 168
第10章 再说数码管 168
10.1使用扩展芯片驱动数码管 168
10.1.1认识扩展芯片74LS138 169
10.1.2 74LS138的应用 170
10.1.3应用74HC 154 172
10.1.4有关译码器 174
10.2显示译码器 175
10.2.1显示译码器74LS48 175
10.2.2 显示译码器的应用 176
第11章 按键多了怎么办 180
11.1看一个密码键盘 180
11.1.1矩阵键盘的实现 180
11.1.2矩阵按键的扫描 181
11.2是否可以扩展呢 185
11.2.1了解编码器 185
11.2.2应用编码器74LS148 187
第12章 深入串口通信 190
12.1通信协议的引入 190
12.1.1协议制定 190
12.1.2样例实现 191
12.2让单片机和PC真正通信 202
12.2.1新建一个VC工程 202
12.2.2添加VC控件 203
12.2.3添加控件到界面 204
12.2.4添加变量、完成代码编写 207
12.2.5运行、调试 214
第13章I2C总线及其应用 217
13.1 12C总线介绍 217
13.1.1初步了解I2C总线 217
13.1.2 I2C总线上的信号 218
13.2认识E2 PROM AT24C02 222
13.2.1认识AT24C02 222
13.2.2 AT24C02的操作地址 222
13.2.3 AT24C02的读/写操作 224
13.3写一个I2C通信的例子 226
第14章SPI总线及其应用 236
14.1 SPI总线介绍 236
14.2一款SPI接口的E2PROM 237
14.2.1认识25AA040 238
14.2.2 25AA040的工作原理 239
14.3应用25AA040 247
第15章A/D转换器和D/A转换器 256
15.1了解A/D转换器的相关知识 256
15.1.1 A/D转换器的分类 256
15.1.2 A/D转换器的主要技术指标 257
15.2看两个A/D转换器的例子 258
15.2.1了解ADC0809 258
15.2.2应用ADC0808 260
15.2.3了解ADC0832 264
15.2.4应用ADC0832 267
15.3再看看D/A转换器 271
15.3.1了解D/A转换器 271
15.3.2 D/A转换器的主要技术指标 272
15.3.3了解DAC083 273
15.3.4应用DAC0832 276
第16章LCD显示 279
16.1先认识LED点阵屏 279
16.1.1有关LED点阵屏 279
16.1.2 LED点阵的应用 280
16.2使用字符LCD 283
16.2.1了解LCD 283
16.2.2认识LCD1602 284
16.2.3 LCD1602的指令说明 285
16.2.4使用LCD 1602 290
16.3使用LCD 12864 293
16.3.1认识HDG 12864L-6 294
16.3.2 HDG12864L-6指令说明 296
16.3.3 LCD12864的并行应用 307
16.3.4 LCD 12864的串行应用 314
第3篇 应 用篇 324
第17章 简易万年历 324
17.1电路设计 324
17.2认识时钟芯片DS 1302 326
17.3系统设计 332
第18章 温度自动控制系统 348
18.1系统模型 348
18.2分析电路 350
18.2.1电路分解 350
18.2.2认识DS 18B20 353
18.2.3了解液晶AMPIRE128×64 364
18.3系统设计 368
18.3.1嵌入式系统设计 368
18.3.2 PC端软件设计 379
附录A AT89C51特殊功能寄存器速查表 384
附录B Proteus 7.5元件库分类表 386
附录C书籍、网站推荐 394
参考文献 395
结束语 396