老杨编著的这本《51单片机工程师是怎样炼成的——基于C语言+Proteus仿真》共三篇内容,可以说三篇内容是独立的。第1篇入门篇,是对单片机概念的引入、工具的介绍、单片机基础知识的讲解。学习完第1篇内容你会对单片机有个整体的认识,也会知道单片机编程是怎么一回事,如果要深入学习可以看后面的章节,也可以直接选择别的教程进一步研究。第2篇提高篇,是在第1篇内容的基础上通过扩展外围器件进一步讲解单片机的应用,可以作为扩展内容学习。第3篇应用篇,通过实例的形式应用前两篇的学习内容,如果你有一定的单片机基础,也可以直接用来做参考样例。
老杨编著的这本《51单片机工程师是怎样炼成的——基于C语言+Proteus仿真》共3篇18章,完整展现了一个51单片机工程师成长的经历。51单片机共有21个特殊功能寄存器,而需要重点掌握的只有6个(需要熟练掌握对其位的操作),因而学习单片机其实很简单:学会6个寄存器就学会了单片机程序设计。这样如果一天掌握一个寄存器,那么6天就能学会单片机。
《51单片机工程师是怎样炼成的——基于C语言+Proteus仿真》适用于51单片机的初学者和使用51单片机从事项目开发的技术人员,也可供从事自动控制、智能仪器仪表、电力电子、机电一体化等专业的技术人员参考,还可作为大学本、专科单片机课程教材。
第1篇 入门篇
第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篇 提高篇
第10章 再说数码管/168
10.1 使用扩展芯片驱动数码管/168
10.1.1 认识扩展芯片74LS138/169
10.1.2 74LS138的应用/170
10.1.3 应用74HC154/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 I2C总线介绍/217
13.1.1 初步了解I2C总线/217
13.1.2 I2C总线上的信号/218
13.2 认识E2PROM 24C02/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 了解DAC0832/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 使用LCD1602/290
16.3 使用LCD12864/293
16.3.1 认识HDG12864L-6/294
16.3.2 HDG12864L-6指令说明/296
16.3.3 LCD12864的并行应用/307
16.3.4 LCD12864的串行应用/314
第3篇 应用篇
第17章 简易万年历/324
17.1 电路设计/324
17.2 认识时钟芯片DS1302/326
17.3 系统设计/332
第18章 温度自动控制系统/348
18.1 系统模型/348
18.2 分析电路/350
18.2.1 电路分解/350
18.2.2 认识DS18B20/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