本书详细介绍了美国Atmel公司的AT89S51单片机的硬件结构与工作原理、8051汇编语言指令系统,并从应用设计的角度介绍了AT89S51单片机的各种硬件扩展接口设计、接口驱动程序设计,以及AT89S51单片机应用系统设计,同时给出较多的典型设计案例。另外,本书还对AT89S51单片机应用系统设计中的各种器件加以介绍。
本书配有PPT课件、教学大纲、教学设计、基础实验题目、基础实验指导、思考题及习题答案、模拟试卷及答案、课程设计题目及要求、扩充学习资料等教学资源,用书老师可在人邮教育社区免费下载使用。
本书可作为各类工科院校电子技术、工业自动化、计算机、自动控制、智能仪器仪表、电气工程、机电一体化等专业单片机课程教材,也可供从事单片机应用设计的工程技术人员参考。
1.科学合理的内容体系结构
本书以芯片为基础,以接口设计为主线,以应用系统设计为目的,不仅从原理上对单片机进行分析和介绍,更强调各种接口设计和应用系统设计中的软硬件结合。
2.注重培养学生的动手和创新能力
本书遵循“课堂教学+实验教学+课程设计”的培养体系,把先进的信息技术与手段(电子资源、网络教学平台)融入教学之中。
3.内容实用,紧跟实践
本书中的应用实例大多来自科研工作及教学实践,内容兼具典型性与实用性。
张毅刚 哈尔滨工业大学教授,国家精品课《单片机原理》、国家精品资源共享课《单片机原理》、首批国家精品在线开放课程《单片机原理》、国家级一流本科课程负责人。黑龙江省教学名师奖获得者,教育部全国高校网络培训中心《单片机原理》骨干教师高级研修班特聘主讲教授。主持并获得国家优秀教材二等奖1项,省高等教育教学成果一等奖2项,二等奖2项。获国家教学成果一等奖1项(排名3)。
主编出版普通高等教育国家级“十五”规划教材1本、“十一五” 国家级规划教材2本、“十二五”普通高等教育本科国家级规划教材2本。
主要科研方向为自动化测试技术。参加多项科研项目,获国家科技进步二等奖1项,部委科技进步奖6项。
第 1章 单片机概述 1
1.1 单片机简介 1
1.2 单片机的发展历史 2
1.3 单片机的特点 2
1.4 单片机的应用 3
1.5 单片机的发展趋势 3
1.6 MCS-51系列与AT89S5x系列单片机 4
1.6.1 MCS-51系列单片机 5
1.6.2 8051内核单片机与AT89S5x系列单片机简介 5
思考题及习题 6
第 2章 AT89S51单片机的片内硬件结构 7
2.1 AT89S51单片机的硬件组成 7
2.2 AT89S51的引脚功能 8
2.2.1 电源引脚和时钟引脚 9
2.2.2 控制引脚 9
2.2.3 并行I/O口引脚 10
2.3 AT89S51的CPU 11
2.3.1 运算器 11
2.3.2 控制器 12
2.4 AT89S51单片机存储器的结构 13
2.4.1 程序存储器空间 13
2.4.2 数据存储器空间 14
2.4.3 特殊功能寄存器 15
2.4.4 位地址空间 17
2.5 AT89S51单片机的并行I/O端口 19
2.5.1 P0口 19
2.5.2 P1口 20
2.5.3 P2口 21
2.5.4 P3口 21
2.6 时钟电路与时序 22
2.6.1 时钟电路设计 23
2.6.2 时钟周期、机器周期、指令周期与指令时序 24
2.7 复位操作和复位电路 24
2.7.1 复位操作 24
2.7.2 复位电路设计 25
2.8 AT89S51单片机的最小应用系统 26
思考题及习题 26
第3章 8051指令系统与编程基础 28
3.1 指令系统概述 28
3.2 指令格式 28
3.3 指令系统的寻址方式 29
3.4 8051指令系统分类介绍 31
3.4.1 数据传送类指令 32
3.4.2 算术运算类指令 36
3.4.3 逻辑操作类指令 40
3.4.4 控制转移类指令 43
3.4.5 位操作类指令 45
3.5 8051指令汇总 47
3.6 某些指令的说明 50
3.7 8051汇编语言程序设计基础 52
3.7.1 编程语言概述 52
3.7.2 汇编语言语句和格式 52
3.7.3 伪指令 54
3.7.4 汇编语言源程序的汇编 56
3.8 8051汇编语言程序设计举例 57
3.8.1 子程序的设计 57
3.8.2 查表程序设计 58
3.8.3 分支转移程序设计 60
3.8.4 循环程序设计 62
思考题及习题 63
第4章 AT89S51单片机的中断系统 64
4.1 AT89S51中断技术概述 64
4.2 AT89S51中断系统结构 64
4.2.1 中断请求源 65
4.2.2 中断请求标志寄存器 65
4.3 中断允许与中断优先级的控制 66
4.3.1 中断允许寄存器IE 66
4.3.2 中断优先级寄存器IP 68
4.4 响应中断请求的条件 70
4.5 外部中断的响应时间 71
4.6 外部中断的触发方式选择 71
4.6.1 电平触发方式 71
4.6.2 跳沿触发方式 71
4.7 中断请求的撤销 71
4.8 中断服务子程序的设计 72
思考题及习题 75
第5章 单片机与开关/键盘以及显示器件的接口设计 76
5.1 单片机控制发光二极管的显示 76
5.1.1 单片机与发光二极管的连接 76
5.1.2 单片机I/O端口控制发光二极管的编程 77
5.2 开关状态检测 78
5.3 单片机控制LED数码管的显示 79
5.3.1 LED数码管显示原理 79
5.3.2 LED数码管的显示方式 81
5.3.3 LED数码管静态显示设计 82
5.3.4 LED数码管动态显示设计 83
5.4 单片机控制LED点阵显示器显示 85
5.4.1 LED点阵显示器结构与显示原理 85
5.4.2 控制16×16 LED点阵显示器的设计 86
5.5 单片机控制LCD1602液晶显示器的显示 90
5.5.1 LCD1602液晶显示模块简介 90
5.5.2 单片机控制字符型LCD1602的显示案例 94
5.6 键盘接口设计 97
5.6.1 键盘接口设计应解决的问题 97
5.6.2 独立式键盘的设计 98
5.6.3 矩阵式键盘的设计 101
思考题及习题 104
第6章 AT89S51单片机的定时器/计数器 105
6.1 定时器/计数器的结构 105
6.1.1 工作方式控制寄存器TMOD 106
6.1.2 定时器/计数器控制寄存器TCON 106
6.2 定时器/计数器的4种工作方式 107
6.2.1 方式0 107
6.2.2 方式1 108
6.2.3 方式2 108
6.2.4 方式3 109
6.3 对外部输入的计数信号的要求 111
6.4 定时器/计数器的编程和应用 111
6.4.1 方式1的应用 111
6.4.2 方式2的应用 113
6.4.3 方式3的应用 116
思考题及习题 118
第7章 AT89S51单片机的串行口 119
7.1 串行通信基础 119
7.1.1 并行通信与串行通信 119
7.1.2 同步串行通信与异步串行通信 120
7.1.3 串行通信的传输模式 121
7.1.4 串行通信的错误校验 121
7.2 串行口的结构 122
7.2.1 串行口控制寄存器SCON 122
7.2.2 特殊功能寄存器PCON 124
7.3 串行口的4种工作方式 124
7.3.1 方式0 124
7.3.2 方式1 126
7.3.3 方式2 128
7.3.4 方式3 130
7.4 多机通信 130
7.5 波特率的设置方法 131
7.5.1 波特率的定义 131
7.5.2 定时器T1产生波特率的计算 131
7.6 串行口的应用 133
7.6.1 串行通信接口标准 133
7.6.2 串行通信接口设计需要考虑的问题 136
7.6.3 双机串行通信软件编程 136
思考题及习题 141
第8章 AT89S51单片机外部存储器的并行扩展 142
8.1 系统并行扩展结构 142
8.2 存储器地址空间分配和外部地址锁存器 143
8.2.1 存储器地址空间分配 143
8.2.2 外部地址锁存器 147
8.3 静态RAM的并行扩展 148
8.3.1 常用的静态RAM(SRAM)芯片 148
8.3.2 片外RAM的读写操作时序 149
8.3.3 AT89S51单片机与片外RAM的接口设计与软件编程 151
8.4 片内Flash存储器的编程 153
8.4.1 使用通用编程器的程序写入 154
8.4.2 使用下载线的ISP 155
思考题及习题 155
第9章 单片机系统的并行扩展技术 157
9.1 I/O接口并行扩展 157
9.1.1 扩展的I/O接口的功能 157
9.1.2 I/O端口的编址 158
9.1.3 I/O数据的传送方式 158
9.1.4 I/O接口芯片 159
9.2 AT89S51单片机扩展I/O接口芯片82C55的设计 159
9.2.1 82C55简介 159
9.2.2 工作方式选择控制字及端口PC置位/复位控制字 161
9.2.3 82C55的3种工作方式 162
9.2.4 AT89S51单片机与82C55的接口设计 166
思考题及习题 168
第 10章 单片机系统的串行扩展技术 169
10.1 单总线串行扩展 169
10.1.1 单总线系统的典型应用——DS18B20的温度测量系统 169
10.1.2 单总线DS18B20温度测量系统的设计 172
10.2 SPI总线串行扩展 176
10.3 I2C总线串行扩展 177
10.3.1 I2C总线系统的基本结构 178
10.3.2 I2C总线的数据传送规定 178
10.3.3 AT89S51的I2C总线系统扩展 181
10.3.4 I2C总线数据传送的模拟 182
思考题及习题 184
第 11章 AT89S51单片机与DAC、ADC的接口 185
11.1 单片机扩展DAC概述 185
11.2 单片机扩展并行8位DAC0832的接口设计 186
11.2.1 DAC0832简介 186
11.2.2 AT89S51单片机与DAC0832的接口设计 188
11.3 单片机扩展ADC概述 192
11.4 单片机扩展并行8位ADC0809的接口设计 193
11.4.1 ADC0809简介 193
11.4.2 AT89S51单片机与ADC0809的接口设计 194
思考题及习题 197
第 12章 其他常用的接口设计 198
12.1 步进电机的控制 198
12.1.1 控制步进电机的工作原理 198
12.1.2 控制步进电机的设计案例 199
12.2 直流电机的控制 200
12.2.1 控制直流电机的工作原理 201
12.2.2 控制直流电机的设计案例 201
12.3 基于时钟/日历芯片DS1302的电子钟的接口设计 203
12.3.1 DS1302的工作原理 203
12.3.2 DS1302的应用设计案例 206
思考题及习题 212
第 13章 单片机应用系统的设计 213
13.1 单片机应用系统的设计步骤 213
13.2 单片机应用系统的设计 214
13.2.1 硬件设计应考虑的问题 214
13.2.2 典型的单片机应用系统 215
13.2.3 系统设计中的总线驱动 216
13.2.4 软件设计应考虑的问题 218
13.2.5 软件的总体框架设计 218
思考题及习题 219
参考文献 220