第1章 实验准备——模块万用板及基板的制作 1
1.1 实验条件 1
1.1.1 计算机 1
1.1.2 工具 2
1.1.3 万用板 2
1.1.4 导线 2
1.2 实验手段 3
1.2.1 用工具软件进行模拟仿真实验 3
1.2.2 购买实验板或实验仪进行实验 3
1.2.3 自己制作实验板进行实验 4
1.2.4 建议采取的方案 4
1.3 制作实验板所需解决的问题 5
1.3.1 化整为零 5
1.3.2 标准化 5
1.3.3 化零为整 5
1.4 实验板的设计 6
1.4.1 启发 6
1.4.2 实验板的构成 7
1.4.3 插接件的选取 7
1.4.4 模块万用板的设计 8
1.4.5 基板的设计 8
1.5 模块万用板和基板的制作 9
1.5.1 模块万用板的制作 10
1.5.2 基板的制作 12
1.6 测试 15
1.6.1 相同脚的测试 15
1.6.2 电源测试 15
1.6.3 附加练习 15
总结体会 15
第2章 单片机最小系统与引脚特性测试——CPU板的制作与Proteus的应用 17
2.1 单片机引脚及功能 17
2.2 单片机的最小工作条件 18
2.3 CPU板的设计 19
2.3.1 最小系统原理图 19
2.3.2 元器件布局和连线设计 21
2.4 CPU板的制作 22
2.4.1 元件清单 22
2.4.2 元件符号及实物图对照 22
2.4.3 模块板的制作 24
2.5 CPU板的通电检测 25
2.5.1 关键点电压测试 25
2.5.2 运行程序的测试 26
2.5.3 故障分析 26
2.6 单片机初始状态的测试实验 26
2.6.1 Proteus仿真 26
2.6.2 利用CPU板进行实验 31
2.6.3 扩展练习 32
2.7 单片机工作状态的测试实验 33
2.7.1 Proteus实验 33
2.7.2 实物实验 36
2.7.3 扩展练习 37
2.8 单片机引脚特性测试实验 37
2.8.1 P口I/O脚的驱动能力和LED的特性 37
2.8.2 Proteus实验 38
2.8.3 实物实验 39
2.8.4 扩展练习 42
2.9 课堂实验——认识单片机 43
总结体会 44
第3章 单片机程序的编写与下载——Keil的应用和通信板的制作 46
3.1 单片机的“语言” 46
3.1.1 二进制机器语言及十六进制表达 46
3.1.2 指令的物理实在 46
3.1.3 助记符和汇编 47
3.1.4 修改机器码的实验 47
3.1.5 扩展练习 49
3.2 Keil编程实验 49
3.2.1 建立Keil工程项目文件 49
3.2.2 新建源程序文件并把它加入项目 52
3.2.3 P口输出编程实验 54
3.2.4 在Keil中配置学习资源和下载工具 58
3.2.5 扩展练习 60
3.3 下载程序所涉及的问题 60
3.3.1 单片机的串口 60
3.3.2 计算机的外部串行接口 60
3.3.3 USB口转RS-232串口 61
3.3.4 电平转换及连接 62
3.4 串口通信板的制作 64
3.4.1 元件清单 64
3.4.2 电路原理图 64
3.4.3 电路板制作 65
3.4.4 加电测试 67
3.5 下载程序实验 67
3.5.1 硬件连接 67
3.5.2 下载操作 68
3.5.3 验证 69
3.5.4 扩展练习 69
3.6 程序运行时间测量与PWM原理实验 69
3.6.1 用Keil测试指令执行时间 70
3.6.2 用Keil观察脉冲波 71
3.6.3 PWM原理实验 74
3.6.4 扩展练习 76
3.7 延时程序的编写与闪烁灯实验 76
3.7.1 延时程序的编写与测试 77
3.7.2 闪烁灯程序的编写与测试 79
3.7.3 控制灯闪烁次数的程序编写与实验 80
3.7.4 扩展练习 83
3.8 课堂实验——红绿灯的控制 83
总结体会 85
第4章 计数定时与数字显示——定时/计数器实验及显示板的制作 86
4.1 显示板的制作与实验 86
4.1.1 元件清单 86
4.1.2 电路原理图 87
4.1.3 元件布局 88
4.1.4 布线 88
4.1.5 电路板的焊接 89
4.1.6 测试 90
4.1.7 扩展练习 92
4.2 数码管字形码显示实验 92
4.2.1 数码管的字形码 92
4.2.2 字形码显示实验 93
4.2.3 扩展练习 93
4.3 计数器计数实验 93
4.3.1 计数器的设定和中断请求 94
4.3.2 计数器T0的中断服务程序 97
4.3.3 主程序入口 97
4.3.4 利用Keil进行程序调试实验 98
4.3.5 在实验板上进行实验 99
4.3.6 扩展练习 99
4.4 定时器定时实验 100
4.4.1 定时10ms的编程 100
4.4.2 定时1s的编程及Keil调试 101
4.4.3 精确定时方法 102
4.4.4 产生秒脉冲 103
4.4.5 扩展练习 106
4.5 机器数的显示实验 106
4.5.1 二进制数的显示实验 107
4.5.2 十六进制数的显示实验 108
4.5.3 十进制数的显示实验 111
4.5.4 扩展练习 112
4.6 LED亮点视觉暂留实验 112
4.6.1 LED刷新频率测定实验 112
4.6.2 8只LED动态点亮实验 115
4.6.3 扩展练习 118
4.7 数码管的动态显示 119
4.7.1 显示8051 119
4.7.2 双位十六进制数的显示 123
4.7.3 多位十进制数的显示 126
4.7.4 扩展练习 129
4.8 课堂实验——分计时器 129
总结体会 131
第5章 按键输入与数据传输——按键板的制作及串行通信 132
5.1 按键板的制作 132
5.1.1 输入键盘的设计 132
5.1.2 元件清单 132
5.1.3 元件在模块万用板上的布局和连线 133
5.1.4 按键板的制作 133
5.1.5 测试 134
5.1.6 扩展练习 136
5.2 按键抖动影响的测试与防止 136
5.2.1 抖动测试 136
5.2.2 抖动影响的防止 138
5.2.3 扩展练习 140
5.3 按键识别 141
5.3.1 按键动作检测 141
5.3.2 按键识别 143
5.3.3 求键值 145
5.3.4 按键显示实验 146
5.3.5 扩展练习 149
5.4 串行通信 150
5.4.1 单片机串口的设置 150
5.4.2 串行数据传送实验 152
5.4.3 扩展练习 155
5.5 按键数据记录 155
5.5.1 单片机与计算机的串口通信 155
5.5.2 按键抖动数据记录及分析 155
5.5.3 按键键码记录与新码表的建立 158
5.5.4 扩展练习 160
5.6 按键选择数据的发送实验 160
5.6.1 独立按键选择发送 160
5.6.2 矩阵键盘选择发送 162
5.6.3 计算机键盘选择数据发送 166
5.6.4 扩展练习 169
5.7 多位数的输入与发送 169
5.7.1 按键多位数输入 170
5.7.2 多位数的发送 172
5.7.3 多位数的接收 172
5.7.4 扩展练习 174
5.8 课堂实验——电子号码锁的初级设计 174
总结体会 176
第6章 中断与程序控制——中断系统及其综合实验 178
6.1 中断测试 178
6.1.1 程序中断与堆栈 178
6.1.2 CALL与RET失配实验 179
6.1.3 单片机的中断系统 181
6.1.4 优先权测试 182
6.1.5 中断返回测试 185
6.1.6 扩展练习 185
6.2 利用中断控制程序运行 186
6.2.1 节能显示 186
6.2.2 调用键盘程序 188
6.2.3 实验板上程序的单步执行 191
6.2.4 扩展练习 194
6.3 单片机低功耗运行实验 194
6.3.1 掉电及唤醒 195
6.3.2 待机及唤醒 198
6.3.3 掉电与待机唤醒时程序运行测试 201
6.3.4 冷热启动 202
6.3.5 扩展练习 204
6.4 控制从机 204
6.4.1 串口中断唤醒测试 204
6.4.2 呼叫实验 206
6.4.3 控制从机工作 211
6.4.4 扩展练习 213
6.5 课堂实验——简易人体反应测试器 214
总结体会 215
附录 MCS-51系列单片机指令表(按指令的字母顺序排列) 217