目录 1
第1章 MCS51单片机介绍 1
1.1 数字集成电路的发展历程 1
1.1.1 标准逻辑器件 1
1.1.2 微处理器 1
1.1.3 专用集成电路 2
1.2 MCS51单片机介绍 2
1.2.1 概述 2
1.2.2 AT89S51单片机的特性 3
1.2.3 AT89S51单片机的封装 3
1.3 AT89S51单片机的存储器 4
1.3.2 数据存储空间 5
1.3.1 程序存储空间 5
1.4 单片机最小应用系统电路 8
1.5 单片机模拟调试软件 10
1.5.1 Keil单片机模拟仿真调试软件的安装和启动 10
1.5.2 工程(Project)的建立 11
1.5.3 源文件的输入 12
1.6 学习编写第一个程序 13
1.6.1 ORG指令 13
1.6.2 语句标号 14
1.6.3 MOV指令 14
1.6.4 注释 15
1.6.5 AJMP指令 15
1.7.1 汇编语言源程序的汇编 16
1.6.6 END指令 16
1.7 程序调试 16
1.7.2 汇编语言源程序的调试 17
1.8 小结 18
实验 19
第2章 并行输入/输出口的应用 20
2.1 并行输入/输出口概述 20
2.2 基于P1口的交通信号灯控制电路设计 21
2.3 基于P1口的交通信号灯控制程序 22
2.3.1 交通信号灯控制状态表 23
2.3.2 交通信号灯控制汇编语言源程序 23
2.3.3 MOV指令的执行时间 24
2.4 采用DJNZ指令实现延时 25
2.5 子程序及其调用 27
2.5.1 子程序调用指令 28
2.5.2 子程序编写格式 28
2.6 交通信号灯控制程序及其模拟调试 29
2.6.1 程序清单 29
2.6.2 模拟调试软件运行参数的设置 30
2.6.3 程序的模拟调试 31
2.6.4 程序向单片机芯片的下载 33
2.7 小结 33
实验 34
3.1.2 串行输入/输出口的工作方式 35
3.1.1 简介 35
第3章 串行输入/输出口的应用 35
3.1 串行输入/输出口概述 35
3.1.3 串行输入/输出口的工作控制寄存器 36
3.2 数码管及其显示电路 37
3.3 基于串行输入/输出口的数码管电路 40
3.4 译码程序 42
3.4.1 译码子程序 42
3.4.2 MOVC指令 43
3.4.3 DB伪指令 44
3.4.4 基于译码子程序的显示演示程序 44
3.5 具有时间显示的交通灯的控制电路 46
3.6.1 多位数据的显示 47
3.6 数码管应用的进一步讨论 47
3.6.2 十六进制数到十进制数的转换 49
3.7 小结 51
实验 52
第4章 定时/计数器的应用 53
4.1 定时/计数器介绍 53
4.1.1 定时/计数器概述 53
4.1.2 定时/计数器的工作方式 53
4.1.3 定时/计数器的工作控制寄存器 56
4.2 基于定时/计数器的信号频率测量 57
4.2.1 频率测量的程序框图 57
4.2.2 频率测量的程序示例 59
4.3.1 扩展频率测量范围 62
4.3 频率测量量程的自动切换 62
4.3.2 频率测量量程的自动切换 63
4.4 正弦波到TTL方波的转换电路 65
4.5 小结 66
实验 67
第5章 外部数据空间的访问 68
5.1 访问外部数据空间的指令和执行时序 68
5.1.1 MCS51系列单片机的基本时序周期 68
5.1.2 MOVX指令及执行时序 69
5.1.3 外部总线的扩展 71
5.2 外部数据存储器的扩展 72
5.2.1 HM6264A的介绍 72
5.2.2 扩展HM6264A的电路 74
5.2.3 HM6264A工作验证 75
5.3 DAC0832数字/模拟转换器的应用 76
5.3.1 DAC0832数字/模拟转换器的介绍 76
5.3.2 DAC0832数字/模拟转换器的单缓冲方式接口 77
5.3.3 DAC0832数字/模拟转换器的双缓冲方式接口 79
5.4 ADC0809模拟/数字转换器的应用 81
5.4.1 ADC0809模拟/数字转换器的介绍 81
5.4.2 等待延时方式 83
5.4.3 查询方式 84
5.5 小结 85
实验 86
第6章 串行接口器件的访问 87
6.1 使用普通输入/输出引脚实现同步串行接口 87
6.1.1 概述 87
6.1.2 基于普通输入/输出引脚的串行显示子程序 88
6.2 12位串行输入数字/模拟转换器DAC7611 89
6.2.1 数字/模拟转换器DAC7611的介绍 89
6.2.2 DAC7611的应用电路和控制时序 90
6.2.3 控制DAC7611 工作的子程序 92
6.3 12位串行输出模拟/数字转换器ADS7818 94
6.3.1 模拟/数字转换器ADS7818的介绍 94
6.3.2 ADS7818的应用电路和控制时序 95
6.3.3 控制ADS7818 工作的子程序 96
6.4 小结 99
实验 99
7.1.2 中断源 100
7.1.1 概述 100
7.1 中断系统介绍 100
第7章 中断系统的应用 100
7.1.3 中断控制 102
7.1.4 中断的响应过程 104
7.2 定时器溢出中断的应用 105
7.2.1 基于定时/计数器的信号周期测量 105
7.2.2 定时器溢出中断的模拟 106
7.2.3 信号周期测量的实现 107
7.3 基于外部中断的简单键盘 109
7.3.1 键盘概述 109
7.3.2 外部中断的模拟 111
7.4 小结 113
实验 113
8.2 数控电源的方案论证 114
第8章 数控电源的设计 114
8.1 数控电源的设计要求 114
8.3 系统设计 115
8.3.1 硬件电路的系统设计 115
8.3.2 软件程序的系统设计 116
8.4 单元电路设计 117
8.4.1 显示电路设计 117
8.4.2 数字/模拟转换器电路设计 118
8.4.3 键盘电路设计 118
8.4.4 放大电路设计 123
8.4.5 保护电路设计 124
8.5.1 输出电压范围和步进调整值的测量 125
8.5 系统测试 125
8.5.2 过流保护电路的测量 127
8.6 小结 127
第9章 正弦信号产生器的设计 129
9.1 正弦信号产生器的设计要求 129
9.2 正弦信号产生器的方案论证 129
9.2.1 传统的正弦信号产生器设计方案 129
9.2.2 基于单片机和数字/模拟转换器的设计方案 130
9.2.3 基于DDS技术的设计方案 130
9.3 AD9850芯片介绍 132
9.4 系统设计 135
9.4.1 硬件电路的系统设计 135
9.5.1 显示电路设计 136
9.5 单元电路设计 136
9.4.2 软件程序的系统设计 136
9.5.2 AD9850电路设计 137
9.5.3 键盘电路设计 139
9.6 小结 142
第10章 数字信号的无线收发 143
10.1 数字通信概述 143
10.2 nRF2401无线收发芯片介绍 144
10.3 集成电路接口 146
10.3.1 低电压器件 146
10.3.2 低电平信号驱动高电平负载 146
10.3.3 高电平信号驱动低电平负载 147
10.3.4 Atmel公司的低电压器件 147
10.4.1 正常工作模式 148
10.4 nRF2401无线收发芯片的工作模式 148
10.4.2 配置模式 149
10.4.3 旁路模式 150
10.4.4 掉电模式 150
10.5 nRF2401无线收发芯片的配置 150
10.5.1 射频传输数据的结构 150
10.5.2 nRF2401无线收发芯片的配置字 151
10.5.3 nRF2401无线收发芯片的配置时序图 154
10.6 nRF2401无线收发芯片的正常工作 154
10.6.1 ShockBurstTM方式下的发射 155
10.6.2 ShockBurstTM方式下的接收 157
10.7 小结 159
11.1.1 ADuC812芯片功能 160
第11章 MCS51单片机兼容芯片ADUC812的使用 160
11.1 ADuC812芯片介绍 160
11.1.2 ADuC812芯片的QuickStart开发系统 162
11.2 在电路程序代码的下载 163
11.2.1 在电路串行程序代码下载电路 164
11.2.2 串行程序代码下载器 165
11.3 在电路程序代码的仿真调试 168
11.3.1 仿真器工作环境设置 168
11.3.2 应用程序的仿真调试 170
11.3.3 仿真器工作环境的保存 172
11.4 在片FLASH数据存储器 173
11.4.1 在片FLASH数据存储器介绍 173
11.4.2 在片FLASH数据存储器的工作控制寄存器 174
11.4.3 在片FLASH数据存储器的使用 175
11.5 模拟输入/输出接口 176
11.5.1 在片模拟/数字转换器概述 176
11.5.2 在片模拟/数字转换器的工作控制寄存器 178
11.5.3 在片数字/模拟转换器概述 180
11.5.4 在片数字/模拟转换器的工作控制寄存器 181
11.5.5 模拟输入/输出接口应用 183
11.6 小结 184
附录A MCS51单片机的汇编语言指令系统 185
附录B MCS51单片机汇编器的伪指令 190
附录C 指令执行对标志位的影响 192
参考文献 193