《单片机原理与套用(C51语言版)》是2019年电子工业出版社出版的图书,作者是欧伟明等。
基本介绍
- 书名:单片机原理与套用(C51语言版)
- 作者:欧伟明 等
- ISBN:9787121361258
- 页数:348页
- 出版社:电子工业出版社
- 出版时间:2019-04
- 开本:16开
- 字数:556千字
内容简介
本书以89S51 为典型机,主要论述单片机的基本结构与工作原理,以及单片机套用系统的设计与开发方法。全书内容分为13 章,内容包括概述、单片机的结构和工作原理、指令系统、单片机C51 语言程式设计基础、中断系统、定时器/计数器、单片机的串列口UART、单片机常用并行接口技术、串列汇流排接口技术、单片机套用系统开发环境、基于嵌入式实时作业系统的单片机程式设计方法、基于RTX51的乐曲编辑器和发生器设计、数控电流源设计。书后附录给出了18 个单片机课程设计课题,以及单片机89S51 的指令系统。本书从工程套用出发,突出单片机套用技术的新颖性和实用性;此外,本书为任课教师免费提供电子课件。
图书目录
第1章 概述 1
1.1 单片机概念与发展过程 1
1.1.1 单片机概念 1
1.1.2 单片机技术发展过程 1
1.1.3 单片机技术发展方向 3
1.1.4 常用数制与编码 4
1.2 单片机套用领域与嵌入式系统概念 5
1.2.1 单片机套用领域 6
1.2.2 嵌入式系统概念 6
1.3 单片机套用系统开发过程简述 8
1.3.1 单片机程式语言 8
1.3.2 单片机套用系统结构 9
1.3.3 单片机套用模式 10
1.3.4 单片机套用系统开发过程简介 11
1.4 本书特点与教材使用建议 12
1.4.1 本书编写指导思想 13
1.4.2 本书特点 15
1.4.3 教材使用建议 16
1.5 本章小结 18
1.6 思考题与习题 19
第2章 单片机的结构和工作原理 20
2.1 MCS-51系列单片机概述 20
2.2 89S51单片机引脚功能说明 21
2.2.1 89S51的引脚图与封装 21
2.2.2 89S51的引脚功能说明 22
2.2.3 89S51的引脚套用特性 23
2.3 89S51单片机内部结构 24
2.3.1 89S51的基本组成 24
2.3.2 89S51的CPU 26
2.4 89S51单片机的存储器 28
2.4.1 程式存储器 29
2.4.2 数据存储器 29
2.5 89S51单片机的时钟电路与时序 32
2.5.1 时钟电路 32
2.5.2 基本时序单位 33
2.6 89S51单片机的工作方式 35
2.6.1 复位工作方式和复位电路 35
2.6.2 低功耗工作方式 36
2.6.3 串列ISP编程方式 37
2.7 89S51单片机的输入/输出连线埠 38
2.7.1 P0连线埠 38
2.7.2 P1连线埠 39
2.7.3 P2连线埠 40
2.7.4 P3连线埠 40
2.8 本章小结 41
2.9 思考题与习题 42
第3章 指令系统* 43
3.1 MCS-51单片机指令概述 43
3.1.1 指令格式 43
3.1.2 符号说明 44
3.2 定址方式 45
3.2.1 暂存器定址方式 45
3.2.2 直接定址方式 45
3.2.3 暂存器间接定址方式 46
3.2.4 立即定址方式 46
3.2.5 变址定址方式 46
3.2.6 相对定址方式 47
3.2.7 位定址方式 47
3.3 89S51单片机的指令系统 47
3.3.1 数据传送类指令 47
3.3.2 算术运算类指令 50
3.3.3 逻辑运算及移位类指令 53
3.3.4 控制转移类指令 54
3.3.5 位操作类指令 56
3.4 单片机彙编语言简介 58
3.4.1 彙编语言的语句格式 58
3.4.2 伪指令 59
3.4.3 单片机彙编语言程式设计 60
3.5 本章小结 63
3.6 思考题与习题 63
第4章 单片机C51语言程式设计基础 65
4.1 单片机C51语言概述 65
4.1.1 C51语言在单片机套用系统开发中的优势 65
4.1.2 C51语言与标準C语言的比较 65
4.1.3 编写C51语言程式的基本原则 66
4.2 C51语言关键字与数据类型 67
4.2.1 标识符 67
4.2.2 关键字 68
4.2.3 数据类型 69
4.3 C51语言数据 71
4.3.1 常量 71
4.3.2 变数 72
4.3.3 存储器类型和存储器模式 72
4.3.4 数组 74
4.3.5 指针 75
4.4 C51语言对单片机硬体资源的控制 76
4.4.1 特殊功能暂存器(SFR)的定义 76
4.4.2 位变数的定义 77
4.4.3 存储器和外接I/O连线埠的绝对地址访问 78
4.5 C51语言运算符和表达式 79
4.5.1 运算符 79
4.5.2 表达式 81
4.6 C51语言流程控制语句 81
4.6.1 语句的概念和分类 81
4.6.2 判断分支(if、switch语句) 82
4.6.3 循环控制(for、while语句) 84
4.6.4 break、continue、return、goto语句 85
4.7 C51语言函式 86
4.7.1 函式的定义 87
4.7.2 函式的调用 88
4.7.3 C51语言中断函式 89
4.8 C51语言预处理命令 90
4.8.1 档案包含 90
4.8.2 宏定义 90
4.8.3 条件编译 91
4.9 C51语言与彙编语言混合编程方法 91
4.9.1 C51语言程式嵌入彙编语句 92
4.9.2 C51语言程式调用彙编语言子程式 93
4.10 本章小结 94
4.11 思考题与习题 95
第5章 中断系统 96
5.1 中断 96
5.1.1 中断的概念 96
5.1.2 中断的条件和中断回响过程 97
5.2 89S51中断系统结构与控制 98
5.2.1 89S51的中断源和中断入口地址 98
5.2.2 89S51的中断系统结构 99
5.2.3 中断控制 100
5.3 中断套用举例 105
5.3.1 单外部中断源系统的设计 105
5.3.2 多外部中断源系统的设计 106
5.4 本章小结 107
5.5 思考题与习题 108
第6章 定时器/计数器 109
6.1 定时器/计数器的结构与控制 109
6.1.1 89S51定时器/计数器的结构 109
6.1.2 定时器/计数器的控制 110
6.2 定时器/计数器的4种工作方式 111
6.2.1 工作方式1 111
6.2.2 工作方式2 112
6.2.3 工作方式3 113
6.2.4 工作方式0 115
6.3 定时器/计数器的套用举例 115
6.3.1 脉冲信号的产生 115
6.3.2 脉冲宽度的测量 116
6.4 本章小结 117
6.5 思考题与习题 117
第7章 单片机的串列口UART 119
7.1 串列通信概述 119
7.1.1 串列通信与并行通信 119
7.1.2 串列通信的分类 119
7.1.3 串列通信的数据传送方式 121
7.2 89S51串列口UART的结构与控制 122
7.2.1 串列口UART的结构 122
7.2.2 串列口UART的工作方式 124
7.2.3 串列口UART的波特率计算 126
7.3 串列口UART的编程及套用实例 128
7.3.1 串列口UART的编程步骤 128
7.3.2 串列口UART套用实例 128
7.4 本章小结 131
7.5 思考题与习题 131
第8章 单片机常用并行接口技术 133
8.1 键盘接口 133
8.1.1 独立按键 134
8.1.2 矩阵键盘 136
8.2 LED显示器接口 141
8.2.1 LED数码管 141
8.2.2 LED数码管静态显示接口 142
8.2.3 LED数码管动态显示接口 144
8.3 DAC接口 147
8.3.1 DAC0832晶片介绍 147
8.3.2 DAC0832与89S51的接口电路 148
8.3.3 利用DAC0832输出各种电压波形 149
8.4 ADC接口 151
8.4.1 ADC0809晶片介绍 151
8.4.2 ADC0809与89S51的接口电路 153
8.4.3 ADC0809套用举例 154
8.5 液晶显示模组LCD1602的接口 155
8.5.1 LCD1602介绍 155
8.5.2 LCD1602与89S51的接口电路 160
8.5.3 LCD1602套用举例 161
8.6 外部并行三汇流排接口 164
8.7 大功率器件驱动接口 165
8.7.1 光耦接口 166
8.7.2 继电器接口 166
8.7.3 双向晶闸管输出接口 167
8.7.4 固态继电器输出接口 168
8.8 本章小结 169
8.9 思考题与习题 169
第9章 串列汇流排接口技术 170
9.1 EIA系列汇流排标準及其接口 170
9.1.1 RS-232C汇流排 170
9.1.2 RS-485汇流排 172
9.1.3 单片机与PC之间的通信 174
9.2 SPI汇流排 176
9.2.1 SPI汇流排简介 176
9.2.2 SPI汇流排通信协定 177
9.2.3 E2PROM存储器AT93C46及其套用 177
9.3 I2C汇流排 180
9.3.1 I2C汇流排简介 180
9.3.2 I2C汇流排通信协定 181
9.3.3 I2C接口存储器AT24C02及其套用 183
9.4 1-Wire单汇流排 191
9.4.1 1-Wire单汇流排简介 191
9.4.2 温度感测器DS18B20及其套用 193
9.5 USB汇流排 198
9.5.1 USB汇流排原理 198
9.5.2 USB汇流排通信接口设计实例 200
9.6 CAN汇流排 202
9.6.1 CAN汇流排简介 203
9.6.2 CAN汇流排控制器 204
9.6.3 CAN汇流排通信接口设计实例 204
9.7 本章小结 205
9.8 思考题与习题 206
第10章 单片机套用系统开发环境 207
10.1 单片机套用系统的调试方法 207
10.1.1 硬体调试方法 207
10.1.2 软体仿真调试方法 209
10.2 Keil μVision4集成开发环境 210
10.2.1 Keil μVision4的主要特性 210
10.2.2 Keil μVision4集成开发环境设定方法 211
10.2.3 Keil μVision4工程套用 216
10.2.4 Keil C51主要头档案介绍 226
10.3 Proteus 8仿真软体 228
10.3.1 Proteus 8主界面介绍 228
10.3.2 Proteus 8绘製电路原理图 230
10.3.3 Proteus 8仿真调试 232
10.4 单片机套用系统开发小工具 233
10.4.1 波特率初值计算工具 233
10.4.2 数码管编码器 233
10.4.3 定时器计算工具 234
10.4.4 串口调试助手 234
10.5 本章小结 235
10.6 思考题与习题 236
第11章 基于嵌入式实时作业系统的单片机程式设计方法 237
11.1 嵌入式实时作业系统的概念 237
11.1.1 嵌入式系统的特徵 237
11.1.2 嵌入式实时作业系统的概念 238
11.2 在电子系统设计中引入RTOS的意义 238
11.2.1 两种软体开发模式的比较 239
11.2.2 嵌入式套用中使用嵌入式RTOS的必要性 239
11.2.3 嵌入式作业系统环境下的套用软体设计 240
11.2.4 嵌入式作业系统环境下的套用软体调试 241
11.3 嵌入式实时作业系统RTX51的介绍 241
11.3.1 RTX51的技术参数 241
11.3.2 几个概念 242
11.3.3 RTX Tiny核心分析 245
11.3.4 RTX Tiny核心原始码 249
11.4 基于RTX51的单片机程式设计方法 251
11.4.1 目标系统需求 251
11.4.2 软体设计指导方针 251
11.4.3 任务划分的原则 252
11.4.4 应用程式架构 254
11.5 本章小结 256
11.6 思考题与习题 256
第12章 基于RTX51的乐曲编辑器和发生器设计 257
12.1 设计任务 257
12.2 方案设计与论证 257
12.2.1 以FPGA为核心的实现方案 257
12.2.2 以MCU为核心的实现方案 257
12.3 系统硬体设计 258
12.3.1 系统硬体电路原理图 258
12.3.2 人机互动界面 259
12.4 基于RTX51的系统软体设计 260
12.4.1 乐曲的表示方法 260
12.4.2 编辑乐曲的软体实现方法 261
12.4.3 播放乐曲的软体实现方法 262
12.4.4 系统软体流程框图 264
12.5 系统源程式清单 265
12.5.1 C51语言主程式 265
12.5.2 读AT24C02彙编语言子程式 276
12.5.3 写AT24C02彙编语言子程式 279
12.5.4 键盘扫描彙编语言子程式 281
12.5.5 实时作业系统RTX51 Tiny核心程式 283
12.6 系统设计总结 283
第13章 数控电流源设计 284
13.1 设计任务 284
13.2 方案设计与论证 284
13.2.1 D/A转换模组设计方案的论证与比较 285
13.2.2 恆流源模组设计方案的论证与比较 285
13.2.3 数据採集模组设计方案的论证与比较 286
13.2.4 辅助电源、主电源设计方案的论证与比较 287
13.2.5 键盘、显示器设计方案的论证与比较 288
13.3 理论计算与EWB仿真 288
13.3.1 採样电阻值的确定 288
13.3.2 D/A转换器解析度的确定 289
13.3.3 TLC5618参考电压的确定 289
13.3.4 主电源参数的确定 289
13.3.5 用EWB进行电路仿真 289
13.4 系统硬体设计 291
13.4.1 MCU微控制器、键盘、显示器电路图 291
13.4.2 D/A转换模组、恆流源模组的电路图 291
13.4.3 数据採集模组的电路图 294
13.4.4 辅助电源、主电源的电路图 294
13.5 系统软体设计 298
13.5.1 主程式流程框图 298
13.5.2 设定输出电流给定值功能函式程式流程框图 299
13.5.3 设定电流步进值功能函式程式流程框图 299
13.5.4 键盘扫描程式流程框图 300
13.6 系统测试方法与结果分析 300
13.6.1 测试使用的仪器 300
13.6.2 恆流特性的测试 301
13.6.3 电流步进值为1mA的测试 301
13.6.4 纹波电流的测试 302
13.6.5 输出电流範围的测试 302
13.6.6 输出电压的测试 302
13.6.7 1~99mA内任意电流步进值设定功能的测试 303
13.6.8 测试结果分析 303
13.7 系统使用说明书 303
13.7.1 键盘界面 304
13.7.2 选单操作 305
13.8 系统源程式清单 305
13.8.1 C51语言主程式 305
13.8.2 键盘扫描彙编语言子程式 316
13.8.3 写TLC5618的彙编语言子程式 318
13.8.4 读MC14433的彙编语言子程式 319
13.8.5 显示缓冲器的彙编语言子程式 320
13.9 系统设计总结 321
附录A 单片机课程设计 322
附录B 89S51指令表 331