所有分类
  • 所有分类
  • 机械工业
  • 人民邮电
  • 清华大学
  • 电子工业

单片机原理及应用

单片机原理及应用插图

单片机原理及应用封面

策划编辑:时 静
责任编辑:时 静 王 荣 责任校对:张艳霞
责任印制:李 洋
北京振兴源印务有限公司印刷
2016 年 3 月第 1 版·第 1 次印刷
184mm×260mm·21.75 印张·538 千字
0001―3000 册
标准书号:ISBN 978-7-111-52840-1
定价:49.90 元

单片机是将运算器、控制器、存储器和输入、输出接口集成在一块芯片上的单片型微型计算机,广泛应用于家用电器、工业控制和仪器仪表中。MCS-51 单片机因其简单、易学、价格低廉等优点,一经推出就受到广泛欢迎,是目前市场占有率较高的一系列单片机。作者在多年的 MCS-51 单片机教学实践中发现,传统单片机教学汇编语言为主,而汇编语言难度较大、不易掌握,使得部分学生无法有效编写程序来控制单片机硬件,从而影响硬件知识学习的效果。另外,单片机学习离不开硬件操作,而对于单片机初学者而言,搭建一个实际的硬件系统难度和成本均比较高。为解决上述两个问题,本书将 C51 语言程序设计方法和 Proteus 虚拟仿真软件作为重要内容加以介绍。C51 语言语法灵活,便于快速掌握,与汇编语言对照学习可以降低理解单片机程序功能的难度。Proteus 软件可以利用软件模拟单片机及其他元器件,并支持电路原理图级别的单片机系统仿真和调试,能够降低硬件学习的成本和难度。

