第1讲 单片机基础知识 1
1.1单片机概述 1
1.1.1有关单片机的几个概念 1
1.1.2单片机的发展历史 2
1.1.3单片机的基本组成与特点 3
1.1.4单片机的应用 7
1.1.5单片机的发展趋势 8
1.2单片机中的预备知识 8
1.2.1数制及其转换 9
1.2.2计算机中的常用编码 11
1.2.3计算机中的运算 14
1.3习题 17
第2讲 MCS-51单片机结构与原理 18
2.1MCS-51单片机的类型与结构 18
2.1.1 MCS-51单片机的基本类型 18
2.1.2 MCS-51单片机的基本结构 20
2.1.3 MCS-51单片机的封装与引脚 24
2.2 MCS-51单片机存储器 27
2.2.1单片机存储器组织结构 27
2.2.2程序存储器 28
2.2.3片外数据存储器 28
2.2.4片内数据存储器 29
2.2.5特殊功能寄存器 30
2.3 MCS-51单片机并行I/O口 31
2.3.1 P0口 31
2.3.2 P1口 32
2.3.3 P2口 33
2.3.4 P3口 33
2.3.5并行口数据的读取 34
2.4 MCS-51单片机时序 35
2.4.1时钟信号的产生 35
2.4.2时序定时单位 36
2.4.3单片机基本指令时序 37
2.5 MCS-51单片机工作方式 38
2.5.1复位方式 38
2.5.2程序执行方式 39
2.5.3节电方式 40
2.6习题 41
第3讲 MCS-51单片机汇编指令系统 42
3.1实例·模仿——数据运算与转移 42
3.2 MCS-51单片机汇编指令概述 42
3.2.1指令与指令系统 43
3.2.2 51单片机汇编指令 43
3.2.3 51汇编指令格式及常用符号解释 44
3.3 7种寻址方式 45
3.3.1寄存器寻址 45
3.3.2寄存器间接寻址 45
3.3.3立即寻址 46
3.3.4直接寻址 46
3.3.5变址寻址 47
3.3.6相对寻址 47
3.3.7位寻址 48
3.4 51单片机指令系统 48
3.4.1数据传送指令(29条) 48
3.4.2算术运算指令(24条) 53
3.4.3逻辑运算指令 56
3.4.4移位指令 59
3.4.5控制转移指令(17条) 59
3.4.6位操作指令 63
3.5实例·操作——BCD加减法实现 64
3.6实例·练习——条件转移指令的使用 65
3.7习题 66
第4讲 汇编程序设计 68
4.1实例·模仿——寄存器数据交换 68
4.2汇编语言格式 68
4.3常用伪指令 70
4.4汇编程序的结构及常用子程序设计 73
4.4.1顺序结构 73
4.4.2分支结构 74
4.4.3循环结构 75
4.4.4子程序结构 76
4.4.5查表程序 77
4.4.6延时程序 78
4.5实例·操作——数据排列和计数 78
4.6实例·练习——并串行数据转换 80
4.7习题 81
第5讲 51单片机C语言程序设计 82
5.1实例·模仿——数值的循环累加 82
5.2 51单片机C语言编程概述 83
5.2.1 C语言特点 83
5.2.2 51单片机的C语言编程 84
5.2.3 C51与标准C语言编程的异同 84
5.3 C51的基本语法 85
5.3.1基本数据类型 85
5.3.2常量与变量 86
5.3.3 C51存储模式和地址访问 90
5.3.4运算符及表达式 91
5.4指针和数组 94
5.4.1指针 94
5.4.2数组 95
5.5 C51常用的编程控制语句 96
5.5.1选择控制语句 96
5.5.2循环控制语句 100
5.6函数 101
5.7实例·操作——多种结构类型程序设计 103
5.8实例·练习——数值判断及数学运算 107
5.9习题 109
第6讲 单片机应用系统开发 111
6.1实例·模仿——keil及proteus使用 111
6.2单片机系统开发工具与过程 113
6.2.1单片机的开发环境 113
6.2.2单片机的开发过程 114
6.3 Keil仿真软件 114
6.3.1 keil软件简介 115
6.3.2工程创建 115
6.3.3添加程序代码 117
6.3.4代码编译及调试 118
6.4 proteus仿真软件 120
6.4.1 proteus软件简介 120
6.4.2利用proteus绘制电路图 120
6.4.3 proteus仿真 123
6.4.4 keil和proteus联调 124
6.5实例·操作——并行口的读写 126
6.6实例·练习——跑马灯程序 128
6.7习题 131
第7讲 MCS-51单片机中断系统 132
7.1实例·模仿——中断的使用 132
7.2中断的概念 135
7.2.1输入/输出数据传送方式 135
7.2.2中断的定义 136
7.3 MCS-51中断控制系统 136
7.3.1中断系统结构 136
7.3.2中断源 137
7.3.3中断控制寄存器 138
7.3.4中断优先级结构和中断嵌套 140
7.4 MCS-51中断过程 142
7.4.1中断响应条件 142
7.4.2中断处理过程 143
7.4.3中断响应时间 144
7.4.4中断响应撤销 145
7.5 MCS-51单片机外部中断源的扩展 146
7.5.1定时/计数器溢出扩展法 146
7.5.2硬件申请软件查询扩展法 147
7.6实例·操作——中断扩展 148
7.7实例·练习——跑马灯的中断控制 152
7.8习题 155
第8讲 MCS-51单片机定时/计数器 157
8.1实例·模仿——定时器的使用 157
8.2定时/计数器工作原理 160
8.3定时/计数器控制 161
8.3.1工作模式寄存器TMOD (89H) 161
8.3.2控制寄存器TCON 162
8.4定时/计数器工作方式 163
8.4.1工作方式0 163
8.4.2工作方式1 164
8.4.3工作方式2 164
8.4.4工作方式3 165
8.5定时/计数器的初始化 166
8.5.1初始化的步骤 166
8.5.2计数器初值的计算 166
8.5.3定时器初值的计算 167
8.6实例·操作——方式2的应用 167
8.7实例·练习——定时时间的扩展 169
8.8习题 176
第9讲 单片机存储器与并行口的扩展 177
9.1实例·模仿——8031最小系统实现 177
9.2系统扩展概述 178
9.2.1单片机最小系统 178
9.2.2片外三总线结构 179
9.2.3系统扩展的几个方面 180
9.2.4几种常用的扩展器件介绍 180
9.3存储器扩展 182
9.3.1单片机存储器扩展概述 182
9.3.2程序存储器的扩展 183
9.3.3数据存储器的扩展 187
9.4并行I/O口的扩展 189
9.4.1并行口扩展概述 189
9.4.2 TTL芯片扩展I/O口 190
9.4.3 8255芯片扩展I/O口 192
9.4.4 8155芯片扩展I/O口 199
9.5实例·操作——存储器的扩展 202
9.6实例·练习——8255的扩展 203
9.7习题 205
第10讲 单片机串行接口与通信 206
10.1实例·模仿——串行口I/O扩展 206
10.2串行通信基础知识 209
10.2.1两种基本通信方式 209
10.2.2串行通信制式 209
10.2.3串行通信两种基本方式 210
10.2.4串行通信基本电路 212
10.3 51单片机串口通信原理 215
10.3.1 51单片机串口电路 215
10.3.2串口控制寄存器(SCON和PCON) 216
10.4串行口的工作方式 217
10.4.1方式0 217
10.4.2方式1 218
10.4.3方式2和方式3 218
10.5波特率的指定 219
10.6异步串行通信接口电路 220
10.6.1 TTL电平直接传输 221
10.6.2 RS232接口传输 221
10.6.3 RS422和RS485接口 223
10.7单片机多机通信 224
10.8实例·操作——串行通信实现 225
10.9实例·练习——多机通信 229
10.10习题 236
第11讲 MCS-51单片机接口技术 238
11.1实例·模仿——LED显示器的使用 238
11.2单片机与显示器接口技术 242
11.2.1常用显示器功能概述 243
11.2.2 7段LED显示器的工作方法 245
11.2.3 LCD显示器的工作方法 248
11.3单片机与键盘接口技术 251
11.3.1按键状态的输入与检测 251
11.3.2独立式键盘 253
11.3.3矩阵式键盘 254
11.4单片机与D/A转换器接口技术 255
11.4.1 D/A转换技术概述 256
11.4.2 DAC0832基本结构 256
11.4.3 DAC0832与单片机接口 258
11.5单片机与A/D转换器接口技术 260
11.5.1 A/D转换技术概述 260
11.5.2 ADC0809基本结构 260
11.5.3 ADC0809与单片机接口 262
11.6实例·操作——LCD及数据采集 263
11.7实例·练习——数据采集系统 268
11.8习题 272
第12讲 综合实例 274
12.1步进电机控制 274
12.1.1步进电机的工作原理 274
12.1.2 51单片机的步进电机控制 275
12.2键盘输入和LCD显示 286
附录A 51单片机指令表 299
附录B 习题答案 303