图书简介:
第1章 单片机概述 1
1.1 单片机简介 1
1.2 单片机的发展历史 1
1.3 单片机的特点 2
1.4 单片机的应用领域 3
1.5 单片机的发展趋势 3
1.6 MCS-51系列与AT89S5x系列单片机 4
1.6.1 MCS-51系列单片机 4
1.6.2 AT89S5x系列单片机 5
1.7 各种衍生的8051单片机 6
1.7.1 STC系列单片机 6
1.7.2 C8051Fxxx系列单片机 7
1.7.3 AD?C812系列单片机 7
1.7.4 华邦W77系列、W78系列单片机 8
1.8 PIC系列单片机与AVR系列单片机 8
1.8.1 PIC系列单片机 8
1.8.2 AVR系列单片机 9
1.9 其他嵌入式处理器简介 9
1.9.1 DSP 9
1.9.2 嵌入式微处理器 10
思考题及习题1 11
第2章 AT89S51单片机的内部硬件结构 12
2.1 AT89S51单片机的硬件组成 12
2.2 AT89S51单片机的引脚功能 13
2.2.1 电源及时钟引脚 13
2.2.2 控制引脚 13
2.2.3 并行I/O口引脚 14
2.3 AT89S51单片机的CPU 15
2.3.1 运算器 15
2.3.2 控制器 16
2.4 AT89S51单片机存储器的结构 17
2.4.1 程序存储区 17
2.4.2 数据存储区 18
2.4.3 特殊功能寄存器 18
2.4.4 可位寻址区 21
2.5 AT89S51单片机的并行I/O口 22
2.5.1 P0口 22
2.5.2 P1口 24
2.5.3 P2口 24
2.5.4 P3口 25
2.6 时钟电路与时序 25
2.6.1 时钟电路设计 26
2.6.2 机器周期、指令周期与指令时序 27
2.7 复位操作和复位电路 27
2.7.1 复位操作 27
2.7.2 复位电路设计 28
2.8 AT89S51单片机的最小应用系统 28
2.9 看门狗定时器的使用 29
2.10 低功耗节电模式 30
2.10.1 空闲模式 31
2.10.2 掉电模式 31
思考题及习题2 31
第3章 C51编程基础 33
3.1 概述 33
3.1.1 C51语言与8051汇编语言的比较 33
3.1.2 C51语言与标准C语言的比较 33
3.2 C51语言的语法 34
3.2.1 数据类型与存储类型 34
3.2.2 特殊功能寄存器及位变量定义 38
3.2.3 绝对地址访问 40
3.2.4 基本运算 42
3.2.5 分支与循环结构 44
3.2.6 数组 50
3.2.7 指针 52
3.3 C51语言的函数 52
3.3.1 函数的分类 52
3.3.2 函数的调用 54
3.3.3 中断服务函数 54
3.3.4 变量及存储方式 55
3.3.5 宏定义与文件包含 55
3.3.6 库函数 56
思考题及习题3 56
第4章 软件开发工具Keil C51与虚拟仿真工具Proteus 57
4.1 Keil C51 57
4.1.1 Keil C51简介 57
4.1.2 基本操作 57
4.1.3 添加用户源程序文件 59
4.1.4 程序的编译与调试 60
4.1.5 项目的设置 63
4.2 Proteus 65
4.2.1 Proteus功能简介 65
4.2.2 Proteus ISIS的虚拟仿真 65
4.2.3 Proteus的各种虚拟仿真调试工具 71
4.2.4 虚拟设计仿真举例 74
思考题及习题4 79
第5章 单片机的开关、键盘与显示接口设计 80
5.1 用单片机控制LED显示 80
5.1.1 单片机与LED的连接 80
5.1.2 I/O口的编程控制 81
5.2 开关状态检测 84
5.2.1 开关状态检测实例1 84
5.2.2 开关状态检测实例2 85
5.3 用单片机控制LED数码管显示 86
5.3.1 LED数码管的显示原理 86
5.3.2 LED数码管的静态显示与动态显示 88
5.4 用单片机控制LED点阵显示屏显示 91
5.4.1 LED点阵显示屏的结构与显示原理 91
5.4.2 16×16 LED点阵显示屏设计实例 93
5.5 用单片机控制LCD 1602显示 95
5.5.1 LCD 1602简介 95
5.5.2 LCD 1602设计实例 101
5.6 键盘接口设计 104
5.6.1 键盘接口设计需要解决的问题 104
5.6.2 独立式键盘接口设计实例 105
5.6.3 矩阵式键盘接口设计实例 112
5.6.4 非编码键盘扫描方式的选择 115
5.6.5 单片机与HD7279A的接口设计 116
思考题及习题5 118
第6章 中断系统的工作原理及应用 119
6.1 AT89S51单片机中断技术概述 119
6.2 AT89S51单片机中断系统结构 119
6.2.1 中断源 119
6.2.2 中断请求标志寄存器 120
6.3 中断允许控制与中断优先级控制 121
6.3.1 中断允许寄存器IE 121
6.3.2 中断优先级寄存器IP 122
6.4 响应中断请求的条件 123
6.5 外部中断请求的响应时间 124
6.6 外部中断的触发方式选择 124
6.7 中断请求的撤销 125
6.8 中断服务函数 126
6.9 中断系统的应用 127
6.9.1 单一外部中断的应用 127
6.9.2 两个外部中断的应用 128
6.9.3 中断嵌套的应用 130
思考题及习题6 131
第7章 定时/计数器的工作原理及应用 133
7.1 定时/计数器的结构 133
7.1.1 定时/计数器方式控制寄存器TMOD 133
7.1.2 定时/计数器控制寄存器TCON 134
7.2 定时/计数器的4种工作方式 134
7.2.1 方式0 134
7.2.2 方式1 135
7.2.3 方式2 136
7.2.4 方式3 136
7.3 定时/计数器对外部输入信号的要求 138
7.4 定时/计数器的编程和应用 138
7.4.1 用P1口控制8个LED每0.5s点亮一次 138
7.4.2 计数器的应用 139
7.4.3 控制P1.0引脚输出周期为2ms的方波 141
7.4.4 控制P1.7引脚输出频率为1kHz的音频信号 142
7.4.5 制作LED数码管秒表 144
7.4.6 测量脉冲宽度—门控位的应用 146
7.4.7 LCD时钟的设计 148
思考题及习题7 150
第8章 串行口的工作原理及应用 152
8.1 串行通信基础 152
8.1.1 并行通信与串行通信 152
8.1.2 同步通信与异步通信 153
8.1.3 串行通信的传输模式 153
8.1.4 串行通信的错误校验 154
8.2 串行口的结构 154
8.2.1 串行口控制寄存器SCON 155
8.2.2 电源控制寄存器PCON 156
8.3 串行口的4种工作方式 156
8.3.1 方式0 156
8.3.2 方式1 160
8.3.3 方式2 162
8.3.4 方式3 163
8.4 多机通信 163
8.5 波特率的定义方法 164
8.6 串行口的应用 166
8.6.1 RS-232C、RS-422A与RS-485简介 166
8.6.2 方式1的应用设计实例 169
8.6.3 方式2和方式3的应用设计实例 175
8.6.4 多机通信的应用设计实例 178
8.6.5 单片机与PC机串行通信的应用设计实例 184
8.6.6 PC机与多个单片机的串行通信 188
思考题及习题8 189
第9章 单片机系统的并行扩展 190
9.1 系统并行扩展 190
9.1.1 系统并行扩展结构 190
9.1.2 地址空间分配 191
9.1.3 外部地址锁存器 193
9.2 外部RAM的并行扩展 195
9.2.1 常用的静态RAM芯片 195
9.2.2 读/写外部RAM的操作时序 196
9.2.3 并行扩展外部RAM设计实例 197
9.2.4 单片机扩展RAM 6264设计实例 199
9.3 内部Flash存储器的编程 200
9.3.1 使用通用编程器 201
9.3.2 使用ISP下载线 201
9.4 E2PROM的并行扩展 202
9.4.1 并行E2PROM芯片简介 202
9.4.2 单片机扩展2864A设计实例 203
9.5 利用82C55扩展并行I/O口 204
9.5.1 并行I/O口扩展概述 204
9.5.2 82C55简介 205
9.5.3 82C55的三种工作方式 208
9.5.4 单片机与82C55的接口电路设计实例 212
9.6 利用74LSTTL电路扩展并行I/O口 214
9.7 利用单片机的串行口扩展并行I/O口 215
9.7.1 利用74LS165扩展并行输入口设计实例 215
9.7.2 利用74LS164扩展并行输出口设计实例 216
思考题及习题9 218
第10章 单片机系统的串行扩展 219
10.1 单总线串行扩展 219
10.1.1 数字温度传感器DS18B20简介 219
10.1.2 单总线串行扩展DS18B20实现温度测量系统 222
10.2 SPI总线串行扩展 225
10.3 I2C总线串行扩展 226
10.3.1 I2C总线的基本结构 226
10.3.2 I2C总线数据传送的规定 227
10.3.3 单片机的I2C总线扩展结构 230
10.3.4 I2C总线数据传送的模拟 230
10.3.5 利用I2C总线扩展AT24C02的IC卡设计实例 233
思考题及习题10 239
第11章 单片机与D/A转换器、A/D转换器的接口 241
11.1 单片机扩展D/A转换器概述 241
11.2 单片机扩展8位并行D/A转换器 242
11.2.1 DAC0832简介 242
11.2.2 单片机并行扩展DAC0832的程控电压源设计实例 243
11.2.3 波形发生器设计实例 244
11.3 单片机扩展10位串行D/A转换器 249
11.3.1 TLC5615简介 249
11.3.2 单片机扩展TLC5615设计实例 250
11.4 单片机扩展A/D转换器概述 253
11.5 单片机扩展8位并行A/D转换器 254
11.5.1 单片机扩展ADC0809设计实例 256
11.5.2 两路输入的数字电压表设计实例 257
11.6 单片机扩展8位串行A/D转换器 260
11.6.1 TLC549简介 260
11.6.2 单片机扩展TLC549设计实例 262
11.7 单片机扩展12位串行A/D转换器 263
11.7.1 TLC2543简介 263
11.7.2 单片机扩展TLC2543设计实例 265
思考题及习题11 268
第12章 单片机应用系统的设计 270
12.1 单片机应用系统的设计步骤 270
12.2 单片机应用系统设计应当考虑的问题 271
12.2.1 硬件设计时应当考虑的问题 271
12.2.2 典型的单片机应用系统组成 272
12.2.3 系统设计中的总线驱动 273
12.3 单片机应用系统的仿真开发与调试 275
12.4 单片机应用系统设计实例 278
12.4.1 单片机控制步进电机设计实例 278
12.4.2 单片机控制直流电机设计实例 280
12.4.3 频率计设计实例 282
12.4.4 模拟电话拨号设计实例 285
12.4.5 8位竞赛抢答器设计实例 290
12.4.6 基于时钟/日历芯片DS1302的电子钟设计实例 295
思考题及习题12 301
参考文献 303
展开
前 言
本书是普通高等教育“十一五”国家级规划教材,同时也是哈尔滨工业大学“单片机原理”国家精品课程教学成果。自2008年本书第1版出版以来,已印刷多次,被全国几十所院校选为“单片机原理”课程的教材。
由于Intel 8051内核单片机获得的巨大成功,因此其成为国内外公认的8位单片机的标准体系结构,被许多厂家作为基核,推出了各种高集成化的兼容机型,且在世界范围内得到了广泛应用。由于8051单片机结构简单、清晰、易学,是目前单片机初学者最容易掌握的机型,因此以8051内核技术为主导的单片机仍是目前我国多所高校讲授的机型。
美国Atmel公司的AT89S51单片机是目前各种8051内核单片机中最具代表性的机型,本书基于AT89S51单片机,详细介绍其工作原理及应用设计。
本书采用C51语言编程,并融入了先进的虚拟仿真工具Proteus,给出较多的经过验证的Proteus仿真案例。本次修订,反映了由作者负责的“单片机原理”国家精品课程的教学模式与教学方法改革的部分成果及对课程体系结构的改进。
本书在编写时重点考虑了如下问题。
(1)将虚拟仿真工具Proteus应用在单片机课程教学中,使课程的教学模式及传统的设计开发模式发生了革命性的变化,Proteus为学习者提供了一个功能强大的、流动的单片机系统设计虚拟实验室。
(2)传统教学模式存在的弊病是,学生听完课堂讲授,往往得不到软、硬件设计的训练,使得教学与实际设计脱节。本书采用Proteus与Keil C51(以Keil uVision5为例)作为工具,将软、硬件设计与案例设计有机地结合为一体,使学生真正从概念出发,设计出一个能够虚拟运行的应用系统,真正得到软、硬件设计与调试的完整训练,从而达到课程教学的最终目的。把Proteus融入课程教学各环节中,是课程教学深入改革的必然趋势。
(3)本书的编程语言采用C51。为提高读者的编程调试能力,本书从实际使用角度对Proteus及Keil C51进行了介绍,使读者能够尽快掌握这两种工具的使用方法。
本书分为12章,涵盖了单片机应用技术的基本内容。
第1章介绍有关单片机的基本概念,以及目前流行的各类单片机与嵌入式处理器。
第2章介绍AT89S51单片机的内部硬件结构。
第3章介绍C51编程基础。
第4章介绍软件开发工具Keil C51与虚拟仿真工具Proteus的基本功能和使用方法。
第5章介绍单片机的开关、键盘与显示接口设计,为后续各章的案例仿真、观察系统运行的结果、设定运行条件打下基础。
第6章至第8章分别介绍单片机的三类内部硬件资源,即中断系统、定时/计数器、串行口的工作原理及应用案例。
第9章介绍单片机系统的并行扩展。
第10章介绍目前流行的单片机系统串行扩展技术,如单总线、SPI总线、I2C总线等,其中重点对I2C总线进行了详细介绍,并给出了应用案例。
第11章介绍单片机与D/A转换器、A/D转换器的接口设计。
第12章介绍单片机应用系统的设计,并给出应用设计案例,供读者参考借鉴。
此外,扫描二维码可获取:紧密结合课程内容的基础实验和课程设计内容,用于实验教学和课程设计环节;头文件LCD1602.h和DS1302.h的清单。
全书参考学时为30~60学时,教师可根据实际情况,对讲授内容进行取舍或补充。
本书由哈尔滨工业大学张毅刚教授担任主编,负责完成全书整体架构、目录确定及全书的统稿工作,此外还完成了第1、2、3、5章的编写。刘大同完成了第4、6、7、9、12章的编写,孟升卫完成了第8、10、11章及基础实验(见二维码)的编写。
本书提供教学大纲、PPT课件和习题参考答案等教学资源,任课教师可登录华信教育资源网(www.hxedu.com.cn)免费注册下载。
在本书出版之际,特别感谢广州风标电子有限公司总经理匡载华先生为本书的编写出版给予的大力支持和帮助,感谢广州风标电子有限公司提供的有关技术资料、网络版Proteus仿真实验平台及配套的F型模块化实验装置。
由于作者学识有限,书中的错误及疏漏之处敬请读者批评指正。
主编 于哈尔滨工业大学
展开