第1章 单片机基础 1
1.1概述 2
1.1.1单片机的发展 3
1.1.2单片机的特点 5
1.1.3单片机的应用 6
1.2 MCS-51单片机硬件基础 7
1.2.1内部结构 7
1.2.2封装 9
1.2.3引脚 10
1.2.4输入/输出端口 11
1.2.5存储器 15
1.2.6时钟 21
1.2.7时序 22
1.2.8复位 23
1.2.9低功耗 24
1.3流水灯Proteus仿真 25
习题 25
第2章 单片机指令系统与汇编语言程序设计 27
2.1 MCS-51单片机指令系统 27
2.1.1指令格式 27
2.1.2寻址方式 29
2.1.3数据传送类指令 33
2.1.4算术运算类指令 38
2.1.5逻辑运算类指令 43
2.1.6控制转移类指令 46
2.1.7位操作类指令 48
2.2汇编语言程序设计 50
2.2.1常用伪指令 51
2.2.2顺序程序设计 53
2.2.3分支程序设计 54
2.2.4循环程序设计 57
2.2.5子程序设计 60
2.3全自动洗衣机按键与指示灯Proteus仿真 61
习题 62
第3章 单片机C语言程序设计 64
3.1汇编语言与C语言 64
3.2 C51基本元素 66
3.2.1关键字 66
3.2.2常量 67
3.2.3变量 68
3.3 C51运算符和表达式 70
3.3.1赋值运算符 70
3.3.2算术运算符 71
3.3.3增减运算符 72
3.3.4关系运算符 72
3.3.5逻辑运算符 73
3.3.6位运算符 73
3.3.7复合赋值运算符 73
3.3.8逗号运算符 74
3.3.9条件运算符 74
3.3.10指针和地址运算符 74
3.3.11强制类型转换符 74
3.3.12长度运算符 75
3.3.13数组下标运算符 75
3.3.14成员运算符 75
3.4 C51语句和控制结构 75
3.4.1空语句 76
3.4.2表达式语句 76
3.4.3复合语句 76
3.4.4 if语句 77
3.4.5 switch语句 78
3.4.6 for语句 79
3.4.7 while语句 80
3.4.8 do…while语句 80
3.5 C51函数 80
3.5.1函数概述 80
3.5.2函数的定义和调用 81
3.5.3全局变量和局部变量 82
3.5.4中断服务程序 82
3.6数据排序Proteus仿真 83
习题 85
第4章 单片机中断系统 87
4.1中断源 87
4.2中断控制 88
4.3中断过程 91
4.3.1中断请求 91
4.3.2中断响应 92
4.3.3中断处理 92
4.3.4中断返回 93
4.4外部中断源扩展 94
4.5全自动洗衣机“启动/暂停”控制Proteus仿真 97
习题 100
第5章 单片机定时器与计数器 102
5.1定时器/计数器结构 102
5.2定时器/计数器的工作方式 104
5.2.1工作方式0 104
5.2.2工作方式1 105
5.2.3工作方式2 106
5.2.4工作方式3 106
5.3定时器/计数器应用举例 108
5.4全自动洗衣机定时控制Proteus仿真 114
习题 117
第6章 单片机串行通信系统 119
6.1概述 119
6.1.1异步通信 119
6.1.2同步通信 120
6.1.3串行通信模式 120
6.2串行通信接口 121
6.2.1串行通信控制寄存器 122
6.2.2电源控制寄存器 123
6.3串行通信工作方式 123
6.3.1工作方式0 123
6.3.2工作方式1 124
6.3.3工作方式2 125
6.3.4工作方式3 125
6.3.5多机通信 126
6.4串行通信波特率设置 127
6.4.1波特率计算 127
6.4.2溢出率计算 127
6.4.3计数初值计算 128
6.5串行通信应用举例 129
6.5.1串行口初始化 129
6.5.2工作方式0应用举例 129
6.5.3工作方式1应用举例 130
6.5.4工作方式2应用举例 132
6.5.5多机通信应用举例 135
6.6全自动洗衣机串行方式时间显示Proteus仿真 137
习题 141
第7章 单片机应用系统中的按键与显示 142
7.1按键的抖动 142
7.2独立式按键 143
7.3矩阵式键盘 145
7.3.1查询扫描 146
7.3.2中断扫描 149
7.4发光二极管 150
7.5 LED数码管 152
7.5.1 LED数码管静态显示 154
7.5.2 LED数码管动态显示 158
7.6液晶显示 160
7.6.1 LCD 1602液晶显示模块 161
7.6.2 LCD 1602应用举例 166
7.7全自动洗衣机洗衣流程Proteus仿真 170
习题 174
第8章 单片机应用系统中的模拟量输入与输出 177
8.1 A/D转换 177
8.1.1并行A/D转换 178
8.1.2串行A/D转换 181
8.2 D/A转换 185
8.3直流电动机控制 192
8.4全自动洗衣机水量控制Proteus仿真 195
习题 198
第9章 单片机应用系统资源扩展 200
9.1系统资源扩展的方法 200
9.2程序存储器扩展 204
9.2.1程序存储器扩展方法 205
9.2.2程序存储器扩展举例 206
9.3数据存储器扩展 210
9.3.1数据存储器扩展方法 210
9.3.2数据存储器扩展举例 212
9.4串行程序存储器扩展 215
9.4.1 12C串行总线标准 215
9.4.2串行程序存储器扩展举例 217
9.5并行1/O接口扩展 226
9.6用串行口扩展并行口 229
9.7全自动洗衣机控制器存储器扩展Proteus仿真 232
习题 237
第10章 单片机应用系统设计 239
10.1单片机应用系统构成 239
10.2单片机应用系统设计方法 241
10.2.1需求分析 241
10.2.2可行性分析 242
10.2.3系统体系结构设计 243
10.2.4硬件设计 244
10.2.5软件设计 246
10.2.6综合调试 248
10.3全自动洗衣机控制器设计 249
10.3.1需求分析 249
10.3.2可行性分析 249
10.3.3系统体系结构设计 249
10.3.4硬件设计 250
10.3.5软件设计 255
10.3.6综合调试 270
习题 270
附录 271
A ASCⅡ表 271
B MCS-51单片机指令系统表 273
C Proteus使用简介 278
C.1电路原理图设计 279
C.2 C语言程序设计 284
C.3 Proteus和Keil联调 289
C.4“流水灯”C语言参考程序 292
C.5汇编语言程序调试 292
C.6“流水灯”汇编语言参考程序 294
参考文献 296