书籍详情
8051微控制器教程
作者:(美)麦肯锡(MacKenzie, I.S.)著;方承志, 姜田译译
出版社:清华大学出版社
出版时间:2005-12-01
ISBN:9787302117735
定价:¥39.00
购买这本书可以去
内容简介
本书从最基本的概念开始,重点讲解8051微控制器的结构及其编程方法。介绍了8051系列微控制器指令集、定时器、串行口操作、中断系统的硬件结构和特点:用比较多的篇幅介绍了8051微控制器的汇编语言程序设计及其开发过程;最后以完整的代码介绍几个接口实例以方便理解8051微控制器的接口特性及其实际应用。本书附录中几个表格方便读者学习查阅。.本书系统扼要,非常适合电子工程、通信、电器控制类等专业的本科教学,同时也可以作为电子技术人员学习微控制器的参考书。..本书特色:本书讲解清晰,作者以一个老师的口气娓娓道来,由易到难,由点到面,由硬件到软件,再由软件到系统,叙述详细,案例丰富,逐步带领学生掌握8051系列微控制器的精髓。.注重与实际相结合,书中讨论了若干可用于实际工作场合的设计实例,并穿插大量富有启发性的讨论话题。..本书除了介绍8051微控制器的相关知识,重点培养读者对微控制器开发设计方法学的领悟,学完本书后,读者通常能举一反三,轻而易举地从事其他类型微处理器的开发和设计工作。...
作者简介
(美)I.ScottMacKenzie,1991年获得博士学位,1992年~1999年,于Guelph大学计算机科学任教,之后,一直在York大学计算机科学系任教,目前的研究方向是人机交与(人类行为度量和建模),出版过《8051微控制器》和《68000微控器》等书籍。方承志,1999年在南京大学电子系电子工程专业毕业,先在中兴通迅网络事业部从事嵌入式系统软件/硬软件开发,后在synopsys公司上海研发中心从事IC设计相关EDA软件的研发工作,目前在南京大学电子系攻读博士学位,研究方向是无线通迅中的信号处理。姜田,目前在南京大学电子系攻读博士学位,研究方向是电磁场和微波技术。
目录
第1章 微控制器简介 1
1.1 引言 1
1.2 术语 2
1.3 中央处理器 3
1.4 半导体存储器:RAM和ROM 4
1.5 总线:地址总线、数据总线和控制总线 5
1.6 输入/输出设备 6
1.6.1 大容量存储设备 6
1.6.2 人机交互设备 6
1.6.3 控制/监视设备 6
1.7 程序:大程序和小程序 7
1.8 微型机、小型机、大型机 8
1.9 微处理器与微控制器的比较 8
1.9.1 硬件结构 9
1.9.2 应用领域 9
1.9.3 指令集特征 10
1.10 一些新概念 10
1.11 得与失:一个设计范例 11
习题 13
第2章 硬件结构 14
2.1 MCS-51系列简介 14
2.2 8051的引脚 15
2.2.1 端口0 16
2.2.2 端口1 16
2.2.3 端口2 16
2.2.4 端口3 17
2.2.5 (程序存储使能信号) 17
2.2.6 ALE(地址锁存使能信号) 17
2.2.7 (外部访问信号) 18
2.2.8 RST(复位信号) 18
2.2.9 片上振荡器输入 18
2.2.10 电源接口 18
2.3 I/O端口结构 19
2.4 存储器组织 19
2.4.1 通用RAM 20
2.4.2 可位寻址RAM 21
2.4.3 寄存器组 22
2.5 特殊功能寄存器(SFR) 23
2.5.1 程序状态字 24
2.5.2 寄存器B 27
2.5.3 堆栈指针 27
2.5.4 数据指针 27
2.5.5 端口寄存器 28
2.5.6 计时器寄存器 28
2.5.7 串口寄存器 29
2.5.8 中断寄存器 29
2.5.9 电源控制寄存器 29
2.6 外部存储器 30
2.6.1 访问外部代码存储器 31
2.6.2 访问外部数据存储器 31
2.6.3 地址解码 33
2.6.4 外部代码空间和数据空间的重叠 34
2.7 8032/8052的增强功能 34
2.8 复位 35
2.9 本章小结 36
习题 37
第3章 8051指令集概述 40
3.1 本章简介 40
3.2 寻址模式 40
3.2.1 寄存器寻址 41
3.2.2 直接寻址 43
3.2.3 间接寻址 44
3.2.4 立即寻址 45
3.2.5 相对寻址 45
3.2.6 绝对寻址 47
3.2.7 长寻址 49
3.2.8 索引寻址 49
3.3 指令类型 50
3.3.1 算术运算类指令 50
3.3.2 逻辑运算类指令 54
3.3.3 数据传送类指令 56
3.3.4 布尔操作类指令 60
3.3.5 程序分支转移类指令 63
习题 67
第4章 定时器操作 73
4.1 本章简介 73
4.2 定时器模式寄存器(TMOD) 75
4.3 定时器控制寄存器(TCON) 76
4.4 定时器模式和溢出标志 76
4.4.1 13位定时器模式(模式0) 76
4.4.2 16位定时器模式(模式1) 77
4.4.3 8位自动重载模式(模式2) 78
4.4.4 分立定时器模式(模式3) 78
4.5 时钟信号源 78
4.5.1 定时 78
4.5.2 计数 79
4.6 定时器的启动、停止和控制 79
4.7 定时器寄存器TMOD的初始化和访问 81
4.7.1 即时读取定时器 82
4.8 短间隔和长间隔 82
4.9 8052的定时器2 86
4.9.1 自动重载模式 87
4.9.2 捕获模式 88
4.10 波特率发生器 89
4.11 本章小结 89
习题 89
第5章 串口操作 92
5.1 本章简介 92
5.2 串口控制寄存器 93
5.3 工作模式 94
5.3.1 8位移位寄存器(模式0) 94
5.3.2 8位可变波特率UART(模式1) 95
5.3.3 9位固定波特率UART(模式2) 97
5.3.4 9位可变波特率UART(模式3) 97
5.4 串口寄存器的初始化和访问 97
5.4.1 接收使能 97
5.4.2 第9数据位 97
5.4.3 加入奇偶校验位 98
5.4.4 中断标志 98
5.5 多处理器通信 99
5.6 串口波特率 100
5.7 本章小结 104
习题 104
第6章 中断 106
6.1 本章简介 106
6.2 8051的中断结构 107
6.2.1 允许与禁止中断 107
6.2.2 中断优先级 108
6.2.3 查询顺序 108
6.3 中断处理 110
6.4 中断程序设计 111
6.4.1 小型中断服务程序 112
6.4.2 大型中断服务程序 112
6.5 串口中断 115
6.6 外部中断 116
6.7 中断时序 121
6.8 本章小结 122
习题 122
第7章 汇编语言程序设计 124
7.1 本章简介 124
7.2 汇编器及其工作流程 125
7.2.1 第一次扫描 126
7.2.2 第二次扫描 126
7.3 汇编语言程序的格式 128
7.3.1 标号字段 129
7.3.2 助记符字段 129
7.3.3 操作数字段 129
7.3.4 注释字段 129
7.3.5 特殊的汇编器符号 130
7.3.6 间接寻址 130
7.3.7 立即数 130
7.3.8 数据地址 131
7.3.9 位地址 131
7.3.10 代码地址 131
7.3.11 跳转和调用的泛型 132
7.4 汇编时的表达式求值 133
7.4.1 数基 133
7.4.2 字符串 133
7.4.3 算术运算符 134
7.4.4 逻辑运算符 134
7.4.5 特殊运算符 135
7.4.6 关系运算符 135
7.4.7 表达式例子 136
7.4.8 运算优先级 136
7.5 汇编伪指令 137
7.5.1 汇编器状态控制伪指令 137
7.5.2 符号定义伪指令 138
7.5.3 存储空间初始化/保留伪指令 140
7.5.4 程序连接伪指令 143
7.5.5 段选择伪指令 145
7.6 汇编器控制项 146
7.7 连接器操作 148
7.8 例子详解——连接可重定位的段和模块 149
7.8.1 ECHO.LST 150
7.8.2 IO.LST 152
7.8.3 EXAMPLE.M51 156
7.9 宏 158
7.9.1 参数传递 159
7.9.2 局部标号 160
7.9.3 重复操作 161
7.9.4 程序控制流操作 162
习题 162
第8章 程序结构和设计 165
8.1 本章简介 165
8.2 结构化程序设计的优点和缺点 167
8.3 结构化程序设计中的三种结构 167
8.3.1 顺序结构 168
8.3.2 循环结构 168
8.3.3 选择结构 173
8.4 伪码的语法 178
8.5 汇编语言的程序设计风格 182
8.5.1 标号 182
8.5.2 注释 182
8.5.3 注释块 183
8.5.4 在堆栈里保存寄存器 184
8.5.5 使用EQU伪指令 184
8.5.6 使用子程序 184
8.5.7 程序的组织 186
8.6 本章小结 187
习题 187
第9章 程序开发中用到的工具和技术 188
9.1 本章简介 188
9.2 开发周期 188
9.2.1 软件开发 189
9.2.2 硬件开发 190
9.3 整合和验证 192
9.3.1 软件模拟 192
9.3.2 硬件仿真 194
9.3.3 在RAM中执行程序 194
9.3.4 在EPROM中执行程序 195
9.3.5 工厂掩膜处理 195
9.4 命令与开发环境 196
9.5 本章小结 198
习题 198
第10章 设计和接口例子 200
10.1 本章简介 200
10.2 SBC-51 200
10.3 十六进制键盘接口 206
10.4 7段LED的接口设计 210
10.5 扬声器接口设计 215
10.6 非易失性RAM接口设计 219
10.7 输入/输出扩展 225
10.8 模拟信号输出接口设计 229
10.9 模拟信号输入接口设计 234
10.10 本章小结 236
习题 237
附录A 快速索引表 239
附录B 操作码映射表 243
附录C 指令及其操作码详解 245
附录D 特殊功能寄存器介绍 283
附录E 操作码映射表 ASCII码表 290
附录F MON51-8051监控程序 291
1.1 引言 1
1.2 术语 2
1.3 中央处理器 3
1.4 半导体存储器:RAM和ROM 4
1.5 总线:地址总线、数据总线和控制总线 5
1.6 输入/输出设备 6
1.6.1 大容量存储设备 6
1.6.2 人机交互设备 6
1.6.3 控制/监视设备 6
1.7 程序:大程序和小程序 7
1.8 微型机、小型机、大型机 8
1.9 微处理器与微控制器的比较 8
1.9.1 硬件结构 9
1.9.2 应用领域 9
1.9.3 指令集特征 10
1.10 一些新概念 10
1.11 得与失:一个设计范例 11
习题 13
第2章 硬件结构 14
2.1 MCS-51系列简介 14
2.2 8051的引脚 15
2.2.1 端口0 16
2.2.2 端口1 16
2.2.3 端口2 16
2.2.4 端口3 17
2.2.5 (程序存储使能信号) 17
2.2.6 ALE(地址锁存使能信号) 17
2.2.7 (外部访问信号) 18
2.2.8 RST(复位信号) 18
2.2.9 片上振荡器输入 18
2.2.10 电源接口 18
2.3 I/O端口结构 19
2.4 存储器组织 19
2.4.1 通用RAM 20
2.4.2 可位寻址RAM 21
2.4.3 寄存器组 22
2.5 特殊功能寄存器(SFR) 23
2.5.1 程序状态字 24
2.5.2 寄存器B 27
2.5.3 堆栈指针 27
2.5.4 数据指针 27
2.5.5 端口寄存器 28
2.5.6 计时器寄存器 28
2.5.7 串口寄存器 29
2.5.8 中断寄存器 29
2.5.9 电源控制寄存器 29
2.6 外部存储器 30
2.6.1 访问外部代码存储器 31
2.6.2 访问外部数据存储器 31
2.6.3 地址解码 33
2.6.4 外部代码空间和数据空间的重叠 34
2.7 8032/8052的增强功能 34
2.8 复位 35
2.9 本章小结 36
习题 37
第3章 8051指令集概述 40
3.1 本章简介 40
3.2 寻址模式 40
3.2.1 寄存器寻址 41
3.2.2 直接寻址 43
3.2.3 间接寻址 44
3.2.4 立即寻址 45
3.2.5 相对寻址 45
3.2.6 绝对寻址 47
3.2.7 长寻址 49
3.2.8 索引寻址 49
3.3 指令类型 50
3.3.1 算术运算类指令 50
3.3.2 逻辑运算类指令 54
3.3.3 数据传送类指令 56
3.3.4 布尔操作类指令 60
3.3.5 程序分支转移类指令 63
习题 67
第4章 定时器操作 73
4.1 本章简介 73
4.2 定时器模式寄存器(TMOD) 75
4.3 定时器控制寄存器(TCON) 76
4.4 定时器模式和溢出标志 76
4.4.1 13位定时器模式(模式0) 76
4.4.2 16位定时器模式(模式1) 77
4.4.3 8位自动重载模式(模式2) 78
4.4.4 分立定时器模式(模式3) 78
4.5 时钟信号源 78
4.5.1 定时 78
4.5.2 计数 79
4.6 定时器的启动、停止和控制 79
4.7 定时器寄存器TMOD的初始化和访问 81
4.7.1 即时读取定时器 82
4.8 短间隔和长间隔 82
4.9 8052的定时器2 86
4.9.1 自动重载模式 87
4.9.2 捕获模式 88
4.10 波特率发生器 89
4.11 本章小结 89
习题 89
第5章 串口操作 92
5.1 本章简介 92
5.2 串口控制寄存器 93
5.3 工作模式 94
5.3.1 8位移位寄存器(模式0) 94
5.3.2 8位可变波特率UART(模式1) 95
5.3.3 9位固定波特率UART(模式2) 97
5.3.4 9位可变波特率UART(模式3) 97
5.4 串口寄存器的初始化和访问 97
5.4.1 接收使能 97
5.4.2 第9数据位 97
5.4.3 加入奇偶校验位 98
5.4.4 中断标志 98
5.5 多处理器通信 99
5.6 串口波特率 100
5.7 本章小结 104
习题 104
第6章 中断 106
6.1 本章简介 106
6.2 8051的中断结构 107
6.2.1 允许与禁止中断 107
6.2.2 中断优先级 108
6.2.3 查询顺序 108
6.3 中断处理 110
6.4 中断程序设计 111
6.4.1 小型中断服务程序 112
6.4.2 大型中断服务程序 112
6.5 串口中断 115
6.6 外部中断 116
6.7 中断时序 121
6.8 本章小结 122
习题 122
第7章 汇编语言程序设计 124
7.1 本章简介 124
7.2 汇编器及其工作流程 125
7.2.1 第一次扫描 126
7.2.2 第二次扫描 126
7.3 汇编语言程序的格式 128
7.3.1 标号字段 129
7.3.2 助记符字段 129
7.3.3 操作数字段 129
7.3.4 注释字段 129
7.3.5 特殊的汇编器符号 130
7.3.6 间接寻址 130
7.3.7 立即数 130
7.3.8 数据地址 131
7.3.9 位地址 131
7.3.10 代码地址 131
7.3.11 跳转和调用的泛型 132
7.4 汇编时的表达式求值 133
7.4.1 数基 133
7.4.2 字符串 133
7.4.3 算术运算符 134
7.4.4 逻辑运算符 134
7.4.5 特殊运算符 135
7.4.6 关系运算符 135
7.4.7 表达式例子 136
7.4.8 运算优先级 136
7.5 汇编伪指令 137
7.5.1 汇编器状态控制伪指令 137
7.5.2 符号定义伪指令 138
7.5.3 存储空间初始化/保留伪指令 140
7.5.4 程序连接伪指令 143
7.5.5 段选择伪指令 145
7.6 汇编器控制项 146
7.7 连接器操作 148
7.8 例子详解——连接可重定位的段和模块 149
7.8.1 ECHO.LST 150
7.8.2 IO.LST 152
7.8.3 EXAMPLE.M51 156
7.9 宏 158
7.9.1 参数传递 159
7.9.2 局部标号 160
7.9.3 重复操作 161
7.9.4 程序控制流操作 162
习题 162
第8章 程序结构和设计 165
8.1 本章简介 165
8.2 结构化程序设计的优点和缺点 167
8.3 结构化程序设计中的三种结构 167
8.3.1 顺序结构 168
8.3.2 循环结构 168
8.3.3 选择结构 173
8.4 伪码的语法 178
8.5 汇编语言的程序设计风格 182
8.5.1 标号 182
8.5.2 注释 182
8.5.3 注释块 183
8.5.4 在堆栈里保存寄存器 184
8.5.5 使用EQU伪指令 184
8.5.6 使用子程序 184
8.5.7 程序的组织 186
8.6 本章小结 187
习题 187
第9章 程序开发中用到的工具和技术 188
9.1 本章简介 188
9.2 开发周期 188
9.2.1 软件开发 189
9.2.2 硬件开发 190
9.3 整合和验证 192
9.3.1 软件模拟 192
9.3.2 硬件仿真 194
9.3.3 在RAM中执行程序 194
9.3.4 在EPROM中执行程序 195
9.3.5 工厂掩膜处理 195
9.4 命令与开发环境 196
9.5 本章小结 198
习题 198
第10章 设计和接口例子 200
10.1 本章简介 200
10.2 SBC-51 200
10.3 十六进制键盘接口 206
10.4 7段LED的接口设计 210
10.5 扬声器接口设计 215
10.6 非易失性RAM接口设计 219
10.7 输入/输出扩展 225
10.8 模拟信号输出接口设计 229
10.9 模拟信号输入接口设计 234
10.10 本章小结 236
习题 237
附录A 快速索引表 239
附录B 操作码映射表 243
附录C 指令及其操作码详解 245
附录D 特殊功能寄存器介绍 283
附录E 操作码映射表 ASCII码表 290
附录F MON51-8051监控程序 291
猜您喜欢