《基于C51语言编程的MCS-51单片机实用教程》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:刘文涛,周辉,龚健编著
  • 出 版 社:北京:原子能出版社
  • 出版年份:2004
  • ISBN:7502231994
  • 页数:373 页
图书介绍:本书在以C51为程序设计的基础上介绍了MCS-51系列单片机的原理以及应用。首先介绍了MCS-51系列单片机的内部结构、工作时序及C51语言等基本知识,接着在此基础上进一步介绍了单片机的扩展技术和接口技术,最后介绍了单片机在实际系统中的实用技术。

第1章 MCS-51单片机概述 1

1.1 单片机发展历史 1

1.2 MSC-51系列单片机 2

1.3 单片机应用系统的硬件设计 3

1.4 应用系统的软件设计 3

1.5 单片机最新进展 4

1.5.1 数字单片机的技术发展 5

1.5.2 以单片机为核心的嵌入式系统 6

1.5.3 单片机应用的可靠性技术发展 7

第2章 硬件结构和指令系统 9

2.1 MSC-51功能 9

2.2 管脚概述 10

2.3 I/O(输入/输出)端口结构 12

2.3.1 P0口 13

2.3.2 P1口 14

2.3.3 P2口 15

2.3.4 P3口 15

2.3.5 端口的负载能力和接口要求 17

2.4 8051存储器配置 17

2.4.1 程序存储器地址空间 18

2.4.2 数据存储器地址空间 19

2.4.3 PSW 24

2.5 复位 25

2.5.1 复位信号和复位状态 25

2.5.2 常用的几种复位电路 26

2.6 MCS-51单片机工作时序 26

2.6.1 片内振荡器及时钟信号的产生 26

2.6.2 机器周期和指令周期 27

2.6.3 CPU取指令、执行指令周期时序 28

2.6.4 访问片外ROM的操作时序 29

2.6.5 访问片外RAM的操作时序 29

2.7 MCS-51指令系统 31

2.7.1 指令系统综述 31

2.7.2 寻址方式 32

2.7.3 数据传送类指令 33

2.7.4 算术运算类指令 35

2.7.5 逻辑操作类指令 38

2.7.6 控制转移类指令 40

2.7.7 布尔操作类指令 43

第3章 C51程序设计 45

3.1 C51程序设计基础 45

3.1.1 C51的标识符 45

3.1.2 C51的关键字 45

3.1.3 变量与常量 48

3.1.4 数据类型 49

3.1.5 变量的作用域 53

3.1.6 const修饰符 56

3.1.7 C51的分隔符 57

3.1.8 运算符 58

3.1.9 表达式 65

3.2 C51语句 68

3.2.1 说明语句 69

3.2.2 表达式语句 69

3.2.3 复合语句 69

3.2.4 条件语句 70

3.2.5 开关与跳转语句 73

3.2.6 循环语句 76

3.2.7 函数调用语句 80

3.2.8 空语句 81

3.2.9 C51语句的流程与控制 81

3.3 C51函数 84

3.3.1 函数的定义 84

3.3.2 函数的调用和返回 85

3.3.3 函数作用范围 90

3.3.4 函数的变量作用域 90

3.3.5 main函数 90

3.4 C51数据结构 92

3.4.1 C51结构 92

3.4.2 数组 95

3.4.3 联合与枚举 101

3.4.4 类型说明 103

3.4.5 指针 104

3.5 预处理 114

3.5.1 文件包含指令 114

3.5.2 宏定义 115

3.5.3 预处理指令 116

3.5.4 C51头文件 120

第4章 最小应用系统设计 123

4.1 AT89C51单片机性能介绍 123

4.2 MCS-51最小应用系统设计 126

4.3 C51应用开发初步 126

4.3.1 延时程序 127

4.3.2 P1I/0口的声明 127

4.3.3 控制LED指示灯的源程序 129

第5章 中断系统 131

5.1 中断的概念 131

5.2 8051中断控制 133

5.2.1 中断控制寄存器 134

5.2.2 中断响应过程及响应时间 137

5.3 C51中断函数 138

5.3.1 中断函数的定义 138

5.3.2 内部中断函数的使用 139

