单片机原理与应用设计(C51编程+Proteus仿真)(第4版)
定 价:59.8 元 本教材已被 3 所学校申请过!
丛书名:
抱歉,电子工业出版社不参与样书赠送活动!
- 作者:张毅刚
- 出版时间:2025/1/1
- ISBN:9787121492082
- 出 版 社:电子工业出版社
适用读者:本书可作为各类工科高等学校和职业技术学院电气工程、电子电气信息技术、智能仪器仪表、机电一体化、计算机、自动化等专业单片机原理与应用课程的教材,也可供从事单片机应用设计的工程技术人员参考。
- 中图法分类:TP368.1
- 页码:312
- 纸张:
- 版次:01
- 开本:16开
- 字数:512(单位:千字)
本书是普通高等教育“十一五”国家级规划教材和国家精品课程教学成果。本书详细介绍美国Atmel公司的AT89S51单片机的内部硬件资源及工作原理,采用C51语言编程,以虚拟仿真工具Proteus作为设计与开发工具,同时还简要介绍了Keil C51(以Keil uVision5为例)的使用方法。本书从应用角度出发,重点介绍单片机应用的各种技术实现,如信息的输入与显示、中断、定时/计数、串行通信、系统的并行/串行扩展、模数与数模转换、单片机应用系统设计等,并且给出较多虚拟仿真设计实例。扫描前言中的二维码可获取基础实验和课程设计内容,以及头文件清单。本书提供电子课件和习题参考答案,登录华信教育资源网(www.hxedu.com.cn)注册后即可免费下载。 本书可作为各类工科高等学校和职业技术学院电气工程、电子电气信息技术、智能仪器仪表、机电一体化、计算机、自动化等专业单片机原理与应用课程的教材,也可供从事单片机应用设计的工程技术人员参考。
张毅刚,教授,哈尔滨工业大学电气工程及自动化学院教学带头人,省教学名师。中国高等教育学会仪器科学及测控技术专业委员会委员、中国仪器仪表学会高级会员、中国电子学会高级会员。国家精品课程《单片机原理》课程负责人,黑龙江省普通高等学校教学名师奖,宝钢优秀教师奖。省部级科技进步一等奖1项,二等奖3项,三等奖2项。
第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