图书目录

目    录

第1章  基础知识 1

1.1  信息在计算机中的表示 1

1.1.1  数在计算机内的表示 1

1.1.2  字符在计算机内的表示 5

1.2  单片机的概念及其特点 6

1.2.1  单片机的基本概念 6

1.2.2  单片机的主要特点 6

1.3  单片机的发展及其主要品种 7

1.3.1  4位单片机 7

1.3.2  8位单片机 8

1.3.3  16位单片机 8

1.3.4  32位单片机 8

1.4  单片机的应用 8

1.4.1  单机应用 9

1.4.2  多机应用 9

1.4.3  单片机的等级 9

习题  10

第2章  单片机基本原理 11

2.1  MCS-51系列单片机简介 11

2.2  MCS-51系列单片机的结构原理 11

2.2.1  MCS-51系列单片机的

基本组成 11

2.2.2  MCS-51系列单片机的

内部结构 12

2.2.3  MCS-51系列单片机的

中央处理器(CPU) 13

2.2.4  MCS-51系列单片机的

存储器结构 14

2.2.5  MCS-51系列单片机的

输入/输出接口 20

2.3  MCS-51系列单片机的外部引脚及

片外总线 24

2.3.1  外部引脚 24

2.3.2  片外总线结构 27

2.4  MCS-51系列单片机的工作方式 27

2.4.1  复位方式 27

2.4.2  程序执行方式 28

2.4.3  单步执行方式 28

2.4.4  掉电和节电方式 29

2.4.5  编程和校验方式 30

2.5  MCS-51系列单片机的时序 31

2.5.1  机器周期和指令周期 31

2.5.2  单机器周期指令的时序 31

2.5.3  双机器周期指令的时序 32

习题  32

第3章  单片机汇编程序设计 34

3.1  MCS-51系列单片机汇编指令

格式及标识 34

3.1.1  指令格式 34

3.1.2  指令中用到的标识符 35

3.2  MCS-51系列单片机的寻址方式 35

3.2.1  常数寻址(立即寻址) 35

3.2.2  寄存器数寻址(寄存器寻址) 36

3.2.3  存储器数寻址 36

3.2.4  位寻址 38

3.2.5  指令寻址 38

3.3  MCS-51系列单片机的指令系统 39

3.3.1  数据传送指令 39

3.3.2  算术运算指令 42

3.3.3  逻辑操作指令 44

3.3.4  控制转移指令 46

3.3.5  位操作指令 51

3.4  MCS-51系列单片机汇编程序

常用伪指令 53

3.5  MCS-51系列单片机汇编程序设计 57

3.5.1  运算程序 57

3.5.2  数据的拼拆和转换 60

3.5.3  多分支转移(散转)程序 62

习题  64

第4章  单片机C语言程序设计 67

4.1  C语言与MCS-51单片机 67

4.1.1  C语言的特点及程序结构 67

4.1.2  C语言与MCS-51单片机 69

4.1.3  C51程序结构 69

4.2  C51的数据类型 70

4.3  C51的运算量 73

4.3.1  常量 73

4.3.2  变量 74

4.3.3  存储模式 77

4.3.4  绝对地址的访问 78

4.4  C51的运算符及表达式 80

4.4.1  赋值运算符 80

4.4.2  算术运算符 81

4.4.3  关系运算符 81

4.4.4  逻辑运算符 81

4.4.5  位运算符 82

4.4.6  复合赋值运算符 82

4.4.7  逗号运算符 83

4.4.8  条件运算符 83

4.4.9  指针与地址运算符 83

4.4.10  运算符的优先级与结合性 84

4.5  表达式语句及复合语句 85

4.5.1  表达式语句 85

4.5.2  复合语句 86

4.6  C51的输入/输出 87

4.6.1  格式输出函数printf() 87

4.6.2  格式输入函数scanf() 88

4.7  C51程序的基本结构与相关语句 89

4.7.1  C51的基本结构 89

4.7.2  if语句 91

4.7.3  switch/case语句 92

4.7.4  while语句 93

4.7.5  do…while语句 93

4.7.6  for语句 94

4.7.7  循环的嵌套 95

4.7.8  break和continue语句 95

4.7.9  return语句 96

4.8  函数 96

4.8.1  函数的定义 97

4.8.2  函数的调用与声明 99

4.8.3  函数的嵌套与递归 102

4.9  C51构造数据类型 103

4.9.1  数组 103

4.9.2  指针 106

4.9.3  结构 108

4.9.4  联合 111

4.9.5  枚举 113

习题  114

第5章  单片机C语言与汇编语言

混合编程 117

5.1  混合编程概述 117

5.1.1  单片机汇编语言的特点 117

5.1.2  单片机C语言的特点 118

5.1.3  单片机混合编程的优点 119

5.1.4  单片机混合编程的

基本方式 120

5.2  混合汇编的参数传递与实现 121

5.2.1  混合汇编的参数传递 121

5.2.2  混合汇编的实现 123

习题  126

第6章  MCS-51单片机的

内部资源及编程 127

6.1  并行输入/输出接口 127

6.2  定时/计数器接口 127

6.2.1  定时/计数器的主要特性 127

6.2.2  定时/计数器T0、T1的

结构及工作原理 128

6.2.3  定时/计数器的方式和

控制寄存器 129

6.2.4  定时/计数器的工作方式 130

6.2.5  定时/计数器的初始化

编程及应用 132

6.3  串行接口 137

6.3.1  通信的基本概念 137

6.3.2  MCS-51单片机串行口的

功能与结构 139

6.3.3  串行口的工作方式 142

6.3.4  串行口的编程及应用 143