5.3.3 外部中断函数的使用 140

5.3.4 扩展外部中断函数的使用 141

5.3.5 使用中断函数要注意的问题 142

第6章 定时器/计数器 144

6.1 定时器/计数器简介 144

6.2 定时器/计数器的设置 145

6.2.1 工作模式寄存器TMOD(89H) 145

6.2.2 控制寄存器TCON(88H) 146

6.3 定时器/计数器的四种工作模式 147

6.3.1 模式0 147

6.3.2 模式1 148

6.3.3 模式2 148

6.3.4 模式3 149

6.4 定时器/计数器的编程和应用 150

6.4.1 模式0的应用 150

6.4.2 模式1的应用 151

6.4.3 模式2的应用 152

6.4.4 模式3的应用 152

6.4.5 运行中读定时器/计数器 152

6.4.6 门控制位GATE的功能和使用方法 153

6.5 定时器应用综合实例 153

6.5.1 简介 154

6.5.2 工作原理 154

6.5.3 电路原理图 154

6.5.4 程序 155

第7章 串行口 162

7.1 概述 162

7.1.1 并行和串行 162

7.1.2 串行通信的方式 163

7.1.3 同步通信和异步通信 163

7.1.4 波特率(Baud rate) 164

7.2 8051串行口 164

7.2.1 结构 165

7.2.2 串行口控制寄存器 165

7.2.3 串行通信工作方式 167

7.2.4 波特率设计 169

7.3 单片机双机通信技术 171

7.3.1 中断方式双机通信软件设计 172

7.3.2 通信软件的调试及故障排除 173

7.4 单片机多机通信技术 174

7.4.1 多机通信接口设计 174

7.4.2 多机通信原理 174

7.4.3 多机通信的软件协议 175

7.4.4 主机、从机构成中断方式的多机通信软件实例 176

7.5 PC机与单片机的通信技术 177

第8章 人机交互设计 203

8.1 I/0口的使用 203

8.1.1 I/O口的直接输入/输出 203

8.1.2 开关电路及驱动电路接口 208

8.2 键盘接口技术 211

8.2.1 矩阵键盘工作原理 213

8.2.2 按键的识别方法 213

8.2.3 键盘的编码 215

8.3 显示器接口技术 215

8.3.1 LED显示器接口技术 215

8.3.2 显示器结构原理 215

8.3.3 LED显示器接口及显示方式 216

8.3.4 16×2字符液晶显示(LCD)程序 218

第9章 A/D与D/A转换 222

9.1 传感器 222

9.2 A/D与D/A转换技术 223

9.2.1 D/A转换 223

9.2.2 A/D转换器接口技术 230

9.3 MCS51系列单片机ADμC812 234

9.3.1 ADμC812工作原理 234

9.3.2 控制ADC工作的特殊功能寄存器 236

9.3.3 ADC的工作模式 237

第10章 MCS-51单片机系统的扩展 240

10.1 外部I/O的扩展 240

10.1.1 I/O口扩展概述 240

10.1.2 I/O地址译码技术 240

10.2 扩展程序存储器 242

10.2.1 扩展总线 243

10.2.2 扩展8K字节EPROM 243

10.2.3 扩展16K字节EPROM 245

10.3 扩展数据存储器 245

10.3.1 扩展总线 246

10.3.2 8051扩展2K字节RAM 246

10.4 程序存储器与数据存储器同时扩展 247

10.4.1 8051外扩32K EPROM和32K RAM 247

10.4.2 译码法扩展大容量存储器 247

10.5 采用8279扩展键盘与显示接口 249

10.5.1 8279可编程键盘/显示器接口芯片 249

10.5.2 8279基本启动程序 252

10.6 采用芯片8255进行扩展 254

10.6.1 8255管脚功能 254

10.6.2 8255三种工作方式 255

10.6.3 8255与8051单片机的连接 256

10.6.4 8255扩展实例 256

10.7 8051存储结构 257

10.7.1 8051存储单元 257

10.7.2 数据类型 259

10.7.3 存储器类型 260

10.7.4 存储器模式 263

第11章 单片机实用技术 264

11.1 I2C总线 264