目 录
前言
第 1 章 绪论 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 1
1.1 微型计算机的发展历史 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 1
1.2 微型计算机的组成 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 2
1.2.1 微型计算机系统的层次关系和体系结构 ………………………………………………………………………………………………………………………………………………………………………………………… 2
1.2.2 微处理器 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 5
1.2.3 存储器 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 6
1.2.4 I/O 接口 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 7
1.3 微型计算机的数制和编码 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 7
1.3.1 数制 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 8
1.3.2 数据在计算机中的表示 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 10
1.3.3 常用编码 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 11
1.4 单片机简介 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 13
1.4.1 单片机的发展和应用 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 13
1.4.2 MCS-51 系列单片机概况 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 13
1.5 小结 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 13
1.6 习题 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 14
第 2 章 MCS-51 单片机的基本结构 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 15
2.1 MCS-51 单片机的体系结构 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 15
2.2 MCS-51 单片机的内部资源 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 16
2.2.1 中央处理器(CPU) …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 17
2.2.2 存储器和寄存器 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 18
2.2.3 常用特殊功能寄存器的功能 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………… 23
2.3 MCS-51 单片机的引脚功能 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 24
2.4 并行 I/O 端口的引脚特性 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 27
2.4.1 P0 口的引脚特性 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 27
2.4.2 P1 口的引脚特性 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 29
2.4.3 P2 口的引脚特性 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 29
2.4.4 P3 口的引脚特性 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 30
2.5 MCS-51/52 单片机的最小系统电路 ……………………………………………………………………………………………………………………………………………………………………………………………………… 31
2.5.1 时钟电路和时钟信号 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 31
2.5.2 复位电路 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 31
2.6 小结 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 33
2.7 习题 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 33
VI
第 3 章 MCS-51 单片机汇编语言程序设计 …………………………………………………………………………………………………………………………………………………………………………………………………………… 35
3.1 汇编语言的伪指令 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 35
3.2 指令格式和相关符号 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 39
3.2.1 指令格式 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 39
3.2.2 指令的分类和指令描述符号 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………… 40
3.3 指令的寻址方式 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 41
3.3.1 立即数寻址 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 41
3.3.2 寄存器寻址 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 41
3.3.3 直接寻址 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 42
3.3.4 寄存器间接寻址 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 42
3.3.5 位寻址 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 42
3.3.6 变址寻址 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 43
3.3.7 相对寻址 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 43
3.4 MCS-51 指令集 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 44
3.4.1 数据传送指令……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 44
3.4.2 算术运算指令……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 51
3.4.3 逻辑运算指令……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 55
3.4.4 移位指令 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 58
3.4.5 控制转移指令……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 58
3.5 汇编语言程序设计 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 65
3.5.1 顺序程序设计……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 65
3.5.2 分支程序设计……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 67
3.5.3 循环程序设计……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 72
3.5.4 子程序设计 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 78
3.6 小结 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 86
3.7 习题 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 86
第 4 章 MCS-51 单片机的内部功能单元 ……………………………………………………………………………………………………………………………………………………………………………………………………………………… 88
4.1 中断系统 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 88
4.1.1 单片机与外部设备的数据传送方式 …………………………………………………………………………………………………………………………………………………………………………………………………… 88
4.1.2 MCS-51 单片机中断系统的功能和结构 ……………………………………………………………………………………………………………………………………………………………………………………… 89
4.2 外部中断 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 95
4.2.1 外部中断的初始化设置 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 95
4.2.2 中断程序设计方法 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 96
4.2.3 外部中断请求的撤除 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 98
4.2.4 外部中断源的扩展 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 98
4.3 定时/计数器 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 100
4.3.1 定时/计数器的基本工作原理 ……………………………………………………………………………………………………………………………………………………………………………………………………………………… 100
4.3.2 与定时/计数器相关的寄存器 ……………………………………………………………………………………………………………………………………………………………………………………………………………………… 101
VII
4.3.3 定时/计数器的工作方式 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 102
4.3.4 定时/计数器的初始化 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 104
4.3.5 定时功能应用举例 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 106
4.3.6 计数功能应用举例 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 109
4.3.7 测高电平时长举例 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 111
4.4 串行通信接口 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 112
4.4.1 串行通信的基础知识 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 113
4.4.2 串行通信的类型 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 114
4.4.3 MCS-51 单片机串口的基本结构 …………………………………………………………………………………………………………………………………………………………………………………………………………… 115
4.4.4 MCS-51 单片机串口的相关特殊功能寄存器 ……………………………………………………………………………………………………………………………………………………………… 115
4.4.5 串口的工作方式 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 118
4.4.6 RS-232C 串行通信接口 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 125
4.4.7 RS-485 串行通信接口 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 127
4.5 小结 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 128
4.6 习题 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 128
第 5 章 MCS-51 单片机的并行扩展 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 130
5.1 MCS-51 单片机的片外并行总线 ……………………………………………………………………………………………………………………………………………………………………………………………………………… 130
5.1.1 总线的作用 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 130
5.1.2 MCS-51 单片机片外总线的构成 …………………………………………………………………………………………………………………………………………………………………………………………………………… 130
5.2 片外存储器的扩展 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 132
5.2.1 片外程序存储器的连接与访问 ………………………………………………………………………………………………………………………………………………………………………………………………………………… 132
5.2.2 片外数据存储器的连接与访问 ………………………………………………………………………………………………………………………………………………………………………………………………………………… 135
5.2.3 单片机访问片外存储空间的时序 ………………………………………………………………………………………………………………………………………………………………………………………………………… 144
5.3 并行 I/O 接口的扩展 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 147
5.3.1 I/O 接口概述 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 147
5.3.2 MCS-51 单片机并行 I/O 口的使用 …………………………………………………………………………………………………………………………………………………………………………………………………… 149
5.3.3 简单并行 I/O 接口的扩展 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 149
5.4 并行接口芯片 8255A 的扩展 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………… 153
5.4.1 8255A 的内部结构和引脚 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 153
5.4.2 8255A 的控制字 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 155
5.4.3 8255A 的工作方式 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 157
5.4.4 应用举例 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 161
5.5 显示器与键盘接口的扩展 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 163
5.5.1 显示器的扩展………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 163
5.5.2 键盘的扩展 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 174
5.6 D-A 和 A-D 接口的扩展 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 185
5.6.1 D-A 转换器的工作原理和性能指标 ……………………………………………………………………………………………………………………………………………………………………………………………… 186
5.6.2 DAC0832 芯片的接口扩展………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 188
VIII
5.6.3 A-D 转换器的工作原理和性能指标 ……………………………………………………………………………………………………………………………………………………………………………………………… 198
5.6.4 ADC0809 芯片的接口扩展………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 201
5.7 小结 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 207
5.8 习题 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 207
第 6 章 常用串行总线接口技术 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 209
6.1 SPI 串行总线 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 209
6.1.1 SPI 总线的引脚功能和时序 …………………………………………………………………………………………………………………………………………………………………………………………………………………………… 209
6.1.2 SPI 总线 A-D 转换芯片 TLC2543 ……………………………………………………………………………………………………………………………………………………………………………………………………… 210
6.1.3 TLC2543 的应用实例 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 213
6.2 I2
C 总线 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 216
6.2.1 I2
C 总线的引脚功能和时序 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………… 217
6.2.2 I2
C 总线日历时钟芯片 PCF8563 …………………………………………………………………………………………………………………………………………………………………………………………………………… 219
6.2.3 PCF8563 的应用实例 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 221
6.3 单总线 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 230
6.3.1 单总线的引脚功能和时序 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 230
6.3.2 DS18B20 的使用方法 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 232
6.3.3 DS18B20 的应用实例 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 234
6.4 小结 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 239
6.5 习题 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 239
第 7 章 Keil μVision4 集成开发环境使用 ……………………………………………………………………………………………………………………………………………………………………………………………………………… 240
7.1 建立 Keil 工程 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 240
7.2 生成源程序文件 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 242
7.3 工程的基本设置 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 243
7.4 程序的运行和调试 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 246
7.4.1 程序的编译和链接 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 247
7.4.2 程序的调试 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 248
7.5 小结 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 255
7.6 习题 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 255
第 8 章 C51 语言程序设计基础 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 256
8.1 计算机程序设计语言概述 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 256
8.2 C51 语言的变量 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 257
8.2.1 变量的数据类型 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 257
8.2.2 变量的存储 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 259
8.3 C51 语言的常量 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 260
8.4 运算符 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 261
8.5 数组 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 263
8.6 C51 语言的基本语句 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 263
8.6.1 条件语句 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 263
IX
8.6.2 开关语句 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 264
8.6.3 循环语句 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 264
8.7 函数 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 265
8.7.1 函数的定义 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 265
8.7.2 函数的调用 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 266
8.8 C51 程序设计实例 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 266
8.8.1 外部中断程序设计 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 266
8.8.2 定时/计数器程序设计 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 267
8.8.3 串行接口程序设计 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 273
8.8.4 并行接口程序设计 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 279
8.8.5 键盘显示器接口程序设计 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 281
8.9 小结 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 299
8.10 习题 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 299
第 9 章 Proteus 虚拟仿真 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 300
9.1 集成环境 ISIS 的使用 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 300
9.1.1 原理图的绘制………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 301
9.1.2 虚拟模型的仿真运行 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 309
9.1.3 基于 ISIS 的汇编语言程序设计 ……………………………………………………………………………………………………………………………………………………………………………………………………………… 313
9.1.4 ISIS 和 Keil 的联机调试 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 315
9.2 虚拟仿真实例 ……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 316
9.2.1 简易音乐演奏系统设计 …………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 316
9.2.2 直流电动机转速 PWM 控制 …………………………………………………………………………………………………………………………………………………………………………………………………………………………… 323
9.3 小结 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 337
9.4 习题 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 337
参考文献 ………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………… 338

0

评论0

请先

显示验证码
没有账号? 注册  忘记密码?

社交账号快速登录

微信扫一扫关注
如已关注,请回复“登录”二字获取验证码