1 学习情境1 认识单片机 1
1.1 情境任务——单片机的发展历程、趋势及主流产品 1
1.2 知识准备 1
1.2.1 单片机的定义 1
1.2.2 单片机的应用领域 2
1.3 任务实施 3
1.3.1 单片机的发展历程 3
1.3.2 单片机的发展趋势 3
1.3.3 单片机分类及当前的主流产品 4
1.4 能力拓展 6
1.4.1 其他主流单片机生产厂商介绍 6
1.4.2 单片机与PC机的参数对比 6
2 学习情境2 单片机中的数 8
2.1 情境任务——数据存储与进制转换 8
2.2 知识准备 8
2.2.1 数制 8
2.2.2 进制间的转换 8
2.2.3 单片机中的存储单位 9
2.3 任务实施 9
2.4 能力拓展 10
2.4.1 无符号数与有符号数 10
2.4.2 有符号数编码 10
3 学习情境3 单片机存储器组织 12
3.1 情境任务——存储器地址编号 12
3.2 知识准备 12
3.2.1 存储单元地址 12
3.2.2 80C51单片机存储器结构 13
3.2.3 程序存储器ROM的使用方式 13
3.3 任务实施 13
3.4 能力拓展 14
3.4.1 程序存储器起始端的特殊单元 14
3.4.2 单片机各类存储器空间的访问 14
4 学习情境4 数据存储器与特殊功能寄存器 15
4.1 情境任务——片内RAM与特殊功能寄存器 15
4.2 知识准备 15
4.2.1 片内RAM分区 15
4.2.2 特殊功能寄存器区 17
4.3 任务实施 18
4.4 能力拓展——特殊功能寄存器分类 18
5 学习情境5 单片机最小电路 19
5.1 情境任务——理解并搭建单片机最小电路 19
5.2 知识准备 19
5.2.1 单片机时钟电路 19
5.2.2 单片机复位电路 20
5.3 任务实施 21
5.4 能力拓展——单片机中的S状态周期 22
6 学习情境6 数据传送 23
6.1 情境任务——数据大转移 23
6.2 知识准备 23
6.2.1 一般传送指令 24
6.2.2 特殊传送指令 27
6.2.3 其他特殊传送指令 29
6.3 任务实施 29
6.4 能力拓展 30
6.4.1 指令机器码 30
6.4.2 指令执行时间 31
6.4.3 累加器A与ACC 31
7 学习情境7 算术运算 32
7.1 情境任务——四则运算 32
7.2 知识准备——单片机中的算术运算类指令 32
7.2.1 加法 33
7.2.2 减法 35
7.2.3 乘法 35
7.2.4 除法 36
7.3 任务实施 36
7.4 能力拓展 36
7.4.1 使用CY和OV进行运算结果验证 36
7.4.2 BCD码运算及调整 37
8 学习情境8 逻辑运算与循环 39
8.1 情境任务——逻辑运算与倍乘 39
8.2 知识准备——逻辑运算及循环移位指令 39
8.2.1 逻辑运算 40
8.2.2 累加器清0和取反 41
8.2.3 累加器循环移位 42
8.3 任务实施 42
8.4 能力拓展 42
8.4.1 逻辑与、逻辑或和逻辑异或使用要点 42
8.4.2 RL与RLC使用示例 43
9 学习情境9 程序转移 44
9.1 情境任务——分段函数 44
9.2 知识准备——转移类指令 44
9.2.1 条件转移指令 45
9.2.2 无条件转移 46
9.3 任务实施 48
9.4 能力拓展 48
9.4.1 灵活运用指令“ANL A,#80H”进行正负数的区分 48
9.4.2 多分支结构程序设计 48
9.4.3 循环结构程序设计 49
10 学习情境10 位操作 51
10.1 情境任务——逻辑电路 51
10.2 知识准备——位操作 51
10.2.1 常规操作 53
10.2.2 位逻辑操作 53
10.2.3 位传送 53
10.2.4 判断位值的条件转移指令 54
10.3 任务实施 54
10.4 能力拓展——累加器A编程求补码 55
11 学习情境11 伪指令 56
11.1 情境任务——创建平方表 56
11.2 知识准备 56
11.2.1 汇编方式 56
11.2.2 伪指令 56
11.3 任务实施 58
11.4 能力拓展——查询平方表 58
12 学习情境12 寻址方式 59
12.1 情境任务——辨别寻址方式 59
12.2 知识准备——寻址方式分类 59
12.3 任务实施 60
12.4 能力拓展——目的操作数寻址方式 61
13 学习情境13 子程序调用 62
13.1 情境任务——查表计算平方和 62
13.2 知识准备——子程序调用及返回 62
13.2.1 调用指令 62
13.2.2 子程序调用返回指令 62
13.3 任务实施 63
13.4 能力拓展 63
13.4.1 延时子程序 63
13.4.2 现场保护与恢复 64
13.4.3 参数传递 66
14 学习情境14 单片机中断系统 67
14.1 情境任务——中断型数据采集系统 67
14.2 知识准备 67
14.2.1 中断概念 67
14.2.2 中断源及中断请求标志 67
14.2.3 中断系统的控制寄存器 68
14.2.4 中断的响应过程 70
14.2.5 中断系统程序结构 71
14.3 任务实施 72
14.4 能力拓展——多外部中断源系统 74
15 学习情境15 定时/计数器 76
15.1 情境任务——生产线产品计数系统 76
15.2 知识准备 76
15.2.1 定时/计数器中的寄存器 76
15.2.2 定时/计数器的工作方式 78
15.3 任务实施 80
15.4 能力拓展 81
15.4.1 脉冲的发生与测量 81
15.4.2 定时/计数器用于外部中断扩展 83
15.4.3 其他定时方法 84
16 学习情境16 并行接口 85
16.1 情境任务——循环彩灯 85
16.2 知识准备 85
16.2.1 P1口 85
16.2.2 发光二极管 85
16.2.3 延时程序 85
16.3 任务实施 86
16.4 能力拓展 87
16.4.1 通用锁存器、缓冲器扩展 87
16.4.2 扩展8255可编程并行接口芯片 89
17 学习情境17 串行口通信技术 92
17.1 情境任务——串口通信 92
17.2 知识准备 92
17.2.1 单片机通信概念 92
17.2.2 串行通信的分类 93
17.2.3 通信方向分类 93
17.2.4 单片机的串行接口 94
17.3 任务实施 97
17.4 任务扩展——双机通信 99
18 学习情境18 存储器的扩展 104
18.1 情境任务——扩展片外存储器 104
18.2 知识准备 104
18.2.1 存储器扩展概念 104
18.2.2 程序存储器扩展 109
18.2.3 数据存储器扩展 110
18.3 任务实施 111
18.4 能力拓展 113
18.4.1 扩展多片数据存储器 113
18.4.2 存储器综合扩展 114
19 学习情境19 A/D与D/A转换 115
19.1 情境任务——模拟量输入的巡回检测系统及信号发生器 115
19.2 知识准备 115
19.2.1 A/D转换器 115
19.2.2 D/A转换器 120
19.3 任务实施 124
19.4 能力拓展 126
20 学习情境20 初识C语言 127
20.1 情境任务——C语言程序结构 127
20.2 知识准备——单片机C语言基础 127
20.3 任务实施 129
20.4 能力拓展——两种编程语言比较 129
21 学习情境21 数据和运算 131
21.1 情境任务——使用C语言设计流水灯 131
21.2 知识准备 131
21.2.1 C51的数据类型 131
21.2.2 数据的存储类型和存储模式 133
21.2.3 C51对SFR、可寻址位、存储器和I/O口的定义 135
21.2.4 C51的运算符 137
21.3 任务实施 138
21.4 能力拓展——流水灯其他实现方法 140
22 学习情境22 C语言基本语句 142
22.1 情境任务——汽车转向灯控制系统 142
22.2 知识准备 143
22.2.1 表达式语句和复合语句 143
22.2.2 选择语句 144
22.3 任务实施 147
22.4 能力拓展——循环语句 150
23 学习情境23 数组 158
23.1 情境任务——简易密码锁 158
23.2 知识准备 158
23.2.1 数组的概念 158
23.2.2 数组的类型 158
23.3 任务实施 162
23.4 能力拓展——数组实现流水灯控制 163
24 学习情境24 函数 165
24.1 情境任务——使用库函数控制流水灯 165
24.2 知识准备 165
24.2.1 函数的分类 165
24.2.2 函数的定义 165
24.2.3 函数的调用 166
24.2.4 对被调函数的说明 166
24.3 任务实施 167
24.4 能力拓展——C语言中散转移编程 168
25 学习情境25 汇编语言和C语言的混合编程 169
25.1 情境任务——方波发生器 169
25.2 知识准备 169
25.2.1 混合编程概念 169
25.2.2 C语言程序和汇编语言程序参数的传递 169
25.3 任务实施 170
25.4 能力拓展 172
25.4.1 数值比较混合编程 172
25.4.2 C和汇编混合编程传递的参数多于三个的编程方法 172
26 项目训练1 报警产生器 175
27 项目训练2 4×4矩阵式键盘识别技术 178
28 项目训练3 字符型LCD显示 183
29 项目训练4 音乐声 192
自测练习题 200
附录A Keil C51软件使用 207
附录B AT89S52单片机烧写软件 214
附录C 常用的C51标准库函数 219
参考文献 222