11.1.1 I2C总线特点 264

11.1.2 I2C总线工作原理 264

11.1.3 总线基本操作 265

11.1.4 实例:X24C04与MCS-51单片机软硬件的实现 266

11.1.5 实例程序 267

11.2 电源设计要注意的问题 269

11.3 抗干扰设计 274

11.3.1 硬件考虑 274

11.3.2 软件考虑 277

第12章 C51编译方法 281

12.1 Keil的编译环境μVision2 282

12.1.1 μVision2窗口与菜单 283

12.1.2 编译检查工具PC-Lint 293

12.1.3 开发工具选项 294

12.1.4 调试工具选项 300

12.2 Keil C51编译器的控制指令 301

12.2.1 源文件控制类 301

12.2.2 目标文件(Object)控制类 301

12.2.3 列表文件(listing)控制类 301

12.3 编译过程 302

12.3.1 A51宏汇编器 303

12.3.2 映像文件 305

12.3.3 LIB51库管理器 305

12.3.4 OC51分段目标文件转换器 306

12.3.5 OH51目标代码到HEX文件的转换器 306

12.4 代码优化 306

12.4.1 代码优化 306

12.4.2 对8051的特殊优化 306

12.4.3 代码生成选项 307

12.5 混合编译 307

12.5.1 项目目标和文件组 307

12.5.2 浏览项目窗口中的文件和文件组的属性 308

12.5.3 用户上电初始化程序STARTUP.A51简介 309

12.5.4 与汇编语言的接口 312

12.5.5 和PL/M-51的接口 319

12.6 μVision2其他功能 319

12.6.1 多个文件中查找 320

12.6.2 资源浏览器 320

12.7 出错信息 321

第13章 上机实验指导 322

13.1 实验1——用C51编写简单程序 322

13.1.1 实验要求 322

13.1.2 实验目的 322

13.1.3 部分参考程序 322

13.2 实验2——中断实验 322

13.2.1 实验要求 322

13.2.2 实验目的 323

13.2.3 实验电路及连线 323

13.2.4 实验说明 323

13.2.5 实验程序框图 324

13.2.6 部分源程序 324

13.3 实验3——定时器实验 325

13.3.1 实验要求 325

13.3.2 实验目的 325

13.3.3 实验电路及连线 325

13.3.4 实验说明 326

13.3.5 实验程序框图 326

13.3.6 部分代码 326

13.4 实验4——计数器实验 327

13.4.1 实验要求 327

13.4.2 实验目的 327

13.4.3 实验电路及连线 327

13.4.4 实验说明 327

13.4.5 实验程序框图 328

13.4.6 部分实验程序 329

13.5 实验5——单片机串行口实验 329

13.5.1 实验要求 329

13.5.2 实验目的 329

13.5.3 实验电路及连线 329

13.5.4 实验说明 329

13.6 实验6——P1口控制直流电机实验 330

13.6.1 实验要求 330

13.6.2 实验目的 330

13.6.3 实验电路及连线 330

13.6.4 实验说明 331

13.6.5 实验程序框图 331

13.7 实验7——LCD显示实验 332

13.7.1 实验要求 332

13.7.2 实验目的 332

13.7.3 实验电路及连线 332

13.7.4 实验说明 332

13.7.5 实验程序框图 333

13.7.6 实验程序 333

13.8 实验8——A/D转换实验 337

13.8.1 实验要求 337

13.8.2 实验目的 337

13.8.3 实验电路及连线 337

13.8.4 实验说明 338

13.8.5 实验程序框图 338

13.9 实验9——D/A转换实验 339

13.9.1 实验要求 339

13.9.2 实验目的 339

13.9.3 实验电路及连线 339

13.9.4 实验说明 340

13.9.5 实验程序框图 340

13.10 实验10——扩展存储器读写实验 341

13.10.1 实验要求 341

13.10.2 实验目的 341

13.10.3 实验电路及连线 341

13.10.4 实验说明 341

13.10.5 实验程序框图 342

附录A 致命错误信息 343

附录B 语法和语义错误信息 346

附录C 警告信息 361

附录D MCS-51汇编指令集 365

附录E C51库函数 369