图书简介:
目 录
第1章 单片机概述 1
1.1 单片机的基本概念 1
1.1.1 什么是单片机 1
1.1.2 微控制器(MCU) 2
1.1.3 如何使用单片机 2
1.2 单片机的发展概况 3
1.2.1 单片机的发展历史 3
1.2.2 MCS-51系列单片机的发展 4
1.2.3 现阶段主流单片机系列简介 5
1.3 单片机的应用特点与应用领域 6
1.3.1 单片机的应用特点 6
1.3.2 单片机的应用领域 6
1.4 单片机的发展趋势 7
1.5 如何学好MCS-51系列单片机 9
1.5.1 为什么要学51单片机 9
1.5.2 怎么学51单片机 9
习题 9
第2章 MCS-51单片机的结构和原理 10
2.1 MCS-51单片机的基本组成 10
2.1.1 MCS-51单片机的基本结构 10
2.1.2 MCS-51单片机的封装与信号
引脚 13
2.2 MCS-51单片机的并行I/O端口
结构 15
2.3 MCS-51系列单片机的存储器
结构 18
2.3.1 程序存储器 18
2.3.2 数据存储器 19
2.4 单片机的时钟电路与时序 25
2.4.1 时钟电路 25
2.4.2 时序 26
2.5 MCS-51单片机的工作方式 28
2.5.1 复位 28
2.5.2 程序执行方式 30
2.5.3 单步执行方式 31
2.5.4 低功耗方式 31
2.5.5 EPROM编程和校验方式 33
习题 33
第3章 Keil与Proteus软件的使用 35
3.1 Keil C51软件的介绍及应用示例 35
3.1.1 Keil C51软件的安装及环境
介绍 35
3.1.2 建立Keil C51工程 36
3.1.3 程序输入 39
3.1.4 编译程序 40
3.1.5 程序调试 42
3.2 Proteus介绍及使用示例 49
3.2.1 Proteus 8原理图编辑环境介绍 49
3.2.2 Proteus 8原理图设计方法及
示例 51
3.2.3 Proteus 8程序仿真示例 58
习题 64
第4章 MCS-51单片机汇编语言指令系统
及其编程 65
4.1 指令格式及其符号说明 65
4.1.1 指令格式 65
4.1.2 常用符号说明 66
4.1.3 指令的字节 66
4.2 寻址方式 68
4.2.1 立即寻址 68
4.2.2 直接寻址 68
4.2.3 寄存器寻址 69
4.2.4 寄存器间接寻址 69
4.2.5 变址寻址 70
4.2.6 相对寻址 70
4.2.7 位寻址 71
4.3 MCS-51系列单片机指令系统 71
4.3.1 数据传送类指令 71
4.3.2 算术运算类指令 75
4.3.3 逻辑运算及移位类指令 79
4.3.4 控制转移类指令 82
4.3.5 位操作类指令 87
4.4 MCS-51单片机汇编语言程序
设计 89
4.4.1 汇编语言的伪指令 89
4.4.2 汇编语言程序设计 92
习题 111
第5章 单片机C51程序设计基础 114
5.1 C51数据与运算 114
5.1.1 C51的数据类型 114
5.1.2 C51数据的存储类型 115
5.1.3 8051特殊功能寄存器的C51
定义 116
5.1.4 8051并行接口及位变量的C51
定义 117
5.2 C51运算符、表达式及其规则 118
5.2.1 (复合)赋值运算符 118
5.2.2 算术运算符 119
5.2.3 自增和自减运算符 120
5.2.4 关系运算符 121
5.2.5 逻辑运算符 121
5.2.6 位运算符 121
5.2.7 条件运算符 123
5.2.8 指针和地址运算符 123
5.2.9 优先级和结合性 123
5.3 C51流程控制语句 124
5.3.1 C51程序的基本结构及
流程图 124
5.3.2 选择语句 126
5.3.3 循环语句 128
5.4 C51构造数据类型 131
5.4.1 数组 131
5.4.2 指针 133
5.4.3 结构体 135
5.4.4 共用体 138
5.4.5 枚举 140
5.5 函数 141
5.5.1 函数的定义 142
5.5.2 函数的调用 143
5.5.3 函数的嵌套调用与递归调用 144
5.5.4 中断服务函数 145
5.5.5 指向函数的指针变量 146
5.5.6 局部变量和全局变量 147
5.6 C51的库函数 149
5.6.1 输入/输出流函数库STDIO.H 150
5.6.2 字符串函数库STRING.H 150
5.6.3 标准函数库STDLIB.H及其他
头文件 151
5.7 C51模块化程序设计 152
5.7.1 基本概念 152
5.7.2 模块化程序开发过程 153
习题 153
第6章 单片机内部资源及编程 155
6.1 中断系统 155
6.1.1 中断概述 155
6.1.2 中断源 156
6.1.3 中断控制 157
6.1.4 中断响应过程 160
6.1.5 中断请求的撤除 162
6.1.6 中断程序设计 162
6.1.7 外部中断源的扩展 165
6.2 定时器/计数器 167
6.2.1 定时器/计数器的结构及工作
原理 168
6.2.2 定时器/计数器的控制 169
6.2.3 定时器/计数器的工作方式 170
6.2.4 定时器/计数器的初始化 173
6.2.5 定时器/计数器应用举例 174
6.3 串行通信口 182
6.3.1 数据通信概述 182
6.3.2 单片机的串行通信接口 188
6.3.3 串行通信的工作方式及波特率
设置 190
6.3.4 串行口应用举例 193
习题 203
第7章 单片机的功能扩展 205
7.1 显示器及其接口 205
7.1.1 LED显示器 205
7.1.2 液晶显示器 209
7.2 键盘的输入及接口 211
7.2.1 键盘概要 211
7.2.2 键盘程序设计 212
7.3 D/A转换器的接口与应用 218
7.3.1 DAC的转换原理及分类 218
7.3.2 并行接口DAC 220
7.3.3 串行接口DAC 225
7.4 A/D转换器的接口与应用 227
7.4.1 ADC的转换原理及分类 227
7.4.2 并行接口ADC 228
7.4.3 串行接口ADC 231
习题 234
第8章 单片机系统的扩展 235
8.1 MCS-51单片机最小应用系统 235
8.1.1 MCS-51单片机最小应用系统的
构成 235
8.1.2 系统扩展的内容与方法 236
8.2 存储器的扩展 237
8.2.1 程序存储器的扩展 237
8.2.2 数据存储器的扩展 238
8.2.3 存储器综合扩展 239
8.2.4 闪速存储器及其扩展 240
8.3 输入与输出口的扩展 241
8.3.1 简单的并行I/O接口扩展 242
8.3.2 用8255扩展并行I/O接口 243
8.4 串行口的扩展 248
8.4.1 I2C总线及其接口芯片 248
8.4.2 SPI及其芯片 250
8.4.3 单总线及其接口芯片 252
8.4.4 Microwire串行总线及其接口
芯片 256
习题 258
第9章 单片机应用系统的开发与设计 259
9.1 单片机应用系统的设计 259
9.1.1 总体设计 259
9.1.2 硬件设计 259
9.1.3 软件设计 259
9.1.4 下载调试 260
9.2 单片机应用系统举例 260
9.2.1 步进电动机的驱动 260
9.2.2 超声波测距 263
9.2.3 LED点阵屏显示系统 268
习题 274
参考文献 275
展开
前 言
单片机从出现至今已经有四十多年的历史了,单片机技术也历经了几个发展阶段。目前单片机已渗透到我们生活的各个领域,很难找到没有单片机渗入的领域。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通信与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等都离不开单片机,更不用说全自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科技人才。科技越发达,智能化的东西就越多。
目前,单片机方面的教材有的采用汇编语言讲解辅以设计程序实例,但汇编语言学习起来较难。在实际应用系统开发调试中,特别是开发比较复杂的应用系统时,为了提高开发效率和使程序便于移植,很多采用C语言。C语言不仅学习方便,而且也同汇编语言一样能够对单片机资源进行访问,因而目前大多数院校在开设单片机课程时都引入了C语言。但引入C语言后在选教材时就发现存在两个方面的问题:有些教材注重单片机原理,只使用汇编语言;而另一些教材着重于C语言,一般面向开发,不讲原理或原理性的内容很少,属于高级教程,不适合初学者。能兼顾汇编语言和C语言的教材非常少,而实际使用中需要一本在学习单片机基本原理的同时能兼顾汇编语言和C语言两个方面的教材。在大学阶段多数学生所学习的课程中,只有单片机这门课能接触到汇编语言,所以本门课旨在使学生在了解汇编语言概念的基础上学会单片机的编程。编写本书的目的是想在讲述单片机基本原理的同时能兼顾汇编语言和C语言两个方面,因此在大多数实例中,相同的功能分别用汇编语言和C语言编程实现,使学生能够有选择地掌握一种并认识另一种。同时,为了提高学生的应用设计能力,还介绍了目前单片机接口常用的接口芯片,列举了几个简单的单片机应用系统开发实例。
本书分为9章,第1章主要介绍单片机的发展和应用领域;第2章介绍单片机的结构和原理;第3章介绍Keil与Proteus软件的使用;第4章介绍MCS-51单片机的汇编语言指令系统及其编程;第5章介绍单片机C51程序设计基础;第6章介绍单片机的内部资源及编程,包括中断、定时器/计数器及串行口;第7章介绍单片机的功能扩展,包括显示器、键盘、D/A转换器、A/D转换器等;第8章介绍单片机系统的扩展,包括存储器的扩展、I/O的扩展及串行口的扩展;第9章介绍单片机应用系统的开发与设计。
本书的第2章、第4章前3节、第6章由高惠芳编写;第4章的第4节、第8章由张海峰编写;第1章、第9章和第5章的后3节由胡冀编写;第7章由崔佳冬编写;第3章、第5章的前4节由曾毓编写;学院的很多老师给本书的编写提出了许多宝贵意见,研究生们也为本书插图的绘制付出很多辛劳,在这里向各位表示感谢!
虽然我们全体参编人员已尽心尽力,但限于自身水平,书中不妥之处在所难免,希望各位专家和广大读者不吝指正。另外,书中有些资料来源于网络,使用时间已久,已无法查证作者,如果本书引用了您的观点,请与编者联系,编者将尽快更正参考文献,并对您表示诚挚的感谢。
编 者
2020年5月
展开