内容提要 《单片机原理及接口技术(C51编程)》详细介绍了美国ATMEL公司的AT89S51单片机的硬件结构和片内外围部件的工作原理,Keil C51编程基础知识,并从应用设计的角度介绍AT89S51单片机的各种常用的硬件接口设计,以及相应的Keil C51接口驱动程序设计。本书最后介绍了AT89S51单片机应用系统设计以及一些典型应用举例。
《单片机原理及接口技术(C51编程)》可作为各类工科院校、职业技术学院电子技术、计算机、工业自动化、自动控制、智能仪器仪表、电气工程、机电一体化等专业单片机课程教材,也可供从事单片机应用设计的工程技术人员参考。
作者信息 张毅刚 哈尔滨工业大学教授,国家精品课程“单片机原理”负责人,黑龙江省教学名师,教育部全国高校教师网络培训“单片机原理”课程特聘主讲教授。长期从事“单片机原理及应用”、“计算机自动测试”等课程的教学工作,编著并出版国家级“十五”规划教材一本、国家级“十一五”规划教材两本,全国工科电子类统编教材一本。主要研究方向为微控制器技术应用、虚拟仪器技术、电子测量等。参加并完成多项科研项目,获国家科技进步二等奖1项,部委科技进步奖多项。
目 录第1章 单片机概述 1
1.1 什么是单片机 1
1.2 单片机的发展历史 2
1.3 单片机的特点 2
1.4 单片机的应用 3
1.5 单片机的发展趋势 4
1.6 MCS-51系列与AT89S5x系列单片机 5
1.6.1 MCS-51系列单片机 5
1.6.2 AT89系列单片机 6
1.6.3 AT89系列单片机的型号说明 7
1.7 各种衍生品种的51单片机 8
1.7.1 STC系列单片机 9
1.7.2 C8051F×××单片机 10
1.7.3 ADμC812单片机 10
1.7.4 华邦W77系列、W78系列单片机 10
1.8 PIC系列单片机与AVR系列单片机 10
1.8.1 PIC系列单片机 11
1.8.2 AVR系列单片机 12
1.9 其他的嵌入式处理器简介 12
1.9.1 嵌入式DSP处理器 13
1.9.2 嵌入式微处理器 13
思考题及习题 14
第2章 AT89S51单片机硬件结构 15
2.1 AT89S51单片机的硬件组成 15
2.2 AT89S51的引脚功能 17
2.2.1 电源及时钟引脚 17
2.2.2 控制引脚 18
2.2.3 并行I/O口引脚 18
2.3 AT89S51的CPU 19
2.3.1 运算器 19
2.3.2 控制器 21
2.4 AT89S51单片机存储器的结构 21
2.4.1 程序存储器空间 22
2.4.2 数据存储器空间 23
2.4.3 特殊功能寄存器 23
2.4.4 位地址空间 26
2.5 AT89S51单片机的并行I/O端口 27
2.6 时钟电路与时序 29
2.6.1 时钟电路设计 29
2.6.2 机器周期、指令周期与指令时序 30
2.7 复位操作和复位电路 31
2.7.1 复位操作 31
2.7.2 复位电路设计 31
2.8 低功耗节电模式 33
2.8.1 空闲模式 33
2.8.2 掉电运行模式 34
2.8.3 掉电和空闲模式下的WDT 34
思考题及习题 35
第3章 C51语言编程基础 37
3.1 编程语言Keil C51简介 37
3.1.1 Keil C51简介 37
3.1.2 C51与标准C的比较 38
3.2 Keil C51的开发工具 39
3.2.1 集成开发环境Keil μVision3简介 39
3.2.2 Keil μVision3软件的安装、启动和运行 40
3.3 C51语言程序设计基础 40
3.3.1 C51语言中的数据类型与存储类型 41
3.3.2 C51语言的特殊功能寄存器及位变量定义 45
3.3.3 C51语言的绝对地址访问 47
3.3.4 C51的基本运算 48
3.3.5 C51的分支与循环程序结构 50
3.3.6 C51的数组 57
3.3.7 C51的指针 58
3.4 C51语言的函数 60
3.4.1 函数的分类 60
3.4.2 函数的参数与返回值 61
3.4.3 函数的调用 62
3.4.4 中断服务函数 63
3.4.5 变量及存储方式 63
3.4.6 宏定义与文件包含 64
3.4.7 库函数 65
3.5 软件仿真开发工具Proteus与Keil μVision3的联调 65
3.5.1 软件仿真开发工具Proteus简介 65
3.5.2 Proteus与Keil μVision3的联调 66
思考题及习题 67
第4章 AT89S51片内并行端口的原理及编程 68
4.1 AT89S51的并行I/O端口的结构及工作原理 68
4.1.1 P0口 68
4.1.2 P1口 70
4.1.3 P2口 70
4.1.4 P3口 71
4.1.5 P1~P3口驱动LED发光二极管的问题 72
4.2 并行I/O端口的C51编程举例 73
4.2.1 从左到右的流水灯的制作 73
4.2.2 左右来回循环的流水灯的制作 73
4.2.3 开关量检测指示器1 76
4.2.4 开关量检测指示器2 76
思考题及习题 77
第5章 AT89S51单片机的中断系统 79
5.1 AT89S51中断技术概述 79
5.2 AT89S51中断系统结构 79
5.2.1 中断请求源 80
5.2.2 中断请求标志寄存器 80
5.3 中断允许与中断优先级的控制 81
5.3.1 中断允许寄存器IE 82
5.3.2 中断优先级寄存器IP 82
5.4 响应中断请求的条件 84
5.5 外部中断的响应时间 85
5.6 外部中断的触发方式选择 86
5.6.1 电平触发方式 86
5.6.2 跳沿触发方式 86
5.7 中断请求的撤销 86
5.8 中断函数 87
5.9 C51编程举例 88
5.9.1 单一外中断的应用 88
5.9.2 两个外中断的应用 89
5.9.3 中断嵌套 91
5.9.4 多外部中断源系统设计 92
思考题及习题 93
第6章 AT89S51单片机的定时器/计数器 95
6.1 定时器/计数器的结构 95
6.1.1 工作方式控制寄存器TMOD 96
6.1.2 定时器/计数器控制寄存器TCON 96
6.2 定时器/计数器的4种工作方式 97
6.2.1 方式0 97
6.2.2 方式1 98
6.2.3 方式2 98
6.2.4 方式3 99
6.3 对外部输入的计数信号的要求 100
6.4 定时器/计数器的编程和应用 101
6.4.1 P1口外接的8只LED每0.5s闪亮一次 101
6.4.2 计数器的应用 102
6.4.3 扩展一个外部中断源 103
6.4.4 P1.0上产生周期为2ms的方波 104
6.4.5 P1.1上产生周期为1s的方波 104
6.4.6 T1控制发出1kHz的音频信号 105
6.4.7 测量脉冲宽度——门控位GATEx的应用 106
6.4.8 实时时钟的设计 107
思考题及习题 108
第7章 AT89S51单片机的串行口 110
7.1 串行口的结构 110
7.1.1 串行口控制寄存器SCON 110
7.1.2 特殊功能寄存器PCON 112
7.2 串行口的4种工作方式 112
7.2.1 方式0 112
7.2.2 方式1 116
7.2.3 方式2 117
7.2.4 方式3 118
7.3 多机通信 119
7.4 波特率的制定方法 120
7.4.1 波特率的定义 120
7.4.2 定时器T1产生波特率的计算 120
7.5 串行通信的应用设计 122
7.5.1 各种串行通信接口标准 122
7.5.2 方式1的应用 124
7.5.3 方式2和方式3的应用 127
7.5.4 主从式多机通信的应用 129
7.5.5 单片机与PC的串行通信 133
7.5.6 PC与单片机或与多个单片机的串行通信接口设计 135
思考题及习题 136
第8章 AT89S51单片机外部存储器的扩展 138
8.1 系统扩展结构 138
8.2 地址空间分配和外部地址锁存器 139
8.2.1 存储器地址空间分配 139
8.2.2 外部地址锁存器 142
8.3 程序存储器EPROM的扩展 144
8.3.1 常用的EPROM芯片 144
8.3.2 程序存储器的操作时序 146
8.3.3 AT89S51单片机与EPROM的接口电路设计 148
8.4 静态数据存储器RAM的扩展 149
8.4.1 常用的静态RAM(SRAM)芯片 149
8.4.2 外扩数据存储器的读写操作时序 150
8.4.3 AT89S51单片机与RAM的接口电路设计 151
8.5 EPROM和RAM的综合扩展 153
8.5.1 综合扩展的硬件接口电路 153
8.5.2 外扩存储器电路的编程 155
8.6 片内Flash存储器的编程 155
8.6.1 通用编程器编程 157
8.6.2 ISP编程 157
思考题及习题 158
第9章 AT89S51单片机的I/O扩展 160
9.1 I/O接口扩展概述 160
9.1.1 扩展的I/O接口功能 160
9.1.2 I/O端口的编址 160
9.1.3 I/O数据的传送方式 161
9.1.4 I/O接口电路 161
9.2 AT89S51扩展I/O接口芯片82C55的设计 162
9.2.1 82C55芯片简介 162
9.2.2 工作方式选择控制字及端口PC置位/复位控制字 163
9.2.3 82C55的3种工作方式 165
9.2.4 AT89S51单片机与82C55的接口设计 169
9.3 利用74LSTTL电路扩展并行I/O口 171
9.4 用AT89S51单片机的串行口扩展并行口 172
9.4.1 用74LS165扩展并行输入口 172
9.4.2 用74LS164扩展并行输出口 173
9.5 用I/O口控制的声音报警接口 174
9.5.1 扬声器报警接口 174
9.5.2 音乐报警接口 176
思考题及习题 176
第10章 AT89S51单片机与输入/输出外设的接口 178
10.1 LED数码管显示器的接口设计 178
10.1.1 LED数码管的工作原理 178
10.1.2 LED数码管显示器接口设计举例 179
10.2 键盘的接口设计 183
10.2.1 键盘接口应解决的问题 183
10.2.2 键盘接口设计举例 184
10.2.3 键盘扫描方式的选取 188
10.3 键盘/显示器接口的设计实例 188
10.3.1 利用并行I/O芯片82C55实现键盘/显示器接口 188
10.3.2 利用串行口实现的键盘/显示器接口 191
10.3.3 专用接口芯片HD7279实现的键盘/显示器控制 193
10.4 AT89S51单片机与液晶显示器的接口 204
10.4.1 LCD显示器的分类 204
10.4.2 点阵字符型液晶显示模块介绍 204
10.4.3 AT89S51单片机与LCD的接口及软件编程 208
10.5 AT89S51单片机与微型打印机TP(P-40A/16A的接口 211
10.6 AT89S51单片机与BCD码拨盘的接口设计 215
思考题及习题 216
第11章 AT89S51单片机与D/A、A/D转换器的接口 217
11.1 AT89S51单片机与DAC的接口 217
11.1.1 D/A转换器简介 217
11.1.2 AT89S51单片机与8位D/A转换器0832的接口设计 218
11.2 AT89S51单片机与ADC的接口 225
11.2.1 A/D转换器简介 225
11.2.2 AT89S51与逐次比较型8位A/D转换器ADC0809的接口 226
11.2.3 AT89S51与逐次比较型12位A/D转换器AD1674的接口 230
11.3 AT89S51单片机与V/F转换器的接口 234
11.3.1 用V/F转换器实现A/D转换的原理 235
11.3.2 常用V/F转换器LMX31简介 235
11.3.3 V/F转换器与MCS-51单片机接口 236
11.3.4 LM331应用举例 237
思考题及习题 238
第12章 单片机的串行扩展技术 239
12.1 单总线串行扩展 239
12.2 SPI总线串行扩展 240
12.2.1 SPI总线的扩展结构 241
12.2.2 扩展带SPI串口的A/D转换器TLC2543 242
12.3 I2C总线的串行扩展 243
12.3.1 I2C串行总线系统的基本结构 244
12.3.2 I2C总线的数据传送规定 244
12.3.3 AT89S51的I2C总线扩展系统 247
12.3.4 I2C总线数据传送的模拟 248
12.3.5 I2C总线在IC卡中的应用 251
思考题及习题 255
第13章 AT89S51单片机的应用设计与调试 256
13.1 单片机应用系统的设计步骤 256
13.2 单片机应用系统设计 257
13.2.1 硬件设计应考虑的问题 257
13.2.2 典型的单片机应用系统 258
13.2.3 系统设计中的地址空间分配与总线驱动 259
13.2.4 应用设计例1——最小应用系统设计 261
13.2.5 应用设计例2——数字电压表的设计 262
13.2.6 应用设计例3——带有报警功能的温度测量仪的设计 264
13.3 单片机应用系统的仿真开发与调试 266
13.3.1 仿真开发系统的种类与基本功能 267
13.3.2 仿真开发系统简介 267
13.3.3 用户样机的仿真调试 270
13.4 单片机应用系统的抗干扰与可靠性设计 272
13.4.1 AT89S51片内看门狗定时器的使用 273
13.4.2 软件滤波 273
13.4.3 开关量输入/输出软件抗干扰设计 274
13.4.4 过程通道干扰的抑制措施——隔离 275
13.4.5 印刷电路板抗干扰布线的基本原则 276
思考题及习题 278
参考文献 280
PDF下载:
单片机原理及接口技术
|