6.4  中断系统 158

6.4.1  中断的基本概念 158

6.4.2  MCS-51单片机的中断系统 159

6.4.3  MCS-51中断系统的应用 164

习题  166

第7章  MCS-51单片机常用接口 168

7.1  MCS-51单片机的最小系统 168

7.1.1  8051/8751的最小系统 168

7.1.2  8031的最小系统 168

7.2  存储器扩展 169

7.2.1  存储器扩展概述 169

7.2.2  程序存储器扩展 171

7.2.3  数据存储器扩展 174

7.3  输入/输出口扩展 175

7.3.1  简单I/O接口扩展 175

7.3.2  可编程I/O接口

扩展(8255A) 176

7.4  MCS-51单片机与键盘的接口 183

7.4.1  键盘的工作原理 183

7.4.2  独立式键盘与

单片机的接口 185

7.4.3  矩阵式键盘与

单片机的接口 186

7.5  MCS-51单片机与

LED显示器接口 192

7.5.1  LED显示器的结构与原理 192

7.5.2  LED数码管显示器的

译码方式 193

7.5.3  LED数码管的显示方式 194

7.5.4  LED显示器与

单片机的接口 196

7.6  MCS-51单片机与行程开关、

晶闸管、继电器的接口 199

7.6.1  行程开关、继电器与MCS-51

单片机接口 199

7.6.2  晶闸管与MCS-51单片机

接口 199

7.6.3  继电器与MCS-51单片机

接口 200

7.6.4  蜂鸣器与单片机接口 201

习题  201

第8章  MCS-51单片机与D/A、

A/D转换器的接口 203

8.1  MCS-51单片机与ADC的接口 203

8.1.1  A/D转换器概述 203

8.1.2  ADC0809与MCS-51的

接口 204

8.2  MCS-51单片机与DAC的接口 209

8.2.1  D/A转换器概述 209

8.2.2  MCS-51单片机与8位

DAC0832的接口 211

习题  216

第9章  MCS-51单片机的其他接口 217

9.1  LCD与MCS-51单片机的接口 217

9.1.1  字符型点阵式液晶显示器 217

9.1.2  LCD显示器与单片机的

接口与应用 222

9.2  MCS-51单片机与I2C总线芯片

接口 226

9.2.1  I2C总线简介 226

9.2.2  I2C总线EEPROM芯片与

单片机的接口 229

9.3  MCS-51单片机与时钟日历

芯片的接口 242

9.3.1  并行日历时钟芯片

DS12887与单片机的接口 242

9.3.2  串行日历时钟芯片与

单片机的接口 251

9.4   MCS-51单片机与数字温度

传感器的接口 262

9.4.1  DS18B20简介 262

9.4.2  DS18B20的主要特性 263

9.4.3  DS18B20的外部结构 263

9.4.4  DS18B20的内部结构 263

9.4.5  DS18B20的温度转换过程 266

9.4.6  DS18B20与单片机的接口 267

9.4.7  DS18B20使用中的

注意事项 274

9.5  MCS-51单片机与串行A/D、

D/A的接口 275

9.5.1  MCS-51单片机与串行A/D

芯片MAX1241的接口 275

9.5.2  MCS-51单片机与串行D/A

芯片MAX517的接口 279

习题  284

第10章  单片机应用系统设计 286

10.1  单片机应用系统的基本结构 286

10.1.1  单片机应用系统的

 硬件系统 286

10.1.2  单片机应用系统开发的

 基本过程 287

10.2  单片机应用系统的硬件系统设计 289

10.2.1  硬件系统设计的原则 289

10.2.2  硬件设计 290

10.3  单片机应用系统的软件设计 291

10.3.1  软件设计的特点 291

10.3.2  资源分配 292

10.3.3  单片机应用系统开发工具 292

习题  293

第11章  单片机应用系统设计实例 294

11.1  单片机电子时钟的设计 294

11.1.1  软时钟的基本原理 294

11.1.2  系统硬件电路的设计 294

11.1.3  系统软件程序的设计 295

11.2  多路数字电压表的设计 302

11.2.1  多路数字电压表的

 原理及功能 302

11.2.2  系统硬件电路的设计 303

11.2.3  系统软件程序的设计 304

11.3  单片机数字显示温度计 312

11.3.1  单片机数字显示温度计的

 原理 312

11.3.2  系统硬件电路设计 312

11.3.3  系统软件程序设计 313

习题  322

第12章  Keil C51集成环境的使用 324

12.1  Keil C51简介 324

12.1.1  Keil uVision2 IDE的安装 324

12.1.2  Keil uVision2 IDE界面 324

12.2  Keil uVision2 IDE的使用方法 330

12.2.1  项目文件的建立 330

12.2.2  给项目添加程序文件 331

12.2.3  编译、连接项目,

 形成目标文件 332

12.2.4  运行调试观察结果 332

12.2.5  多文件的处理 333

12.2.6  仿真环境的设置 334

12.3  Keil C51的调试技巧 337

12.3.1  如何设置和删除断点 337

12.3.2  如何查看和

 修改寄存器的内容 337

12.3.3  如何观察和修改变量 337

12.3.4  如何观察存储器区域 338

12.3.5  并行口的使用 338

12.3.6  定时/计数器的使用 339

12.3.7  串行口的使用 341

12.3.8  外中断的使用 341

习题  342

附录A  MCS-51系列单片机指令表 343

附录B  C51的库函数 348

附录C  单片机技术及嵌入式

系统的网络资源 357

参考文献 358

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

VI

单片机原理与应用及C51程序设计(第2版)

  

VII

目录