分享
 
 
 

51单片机开发与应用技术详解(珍藏版)(附赠VCD光盘一张)

51单片机开发与应用技术详解(珍藏版)(附赠VCD光盘一张)  点此进入淘宝搜索页搜索
  特别声明:本站仅为商品信息简介,并不出售商品,您可点击文中链接进入淘宝网搜索页搜索该商品,有任何问题请与具体淘宝商家联系。
  參考價格: 点此进入淘宝搜索页搜索
  分類: 图书,计算机与互联网,硬件/嵌入式开发,单片计算机,
  品牌: 赵建领

基本信息·出版社:电子工业出版社

·页码:704 页

·出版日期:2009年

·ISBN:7121079208/9787121079207

·条形码:9787121079207

·包装版本:1版

·装帧:平装

·开本:16

·正文语种:中文

·附带品描述:附赠VCD光盘一张

产品信息有问题吗?请帮我们更新产品信息。

内容简介《51单片机开发与应用技术详解》全面详细地讲述了单片机的原理、编程指南及应用案例,其中51系列单片机的编程部分是《51单片机开发与应用技术详解》的重点。《51单片机开发与应用技术详解》分为5篇38章。首先介绍了51系列单片机的开发概述及单片机的基本结构,接着介绍了单片机的汇编程序设计语言,然后介绍了单片机C51语言的程序设计,随后结合单片机的指令系统及各个功能部件详细讲解了单片机的编程操作,以及单片机硬件资源的仿真和程序调试。《51单片机开发与应用技术详解》最后还给出了在各个领域中常用到的一些典型案例,供读者在学习和工作中参考。

作者简介赵建领,中国科学院博士,参与973重大科研项目,申请多项专利。在电路设计、USB接口开发、电路制版以及软件设计等方面具有丰富的经验。曾出版 Protel电路设计与制版宝典 51系列单片机开发宝典等专著。

薛园园,北京科技大学双学士。长期从事单片机设计,在单片机程序开发、Protel电路制版等方面积累了丰富经验。曾出版USB应用开发技术大全等专著。

编辑推荐51系列单片机是目前应用最为广泛的一类微处理器,它以低廉的价格和强大的功能,受到广大电子设计爱好者和工程师的欢迎。51系列单片机内部具有丰富的硬件资源,例如定时器/计数器、中断系统、串行接口,并且它还提供了详尽的指令操作系统,可以供程序员很方便地进行程序设计。在51系列单片机的开发过程中,程序设计是重点也是难点。初学者往往很难快速掌握单片机指令的应用、各个功能部件的编程方法及程序设计思路。《51单片机开发与应用技术详解》知识点覆盖全面、结构安排紧凑、讲解详细、实例丰富。对于51系列单片机的初学者,通过《51单片机开发与应用技术详解》可以快速掌握单片机的程序设计。《51单片机开发与应用技术详解》对具有一定开发经验的设计人员,也有很好的参考价值。

目录

第一篇 51系列单片机基础

第1章 51系列单片机概述35

本章主要介绍了单片机的发展历程、51系列单片机的简介和51系列单片机的应用领域;接着介绍了一下实际常用的一些主流半导体厂商的单片机型号,以供读者参考;最后,详细介绍了开发51系列单片机应用系统的整个流程及主要注意事项。

1.1 单片机的产生与发展35

1.2 51系列单片机介绍36

1.2.1 51系列单片机简介36

1.2.2 51系列单片机的应用领域36

1.3 最新51内核单片机介绍37

1.3.1 Atmel单片机介绍37

1.3.2 Cypress单片机介绍37

1.3.3 Infineon单片机介绍38

1.3.4 Silicon单片机介绍38

1.3.5 Maxim单片机介绍38

1.3.6 NXP单片机介绍39

1.3.7 Winbond单片机介绍39

1.3.8 Analog Devices单片机介绍39

1.3.9 TI单片机介绍40

1.3.10 其他单片机介绍40

1.4 51系列单片机开发概述40

1.4.1 分析测控系统41

1.4.2 单片机选型41

1.4.3 硬件资源分配41

1.4.4 程序设计42

1.4.5 仿真测试42

1.4.6 实际硬件测试42

1.5 小结42

第2章 51系列单片机基本结构43

本章详细介绍了51系列单片机的基本结构,包括单片机的内部结构、引脚功能、中央处理器CPU、存储器的结构、单片机的复位、单片机工作的时钟和时序、并行I/O端口的结构和性能,以及单片机系统的掉电保护和低功耗设计。最后,还给出了一个典型的单片机最小系统。本章在讲述的时候,不仅对基本的8051进行了介绍,还介绍了目前新推出的高性能单片机AT89S52。这样读者在学习基础知识的同时,还可以了解最新单片机的性能和使用。

2.1 51系列单片机的内部结构43

2.1.1 内部结构的主要组成部分43

2.1.2 单片机结构的类型44

2.2 51系列单片机的引脚功能45

2.2.1 51系列单片机的引脚封装45

2.2.2 51系列单片机引脚功能45

2.3 中央处理器(CPU)47

2.3.1 算术逻辑部件(ALU)47

2.3.2 控制器47

2.3.3 通用寄存器48

2.3.4 专用寄存器48

2.4 存储器结构50

2.4.1 程序存储器及其扩展50

2.4.2 数据存储器及其扩展51

2.5 51系列单片机的复位55

2.5.1 单片机的复位状态55

2.5.2 单片机的复位电路55

2.6 51系列单片机的时钟和时序56

2.6.1 振荡器和时钟电路57

2.6.2 CPU的时序58

2.6.3 指令执行的时序58

2.6.4 访问外部ROM/RAM的操作时序60

2.7 51系列单片机的并行I/O口61

2.7.1 并行I/O口61

2.7.2 并行I/O口的应用64

2.7.3 并行I/O口的扩展64

2.8 系统掉电保护和低功耗设计66

2.8.1 掉电保护66

2.8.2 低功耗设计67

2.9 51系列单片机的最小系统68

2.10 小结69

第3章 Keil C51开发工具简介70

本章详细介绍了Keil μVision3的集成开发环境μVision3,包括安装过程、项目管理窗口、菜单栏、工具栏,以及μVision3的管理配置和各种常用的窗口。μVision3是一个十分优秀的单片机开发软件,应用得十分广泛,熟练掌握μVision3集成开发环境的使用是单片机设计的基础。

3.1 Keil μVision3简介70

3.2 μVision3安装70

3.3 μVision3集成开发环境71

3.3.1 μVision3项目管理窗口72

3.3.2 μVision3的菜单栏72

3.3.3 μVision3的工具栏77

3.3.4 μVision3的管理配置79

3.3.5 μVision3的各种常用窗口81

3.4 小结84

第二篇 编程篇——汇编语言

第4章 汇编语言程序设计85

本章主要讲述了汇编语言的伪指令、汇编语言的程序格式及源程序的编译。本章最后还通过一个具体的实例,介绍了如何在Keil μVision3集成开发环境中进行单片机的汇编程序设计及仿真。汇编语言是最早应用于单片机开发的程序语言。相比其他程序设计语言,汇编语言指令的执行速度快、代码短小精悍,且具有确定的指令执行周期。熟练掌握本章内容是后续汇编语言程序学习的基础。

4.1 汇编语言程序概述85

4.1.1 汇编语言简介85

4.1.2 汇编语言程序设计步骤86

4.1.3 汇编语言程序实例86

4.2 伪指令87

4.2.1 汇编程序起始伪指令ORG87

4.2.2 汇编程序结束伪指令END87

4.2.3 等值伪指令EQU(或=)87

4.2.4 数据地址赋值伪指令DATA88

4.2.5 定义字节伪指令DB88

4.2.6 定义字伪指令DW88

4.2.7 定义空间伪指令DS89

4.2.8 位地址符号伪指令BIT89

4.3 汇编语言程序的格式89

4.4 源程序的汇编90

4.5 Keil μVision3中运行汇编语言实例90

4.5.1 创建项目90

4.5.2 创建源文件91

4.5.3 编译项目92

4.5.4 仿真调试92

4.6 小结93

第5章 汇编语言程序结构94

本章主要介绍了利用汇编语言进行单片机设计的各种程序结构,包括顺序结构、分支结构、循环结构和子程序结构。本章还介绍了两类比较常用的程序设计类型,即查表程序和运算类的程序。对于比较复杂的问题可以根据设计的要求,选用不同的程序结构来进行设计。因此,熟练掌握本章内容,对读者以后的设计工作会很有帮助。

5.1 顺序结构程序94

5.2 分支结构程序95

5.2.1 双分支结构95

5.2.2 多分支结构96

5.3 循环结构程序97

5.3.1 循环程序的结构和组成97

5.3.2 循环程序示例98

5.3.3 多重循环程序结构99

5.4 子程序结构100

5.4.1 子程序的结构100

5.4.2 子程序的调用与返回100

5.4.3 子程序设计实例101

5.5 查表结构程序102

5.6 运算类程序103

5.6.1 8位带符号整数的乘法子程序103

5.6.2 8位带符号整数的除法子程序104

5.7 小结106

第三篇 编程篇——C51

第6章 单片机C语言程序设计基础107

单片机C语言是现在单片机系统设计所广泛采用的程序语言。本章首先介绍了单片机C语言(C51语言)的特点,然后分别介绍了C51语言的标识符、关键字、数据类型、运算符和表达式等,并对每一个知识点都提供了完整详细的实例分析。本章是单片机C51语言的基础,熟练掌握本章知识,对以后章节的学习会有很大的帮助。

6.1 单片机C语言概述107

6.1.1 单片机C语言和汇编语言对比107

6.1.2 C51语言的主要特点107

6.2 单片机C语言在Keil μVision3中应用实例108

6.2.1 创建项目108

6.2.2 创建源文件109

6.2.3 编译项目109

6.2.4 仿真调试110

6.3 C51的标识符与关键字111

6.3.1 标识符111

6.3.2 关键字111

6.4 C51的数据类型113

6.4.1 常量与变量114

6.4.2 整型数据114

6.4.3 浮点型数据115

6.4.4 字符型数据116

6.4.5 指针型数据119

6.4.6 无值型数据120

6.5 C51的变量作用域120

6.5.1 基本规则120

6.5.2 自动变量121

6.5.3 外部变量122

6.5.4 静态变量123

6.5.5 寄存器变量123

6.6 分隔符与const修饰符123

6.6.1 C51分隔符123

6.6.2 const修饰符124

6.7 运算符125

6.7.1 算术运算符125

6.7.2 逻辑运算符和关系运算符126

6.7.3 位运算符128

6.7.4 特殊运算符130

6.7.5 运算符优先级和结合性133

6.8 表达式134

6.8.1 算术表达式134

6.8.2 赋值表达式135

6.8.3 逗号表达式136

6.8.4 关系和逻辑表达式137

6.9 小结138

第7章 数组139

本章首先介绍了C51语言中的数组的使用,主要包括数组类型的说明、数组元素的表示及初始化赋值。接着,本章分别对一维数组、二维数组及多维数组的使用进行了详细的讲解。数组是重要数据结构,广泛应用于C51语言的程序设计中。因此,熟练掌握本章内容是学习C51语言的基础。

7.1 数组类型说明139

7.2 数组元素的表示140

7.3 数组元素的初始化赋值140

7.4 一维数组141

7.4.1 一维数组声明142

7.4.2 向函数传递一维数组142

7.4.3 一维字符串数组142

7.5 二维数组143

7.5.1 二维数组声明144

7.5.2 二维数组初始化145

7.5.3 二维字符串数组146

7.6 多维数组147

7.7 小结147

第8章 指针148

本章首先介绍了C51语言中指针的使用,主要包括指针的概念、指针变量的声明和赋值。接着,本章详细讲解了指针变量的引用及运算规则。最后,本章还对几种特殊的指针进行了详细的介绍,主要包括数组指针、字符指针及指针数组。指针的概念来源于C语言,在程序设计中灵活使用指针可以优化程序设计。因此,熟练掌握本章内容是学习C51语言的基础,同时对读者以后的C51语言程序设计工作会大有帮助。

8.1 地址、指针和指针变量的概念148

8.2 指针变量的声明148

8.3 指针变量的赋值149

8.3.1 初始化赋值149

8.3.2 取地址赋值149

8.3.3 指针之间赋值149

8.3.4 数组赋值150

8.3.5 字符串赋值150

8.3.6 函数入口赋值150

8.4 指针变量的引用150

8.4.1 取地址运算符“&”150

8.4.2 取内容运算符“*”151

8.5 指针变量的运算152

8.5.1 关系运算152

8.5.2 算术运算152

8.6 数组指针153

8.6.1 指向一维数组的指针153

8.6.2 指向二维数组的指针154

8.6.3 指向一个由n个元素所组成的数组指针156

8.6.4 指针和数组的关系156

8.7 字符指针157

8.8 指针数组158

8.9 小结159

第9章 结构160

本章首先介绍了C51语言中的结构的使用,主要包括结构的定义、结构变量的定义和赋值。接着,本章详细讲解了结构数组及结构指针的使用。最后,本章还对几种特殊的指针进行了详细的介绍,主要包括嵌套结构和位结构。结构是C51语言中重要的数据类型,其和C语言中的结构非常类似。熟练掌握本章内容是学习C51语言的基础,同时对读者以后的C51程序设计工作会大有帮助。

9.1 结构的定义160

9.2 结构变量的定义161

9.2.1 先定义结构,再定义结构变量161

9.2.2 在定义结构的同时,定义结构变量161

9.2.3 直接说明结构变量161

9.3 结构变量的使用162

9.4 多重结构变量的赋值163

9.5 结构变量的初始化163

9.6 结构数组164

9.6.1 结构数组的定义164

9.6.2 结构数组的初始化赋值165

9.7 结构指针166

9.8 特殊结构168

9.8.1 嵌套结构168

9.8.2 位结构169

9.9 小结170

第10章 联合、枚举、类型说明和位域171

本章主要介绍了几种特殊形式的聚合数据类型,包括联合类型、枚举类型,还介绍了类型说明及位域。这些特殊的数据类型是对基本数据类型的有效扩充。灵活运用这些特殊数据类型,可以方便单片机的程序设计。因此,熟练掌握本章内容是单片机程序设计的基础。

10.1 联合类型171

10.1.1 联合和联合变量的定义171

10.1.2 联合变量成员的引用172

10.2 结构和联合的区别174

10.3 枚举类型175

10.3.1 枚举的定义175

10.3.2 枚举变量的声明175

10.3.3 枚举类型变量的赋值176

10.4 类型说明178

10.5 位域179

10.5.1 位域的定义和位域变量的声明179

10.5.2 位域变量的使用180

10.6 小结181

第11章 C51语言的函数182

本章详细介绍了C51语言中函数的使用,包括函数的定义、形参和实参、函数的返回值、函数的调用、函数及其变量的作用域。本章还结合单片机程序设计的特点,介绍了C51程序中的main函数。函数是C51语言中的重要概念,灵活运用函数可以实现程序的模块化设计。因此,熟练掌握本章内容,是C51语言程序设计的基础。

11.1 函数的概念和分类182

11.1.1 从函数定义角度182

11.1.2 从有无返回值角度183

11.1.3 从数据传送角度183

11.2 函数的定义183

11.3 函数的参数185

11.3.1 形参和实参185

11.3.2 数组作为函数参数186

11.3.3 多维数组作为函数参数188

11.3.4 指针作为函数参数188

11.4 函数的返回值189

11.5 函数调用189

11.5.1 赋值调用与引用调用190

11.5.2 递归调用190

11.5.3 嵌套调用192

11.6 函数及其变量的作用域193

11.6.1 函数的作用域193

11.6.2 函数的变量作用域193

11.7 main函数194

11.8 小结194

第12章 C51语言的常用库函数详解195

本章详细讲解了C51语言中常用的库函数,主要包括字符函数、字符串函数、I/O函数、数学函数、标准函数、内部函数、绝对地址访问函数、变量参数表函数、全程跳转函数及偏移量函数。这些库函数涵盖了常见的字符、字符串、数学计算、I/O控制等功能,读者在进行程序设计时可以直接调用使用。因此,熟练掌握和运用本章内容,可以大大减轻程序设计的负担,方便单片机的程序设计。

12.1 字符函数195

12.1.1 检查英文字母函数195

12.1.2 检查字母数字函数196

12.1.3 检查控制字符函数196

12.1.4 十进制数字检查函数197

12.1.5 可打印字符检查函数197

12.1.6 包含空格的可打印字符检查函数198

12.1.7 格式字符检查函数199

12.1.8 小写英文字母检查函数199

12.1.9 大写英文字母检查函数200

12.1.10 控制字符检查函数200

12.1.11 十六进制数字检查函数201

12.1.12 十六进制数字转换函数202

12.1.13 大写字符转换函数202

12.1.14 小写字符转换函数203

12.1.15 ASCII字符转换函数204

12.1.16 大写字符宏转换函数204

12.1.17 小写字符宏转换函数205

12.2 字符串函数206

12.2.1 字符查找函数206

12.2.2 指定长度的字符串比较函数206

12.2.3 字符串复制函数207

12.2.4 带终止字符的字符串复制函数208

12.2.5 字符串移动函数209

12.2.6 字符串填充函数209

12.2.7 字符串追加函数210

12.2.8 指定长度的字符串追加函数210

12.2.9 字符串比较函数211

12.2.10 包含结束符的字符串比较函数212

12.2.11 字符串覆盖函数213

12.2.12 指定长度的字符串覆盖函数213

12.2.13 获取字符串个数函数214

12.2.14 搜索字符串函数214

12.2.15 搜索字符函数215

12.2.16 返回位置值的字符搜索函数216

12.2.17 字符包含函数216

12.2.18 返回位置值的字符包含函数217

12.2.19 在指定字符集中查找不包含字符函数218

12.2.20 在指定字符集中查找包含字符函数218

12.2.21 查找第一个包含字符函数219

12.2.22 查找最后一个包含字符函数219

12.3 I/O函数220

12.3.1 字符读入函数220

12.3.2 字符读入输出函数221

12.3.3 字符串读入函数222

12.3.4 字符回送函数222

12.3.5 字符输出函数223

12.3.6 格式化输出函数223

12.3.7 格式化内存缓冲区输出函数225

12.3.8 字符串输出函数226

12.3.9 格式化输入函数227

12.3.10 格式化内存缓冲区输入函数228

12.3.11 字符串内存输出函数229

12.3.12 指向缓冲区的输出函数230

12.4 数学函数231

12.4.1 绝对值函数231

12.4.2 指数及对数函数232

12.4.3 三角函数232

12.4.4 取整函数234

12.4.5 浮点型分离函数234

12.4.6 幂函数235

12.5 标准函数235

12.5.1 字符串转换函数236

12.5.2 带返回指针的字符串转换函数237

12.5.3 随机函数238

12.5.4 数组内存分配函数238

12.5.5 释放内存函数239

12.5.6 初始化内存函数240

12.5.7 内存分配函数240

12.5.8 调整内存大小函数241

12.6 内部函数242

12.6.1 循环左移函数242

12.6.2 循环右移函数243

12.6.3 延时函数244

12.6.4 位测试函数244

12.7 绝对地址访问函数245

12.7.1 BYTE型存储空间访问函数245

12.7.2 WORD型存储空间访问函数245

12.7.3 far存储区访问函数246

12.7.4 far存储区数组访问函数247

12.8 变量参数表函数247

12.9 全程跳转函数248

12.10 计算结构体成员的偏移量函数249

12.11 小结250

第13章 C51语句和流程251

本章详细讲述了单片机C51语言中的各种语句结构,包括说明语句、表达式语句、复合语句、循环语句、条件语句、开关语句、跳转语句、函数调用语句、空语句和返回语句。这些语句是C51语言程序的重要组成部分。灵活利用这些语句,可以实现不同的程序流程控制结构,如顺序结构、选择结构和循环结构等,以达到简化程序的目的。熟练掌握本章内容是进行C51语言程序设计的基础。

13.1 说明语句251

13.2 表达式语句251

13.3 复合语句252

13.4 循环语句253

13.4.1 while语句253

13.4.2 do-while语句254

13.4.3 for语句254

13.5 条件语句255

13.5.1 单分支结构255

13.5.2 双分支结构255

13.5.3 阶梯式if-else-if结构256

13.6 开关语句258

13.7 跳转语句259

13.7.1 goto语句259

13.7.2 break语句260

13.7.3 continue 语句260

13.8 函数调用语句261

13.9 空语句261

13.10 返回语句262

13.11 C51语言的流程控制结构263

13.12 小结264

第14章 预处理及用户配置文件265

本章详细介绍了C51语言所支持的各种预处理命令,包括宏定义指令、文件包含指令、条件编译指令和其他一些编译指令。然后还介绍了C51语言编译器的一些控制指令,这需要和具体的编译器相联系。最后还介绍了一下C51语言的用户配置文件。熟练掌握本章内容,对读者以后的单片机程序设计有很大帮助。

14.1 预处理命令概述265

14.2 宏定义指令265

14.2.1 #define命令266

14.2.2 #undef命令267

14.3 文件包含指令268

14.4 条件编译指令269

14.4.1 #if、#else、#endif命令269

14.4.2 #elif命令270

14.4.3 #ifdef、#ifndef命令270

14.5 其他编译指令271

14.5.1 #line命令271

14.5.2 #error272

14.5.3 #pragma272

14.6 C51语言编译器的控制指令273

14.6.1 源文件控制类273

14.6.2 目标文件(Object)控制类273

14.6.3 列表文件(Listing)控制类273

14.7 C51语言的用户配置文件274

14.7.1 C51语言启动代码文件274

14.7.2 C51语言启动代码分析277

14.7.3 变量初始化文件279

14.7.4 基本I/O函数文件279

14.7.5 分组配置文件279

14.8 小结280

第15章 C51语言的存储结构281

本章详细讲述了C51语言的存储器结构、存储类型、存储模式及存储器指针等,后面还介绍了动态内存分配。数据的存储模式是单片机系统特有的概念,这里的内容涉及单片机的硬件资源比较多,读者应该对照着单片机的介绍来进行学习,这样可以加深理解。

15.1 存储器结构281

15.1.1 51系列单片机的存储区域281

15.1.2 片内数据存储器(RAM)的结构281

15.2 存储类型282

15.2.1 data存储类型282

15.2.2 bdata存储类型282

15.2.3 idata存储类型283

15.2.4 pdata存储类型283

15.2.5 xdata存储类型283

15.2.6 code存储类型284

15.3 扩展数据类型284

15.3.1 sfr和sfr16284

15.3.2 sbit285

15.3.3 bit型变量285

15.4 存储模式285

15.4.1 Small模式286

15.4.2 Compact模式286

15.4.3 Large模式286

15.4.4 存储模式的选择286

15.5 C51语言的存储器指针286

15.5.1 一般指针286

15.5.2 存储器指针287

15.5.3 指针存储类型与指针所指向的数据的存储类型的关系288

15.6 动态内存分配288

15.6.1 C51语言的动态分配函数289

15.6.2 malloc和calloc函数289

15.7 小结289

第四篇 51系列单片机编程指南篇

第16章 51系列单片机的指令系统290

本章详细讲解了51系列单片机的指令系统,包括指令的7种寻址方式,以及51系列单片机指令系统中的各类指令的书写格式、功能、使用方法及注意事项等。对于每一条指令,均给出了完整详细的实例来讲解如何在程序设计中应用。这一章的内容是读者学习使用单片机的基础必备知识,深刻地理解单片机指令系统,可以为接下来的学习打下良好的基础。

16.1 指令系统简介290

16.1.1 指令格式290

16.1.2 指令符号291

16.2 寻址方式292

16.2.1 立即寻址292

16.2.2 直接寻址293

16.2.3 寄存器寻址295

16.2.4 寄存器间接寻址295

16.2.5 变址寻址297

16.2.6 相对寻址298

16.2.7 位寻址299

16.3 数据传送指令300

16.3.1 内部RAM数据传送指令300

16.3.2 外部RAM数据传送指令304

16.3.3 程序存储器数据传送指令305

16.3.4 数据交换指令306

16.3.5 堆栈操作指令308

16.4 算术运算指令309

16.4.1 加法指令309

16.4.2 带进位的加法指令311

16.4.3 带借位的减法指令312

16.4.4 加1指令314

16.4.5 减1指令315

16.4.6 乘除法指令316

16.4.7 十进制调整指令317

16.5 逻辑运算及移位指令318

16.5.1 逻辑与指令319

16.5.2 逻辑或指令320

16.5.3 逻辑异或指令321

16.5.4 累加器清零指令322

16.5.5 累加器取反指令323

16.5.6 组合逻辑电路的实现324

16.5.7 循环移位指令324

16.6 控制转移指令326

16.6.1 无条件转移指令326

16.6.2 条件转移指令330

16.6.3 子程序调用及返回指令334

16.7 位操作指令337

16.7.1 位变量传送指令337

16.7.2 置位与清零指令338

16.7.3 位逻辑运算指令339

16.7.4 位控制转移指令340

16.8 空操作指令342

16.9 51系列单片机指令汇总343

16.10 小结347

第17章 51系列单片机的定时器/计数器348

本章详细讲述了51系列单片机的定时器/计数器的结构、控制寄存器及4种工作方式,并分别给出了详细的程序设计方法;本章还对52子系列的单片机定时器/计数器T2也进行了详细的介绍。定时器/计数器是单片机的一个非常有用的功能,熟练掌握本章内容,对读者以后的单片机设计有很大帮助。

17.1 定时器/计数器0和1348

17.1.1 定时器/计数器的结构348

17.1.2 定时器/计数器的功能349

17.1.3 T0和T1的控制寄存器349

17.2 定时器/计数器0和1的工作模式352

17.2.1 工作模式0及其程序设计352

17.2.2 工作模式1及其程序设计354

17.2.3 工作模式2及其程序设计356

17.2.4 工作模式3及其程序设计358

17.3 定时器/计数器2360

17.3.1 T2的控制寄存器T2CON和T2MOD及其程序访问361

17.3.2 定时器/计数器2的工作模式362

17.4 小结367

第18章 51系列单片机中断系统及其程序设计368

本章详细讲述了中断系统的基本概念,并重点介绍了51系列单片机的中断类型及中断的各种控制标准位;接着讲述了51系列单片机对中断的处理过程,并通过实例详细讲述了各种中断源的编程方式;最后还介绍了外部中断源的扩展方式及其程序设计。中断是51系列单片机重要的系统资源,合理使用中断系统,可以减轻CPU的负担,简化程序设计,实现对外部信号的实时处理。因此,熟练掌握本章内容是学习51系列单片机的基础。

18.1 中断系统概述368

18.1.1 什么是中断368

18.1.2 中断的用途368

18.1.3 中断需要解决的问题369

18.2 51系列单片机的中断类型371

18.2.1 外部中断源371

18.2.2 定时中断源371

18.2.3 串行中断源371

18.3 51系列单片机的中断系统372

18.3.1 中断请求标志及其访问372

18.3.2 中断允许标志及其访问373

18.3.3 中断优先级标志及其访问374

18.4 中断的处理过程375

18.4.1 中断响应375

18.4.2 中断处理377

18.4.3 中断返回378

18.4.4 中断请求的撤离378

18.5 中断源的程序设计378

18.5.1 外部中断源的程序设计378

18.5.2 定时中断源的程序设计380

18.5.3 串行中断源的程序设计381

18.6 外部中断源的扩展382

18.6.1 定时器/计数器扩展外部中断源382

18.6.2 查询方式扩展外部中断源385

18.7 小结386

第19章 51系列单片机的串行接口387

本章首先详细介绍了串行通信的基本方式,包括异步串行通信和同步串行通信,以及单工制式、半双工制式和全双工制式三种数据传送方式。51系列单片机集成了全双工的串行接口,本章详细介绍了单片机串行接口的内部结构、程序控制、4种工作模式及其程序设计等。最后介绍了单片机的串行接口在双机通信和多机通信方面的应用。单片机串行口的应用非常广泛,熟练掌握本章内容很重要。

19.1 串行通信概述387

19.1.1 串行通信简介387

19.1.2 串行通信的数据传送方式389

19.2 51系列单片机的串行接口390

19.2.1 单片机串行接口的内部结构390

19.2.2 单片机串行接口的程序控制391

19.2.3 波特率的程序设计393

19.3 串行口的工作模式0396

19.3.1 模式0的发送及扩展输出端口396

19.3.2 模式0的接收及扩展输入端口398

19.4 串行口的工作模式1399

19.4.1 模式1的发送400

19.4.2 模式1的接收401

19.5 串行口的工作模式2402

19.5.1 模式2的发送402

19.5.2 模式2的接收403

19.6 串行口的工作模式3405

19.6.1 模式3的发送405

19.6.2 模式3的接收406

19.7 双机通信程序设计407

19.7.1 查询方式407

19.7.2 中断方式408

19.8 多机通信程序设计410

19.8.1 多机通信原理411

19.8.2 多机通信协议约定411

19.8.3 多机通信程序设计411

19.9 小结416

第20章 C51下的RTX-51实时多任务操作系统417

本章详细介绍了运行于8051硬件平台的RTX-51实时多任务操作系统。RTX-51的程序不同于普通的单片机程序,这里对RTX-51的任务调度、系统函数、任务管理及RTX-51 Tiny的配置进行了详细的阐述。熟练掌握和运用本章内容,可以简化复杂的多任务单片机系统设计。

20.1 RTX-51实时多任务操作系统简介417

20.1.1 RTX-51种类417

20.1.2 RTX-51与单任务程序的比较418

20.2 RTX-51的任务调度419

20.2.1 RTX-51循环任务调度420

20.2.2 RTX-51事件任务调度420

20.2.3 RTX-51信号任务调度421

20.2.4 优先级及抢先任务切换421

20.2.5 RTX-51的其他特性422

20.3 RTX-51 Tiny的系统函数423

20.3.1 发送信号函数isr_send_signal423

20.3.2 清除信号标志函数os_clear_signal423

20.3.3 启动任务函数os_create_task424

20.3.4 删除任务函数os_delete_task424

20.3.5 当前任务号函数os_running_task_id425

20.3.6 发送信号函数os_send_signal425

20.3.7 等待函数os_wait425

20.3.8 等待函数os_wait1426

20.3.9 等待函数os_wait2427

20.4 RTX-51 Tiny的任务管理428

20.4.1 RTX-51 Tiny的任务状态428

20.4.2 RTX-51 Tiny的事件428

20.4.3 RTX-51 Tiny的任务切换428

20.5 RTX-51 Tiny的配置文件429

20.6 RTX-51 Tiny的要求及限定431

20.6.1 使用RTX-51 Tiny的要求431

20.6.2 RTX-51 Tiny的注意事项432

20.7 RTX-51 FULL的系统函数及技术参数433

20.7.1 RTX-51 FULL函数一览433

20.7.2 RTX-51的技术参数434

20.8 小结435

第21章 Keil μVision3中的单片机硬件资源仿真436

本章详细介绍了Keil μVision3集成开发环境中,对单片机各种常见的片上资源的仿真操作。主要包括并行I/O端口、定时器/计数器、串行接口、中断、看门狗定时器、A/D、D/A、寄存器及低功耗仿真。单片机的程序设计主要是对各种片上资源进行操作,Keil μVision3集成开发环境对各种片上资源均提供了完善的仿真支持。在程序设计时,通过仿真操作可以完美地模拟程序的执行情况,便于及时发现问题。这样便大大提高了程序开发的可靠性,加速了程序的开发速度。因此,读者应该熟练掌握本章内容。

21.1 仿真概述436

21.2 并行I/O端口的仿真436

21.3 定时器/计数器的仿真438

21.3.1 定时器/计数器T0和T1的仿真界面438

21.3.2 定时器/计数器T2的仿真界面439

21.3.3 定时器/计数器的仿真操作440

21.4 串行接口的仿真442

21.4.1 串行接口的仿真界面442

21.4.2 串行接口的仿真操作443

21.4.3 字符串输入输出的仿真操作444

21.5 中断仿真446

21.5.1 中断系统的仿真界面446

21.5.2 中断系统的仿真操作447

21.6 看门狗定时器的仿真448

21.6.1 看门狗定时器的仿真界面448

21.6.2 看门狗定时器的仿真操作448

21.7 A/D仿真449

21.7.1 A/D转换器的仿真界面450

21.7.2 A/D转换器的仿真操作450

21.8 D/A仿真452

21.8.1 D/A转换器的仿真界面452

21.8.2 D/A转换器的仿真操作453

21.9 寄存器仿真455

21.9.1 寄存器的仿真界面455

21.9.2 寄存器的仿真操作455

21.10 低功耗仿真456

21.11 小结457

第22章 Keil μVision3中的程序调试458

本章详细介绍了Keil μVision3集成开发环境的程序调试功能,包括性能分析器、代码覆盖分析器和断点等。本章还详细介绍了Keil μVision3编译器提供的调试命令,这些调试命令大大扩展了单片机程序的仿真调试。合理使用Keil μVision3的各种调试功能及调试命令,可以在程序设计和调试时达到事半功倍的效果。因此,熟练掌握本章内容有助于读者分析和优化单片机程序。

22.1 Keil μVision3的程序调试器概述458

22.2 性能分析器458

22.3 代码覆盖分析器459

22.4 断点460

22.5 Keil μVision3调试命令461

22.5.1 通用命令461

22.5.2 程序命令465

22.5.3 断点命令467

22.5.4 存储器命令469

22.6 小结471

第五篇 典型案例篇

第23章 键盘程序设计472

本章详细讲述了键盘设计需要注意的一些问题,然后介绍了独立式按键和矩阵式键盘的工作方式。其中着重讲了矩阵式键盘的扫描法、线反转法和中断法的工作原理及程序设计。最后通过一个完整电路,实现了矩阵式键盘的扫描查询方式在程序中的应用。在实例中,还通过仿真分析了整个程序流程的正确性。矩阵式键盘应用十分广泛,熟练掌握它的使用是学习单片机应用系统的基础。

23.1 键盘接口概述472

23.1.1 按键编码472

23.1.2 输入的可靠性472

23.1.3 程序检测及响应473

23.2 独立式按键及其编程接口473

23.2.1 独立式按键结构473

23.2.2 独立式按键程序设计474

23.3 4×4矩阵式键盘及其编程接口475

23.3.1 扫描法及其程序设计475

23.3.2 线反转法及其程序设计477

23.3.3 中断法及其程序设计479

23.4 矩阵式键盘的接口实例480

23.4.1 电路图480

23.4.2 程序设计481

23.4.3 程序仿真483

23.5 小结485

第24章 LED数码管显示486

本章详细介绍了LED数码管显示器件,包括7段共阳极LED数码管和7段共阴极LED数码管,然后介绍了LED的静态显示技术及其应用实例。本章还重点讲解了LED数码管的动态显示技术,包括静态驱动、动态驱动和LED驱动器驱动。最后通过一个具体的实例讲解了使用LED驱动器控制多个LED的显示。LED数码管显示是单片机系统中常用的显示接口,读者应该熟练掌握其使用方法。

24.1 LED数码管概述486

24.1.1 7段共阳极LED结构及显示段码486

24.1.2 7段共阴极LED结构及显示段码487

24.2 单个LED驱动实例488

24.2.1 电路图488

24.2.2 程序设计490

24.3 多个LED驱动方式492

24.3.1 静态驱动显示493

24.3.2 动态驱动显示497

24.3.3 LED驱动器499

24.4 多个LED驱动实例503

24.4.1 LED驱动器电路图503

24.4.2 程序设计504

24.5 小结508

第25章 LCD液晶显示模块509

本章详细介绍了液晶和液晶显示模块的结构及原理,并对常用的LCD驱动控制器的指令和功能进行了介绍,其中给出了用于图形点阵式液晶读写的详细子函数。最后利用一款采用这个驱动器的液晶显示模块,来介绍如何控制其显示汉字和图形等。近年来,液晶显示模块应用越来越广泛。熟练掌握本章内容对读者以后的设计很有帮助。

25.1 LCD液晶显示概述509

25.1.1 液晶的来源509

25.1.2 LCD液晶显示器结构及原理509

25.1.3 液晶显示模块的种类510

25.1.4 液晶显示模块的优点511

25.2 液晶显示模块控制接口511

25.2.1 LCD控制驱动器ST7920概述511

25.2.2 ST7920功能说明512

25.2.3 ST7920基本指令集516

25.2.4 ST7920扩充指令集518

25.2.5 ST7920的操作方式520

25.2.6 图形点阵式液晶显示模块521

25.2.7 图形点阵式液晶读写子函数522

25.3 汉字及图形显示实例525

25.3.1 电路设计525

25.3.2 建立项目526

25.3.3 汉字显示实例526

25.3.4 图形显示实例528

25.3.5 任意位置图形显示实例530

25.4 小结532

第26章 D/A转换实例533

本章首先详细介绍了D/A转换器的基本知识,包括D/A转换器的原理、D/A转换器的类型及技术参数,然后介绍了一个高速易使用的D/A转换芯片AD558。最后通过一个具体的实例,介绍了如何采用AD558在光通信领域中完成对光信号的相位精确调制。D/A转换器在测控领域有着广泛的应用,扩展了8051单片机处理模拟信号的能力,是现代电子设计中不可缺少的一部分。

26.1 D/A转换概述533

26.1.1 D/A转换原理533

26.1.2 D/A转换器的类型534

26.1.3 D/A转换器的技术参数535

26.2 高速D/A转换芯片AD558536

26.2.1 AD558简介536

26.2.2 AD558电压输出模式537

26.2.3 AD558的数据锁存538

26.3 光通信电压调制电路实例——电路部分539

26.3.1 相位调制的原理539

26.3.2 电压调制系统540

26.3.3 电路图541

26.4 光通信电压调制电路实例——程序部分544

26.4.1 系统状态编码544

26.4.2 建立项目544

26.4.3 主程序545

26.4.4 无调制模式函数546

26.4.5 调制模式1函数546

26.4.6 调制模式2函数547

26.4.7 调制模式3函数547

26.4.8 调制模式4函数547

26.5 光通信电压调制电路实例——仿真部分547

26.5.1 程序仿真548

26.5.2 运行效果548

26.6 小结548

第27章 可编程逻辑器件CPLD549

本章首先介绍了可编程逻辑器件的发展,以及CPLD和FPGA的结构及逻辑实现。可编程逻辑器件一般采用VHDL语言进行设计,本章对VHDL语言进行了简要的介绍。本章对常用的CPLD芯片EPM7128SLC84进行展开讲解,提供了Altera公司的CPLD下载电路。本章实例部分,使用CPLD配合AT89S52来扩展了8051单片机的并行I/O端口。单片机和可编程逻辑器件内部结构不同,各有优势,实际系统中经常需要将两者结合使用。

27.1 可编程逻辑器件概述549

27.1.1 可编程逻辑器件的发展549

27.1.2 CPLD的结构及其逻辑实现549

27.1.3 FPGA的结构及其逻辑实现551

27.2 硬件描述语言简述552

27.2.1 硬件描述语言VHDL概述553

27.2.2 VHDL程序结构553

27.3 Altera常用CPLD芯片介绍555

27.4 使用CPLD扩展51单片机I/O接口557

27.4.1 CPLD扩展单片机I/O接口原理558

27.4.2 电路图558

27.5 单片机程序设计559

27.5.1 项目建立559

27.5.2 主程序560

27.6 VHDL程序设计560

27.6.1 项目建立560

27.6.2 程序设计561

27.7 程序仿真563

27.7.1 设计CPLD引脚563

27.7.2 仿真操作564

27.8 程序下载565

27.9 小结567

第28章 51系列单片机读写I2C总线568

本章详细介绍了I2C串行总线的工作原理、结构及寻址方式等,并对I2C串行总线的数据传输进行了详细的介绍。本章还给出了采用普通的51系列单片机模拟读写I2C串行总线的汇编语言和C语言的代码。最后通过一个具体的实例,讲解了单片机读写I2C总线外围器件的电路设计及程序设计。I2C串行总线具有接口简单,体积小等优点,在实际电路设计中经常使用。熟练掌握本章内容,可以控制大部分的I2C总线外围器件,从而大大扩展了51系列单片机的使用范围。

28.1 I2C总线概述568

28.1.1 I2C总线工作原理568

28.1.2 I2C总线的电气结构和负载能力569

28.1.3 I2C总线器件的寻址方式569

28.2 I2C总线数据传输协议及其程序详解570

28.2.1 起始信号570

28.2.2 终止信号571

28.2.3 应答信号571

28.2.4 非应答信号572

28.2.5 应答位检查573

28.2.6 总线数据位573

28.2.7 写数据573

28.2.8 读数据576

28.3 51单片机读写EEPROM579

28.3.1 串行EEPROM存储器简介579

28.3.2 电路设计580

28.3.3 程序设计581

28.3.4 仿真分析582

28.4 小结583

第29章 单片机音乐播放584

本章详细讲述了音乐学中音调和节拍的概念,以及如何使用单片机来实现音调和节拍的演奏。本章还给出了一些音乐片段的示例代码。最后通过一个具体的实例,讲解了如何使用单片机播放音乐。单片机的功能强大,成本低廉,对于需要简单音乐播放的场合,可以选择使用单片机控制扬声器来实现。

29.1 单片机发音概述584

29.1.1 音调584

29.1.2 节拍586

29.1.3 单片机音乐播放的方法及音乐示例586

29.2 单片机音乐播放实例——电路图589

29.3 单片机音乐播放实例——程序设计590

29.3.1 建立项目590

29.3.2 程序设计591

29.4 小结593

第30章 实时时钟芯片应用594

本章详细介绍了实时时钟芯片DS1302的命令字节和数据格式,并介绍了两种数据传输方式,即单字节传输方式和多字节突发传输方式。本章通过一个具体的实例,讲解了如何使用8051单片机来实现对DS1302的控制,在该实例中分别采用了单字节传输方式和多字节传输方式来对DS1302的时钟寄存器及RAM进行操作。实时时钟常用于需要时间设定和显示的场合,在单片机应用系统中很常见,读者熟练掌握本章内容,可以轻松实现单片机的时钟显示扩展。

30.1 实时时钟芯片DS1302概述594

30.1.1 实时时钟芯片DS1302概述594

30.1.2 实时时钟芯片DS1302命令字节595

30.1.3 实时时钟芯片DS1302数据格式595

30.1.4 实时时钟芯片DS1302数据传输方式597

30.2 单片机读写实时时钟芯片实例598

30.2.1 电路图598

30.2.2 建立项目598

30.2.3 主程序599

30.2.4 复位函数601

30.2.5 字节读取函数602

30.2.6 字节写入函数602

30.2.7 初始化函数602

30.2.8 时钟字节写入函数603

30.2.9 RAM字节写入函数604

30.2.10 时钟寄存器内容显示函数604

30.2.11 多字节突发方式读取RAM函数605

30.2.12 多字节突发方式写入RAM函数605

30.3 小结606

第31章 静态RAM存储器应用607

本章详细讲述了RAM存储器的种类和特点,并重点讲解了应用最为广泛的静态RAM存储器。本章还对一款常用的静态RAM存储器HM628128进行了详细介绍。最后,通过一个综合的实例介绍了静态RAM存储器的读写。实例中使用了计算机的串行通信接口,以及单片机的串行接口设计。通过本章的讲解,读者可以掌握单片机系统中静态RAM存储器的读写及计算机串行的应用。

31.1 静态RAM存储器概述607

31.1.1 RAM存储器概述607

31.1.2 静态RAM芯片HM628128608

31.1.3 静态RAM芯片HM628128的读写608

31.2 静态RAM存储器读写实例609

31.2.1 系统原理610

31.2.2 串行通信接口概述610

31.2.3 单片机与RS-232C的接口615

31.2.4 系统电路原理图616

31.2.5 建立项目617

31.2.6 主程序设计618

31.2.7 系统运行620

31.3 小结622

第32章 道路交通灯控制系统623

本章详细讲述了道路交通灯的运行原理,以及如何使用RTX-51 Tiny程序来实现道路交通灯的控制模拟。本章给出了详细的电路图,以及RTX-51 Tiny的多任务程序。通过本章的学习,可以掌握实时多任务操作系统的设计,尤其是基于8051单片机的RTX-51 Tiny的程序设计。

32.1 交通灯控制系统概述623

32.1.1 道路交通灯概述623

32.1.2 交通灯控制系统623

32.2 交通灯控制系统原理图624

32.3 多任务交通灯控制系统程序625

32.3.1 建立项目625

32.3.2 多任务划分及程序设计626

32.3.3 串行通信函数632

32.3.4 获取命令函数635

32.4 小结636

第33章 单总线温度传感器DS18S20637

本章介绍了1-Wire单总线的工作原理,并结合1-Wire总线接口温度传感器DS18S20,详细讲解了其供电方式及数据操作命令。最后通过一个完整的实例介绍了如何使用51系列单片机模拟1-Wire总线数据传输,从而实现DS18S20的控制。1-Wire单总线是一种结构简单的接口协议,其最大化地减少了I/O引脚数目,在实际电路中有着广泛的应用。

33.1 单总线概述637

33.2 单总线温度传感器DS18S20638

33.2.1 温度传感器DS18S20概述638

33.2.2 DS18S20的供电方式639

33.2.3 DS18S20的数据操作639

33.3 单片机读写温度传感器DS18S20实例642

33.3.1 电路图642

33.3.2 建立项目643

33.3.3 DS18S20读写子函数643

33.3.4 主函数649

33.3.5 程序仿真651

33.4 小结651

第34章 Microware串行总线EEPROM的应用652

本章详细讲解了三线制Microware串行总线,并通过Microware串行总线的EEPROM介绍了Microware串行总线的操作指令及其操作时序。本章最后通过一个具体的实例,介绍了如何使用标准的51系列单片机来在软件上仿真模拟Microware串行总线。其中给出了Microware串行总线读写的子函数及一个完整的实例。三线制Microware串行总线减少了I/O引脚的使用,在实际电路设计中具有广泛的应用,读者应该熟练掌握。

34.1 三线制Microware串行总线概述652

34.2 Microware串行总线接口的EEPROM653

34.2.1 Microware串行总线接口EEPROM概述653

34.2.2 Microware串行总线接口EEPROM的指令653

34.2.3 Microware串行总线接口EEPROM的指令时序654

34.3 51系列单片机读写三线制EEPROM实例657

34.3.1 电路图657

34.3.2 建立项目657

34.3.3 三线制Microware串行总线读写子函数658

34.3.4 主程序660

34.3.5 Microware串行总线仿真662

34.4 小结663

第35章 单片机控制打印机实例664

本章详细讲述了LASER PP40微型四色描绘式打印机,包括其接口、工作时序、文本模式和图形模式等。本章最后还通过一个具体的实例,介绍了如何使用51系列单片机控制LASER PP40微型打印机打印输出。LASER PP40微型打印机接口简单、控制方便,十分适合作为单片机系统的智能输出扩展。因此,熟练掌握本章内容对读者以后的单片机系统设计工作很有帮助。

35.1 打印机概述664

35.1.1 LASER PP40打印机概述664

35.1.2 LASER PP40的文本模式665

35.1.3 LASER PP40的图形模式666

35.2 51系列单片机控制打印机实例667

35.2.1 电路图667

35.2.2 建立项目668

35.2.3 程序设计668

35.3 小结669

第36章 A/D转换实例670

本章首先详细介绍了A/D转换的原理、A/D转换器的技术参数及A/D转换器的选用原则。接着,本章介绍了一个高性能的8通道A/D转换器MAX197。其中,详细讲解了MAX197的特性、引脚功能,以及接口、控制和时序逻辑等。最后,本章通过一个完整的实例介绍了A/D转换器MAX197与单片机的接口。A/D转换在测控领域,特别是模拟信号的数据采集系统中有着广泛的应用,读者应熟练掌握A/D转换的相关知识及A/D转换器的使用。

36.1 A/D转换概述670

36.1.1 A/D转换原理670

36.1.2 A/D转换器的技术参数672

36.1.3 A/D转换器的选择原则673

36.2 8通道A/D转换器MAX197673

36.2.1 MAX197的特性及引脚功能674

36.2.2 MAX197的接口、控制字及时序675

36.3 单片机读写A/D转换器实例677

36.3.1 电路图677

36.3.2 建立项目679

36.3.3 程序设计679

36.3.4 程序仿真682

36.4 小结682

第37章 单片机读写智能IC卡683

本章主要介绍了智能IC卡的相关知识。其中对目前市场上广泛使用的AT45DB041D接触式IC卡芯片进行了详细介绍,包括芯片的功能、内存空间和指令。本章还通过一个具体的实例,介绍了如何使用单片机对IC卡芯片进行读写操作。由于IC卡芯片采用SPI串行数据接口,这里使用了带有SPI接口的AT89S8253单片机进行读写操作。智能IC卡目前得到广泛的使用,读者应该熟练掌握本章内容。

37.1 智能IC卡概述683

37.1.1 智能IC卡分类683

37.1.2 接触式IC卡684

37.1.3 非接触式IC卡684

37.2 智能IC卡芯片684

37.2.1 IC卡芯片AT45DB041简介684

37.2.2 AT45DB041D的内存空间及其读写685

37.2.3 AT45DB041D的指令686

37.3 单片机读写智能IC卡实例687

37.3.1 电路图687

37.3.2 SPI接口单片机AT89S8253简介688

37.3.3 建立项目689

37.3.4 IC卡芯片AT45DB041D读写子函数690

37.3.5 主程序692

37.4 小结694

第38章 单片机智能锂电池充电管理695

本章首先介绍了广泛使用的锂电池,以及锂电池的充电要求。接着介绍了MAXIM公司的一款高性能的智能充电管理芯片MAX1898,包括MAX1898引脚功能及其充电工作原理。最后,本章通过一个具体的实例,介绍了如何使用51系列单片机控制MAX1898来实现单节锂电池的智能充电过程。锂电池及其充电器广泛应用于生活中,因此,熟练掌握本章内容具有极大的实际意义。

38.1 锂电池及其充电概述695

38.1.1 锂电池概述695

38.1.2 锂电池充电概述696

38.2 智能充电管理芯片MAX1898696

38.2.1 智能充电管理芯片MAX1898概述696

38.2.2 MAX1898充电工作原理697

38.3 单片机智能控制锂电池充电实例698

38.3.1 电路图699

38.3.2 智能充电器的功能700

38.3.3 建立项目700

38.3.4 程序设计701

38.4 小结702

……[看更多目录]

序言51系列单片机是目前应用最为广泛的一类微处理器,它以低廉的价格和强大的功能,受到广大电子设计爱好者和工程师的欢迎。51系列单片机内部具有丰富的硬件资源,例如定时器/计数器、中断系统、串行接口,并且它还提供了详尽的指令操作系统,可以供程序员很方便地进行程序设计。在51系列单片机的开发过程中,程序设计是重点也是难点。初学者往往很难快速掌握单片机指令的应用、各个功能部件的编程方法及程序设计思路。本书重点针对51系列单片机的编程进行阐述,详细讲解各个指令及功能部件的编程方法,并给出大量的程序示例供读者学习参考。除

文摘2.6.2 CPU的时序

CPU的时序是指令执行所遵从的格式。在单片机内部,振荡器始终驱动内部时钟发生器向cPu提供时钟信号。时钟发生器的输入是一个二分频触发器,这个二分频触发器为单片机提供了一个二相时钟信号,即相位信号P1和相位信号P2,驱动cPu产生执行指令功能的机器周期。

单片机的时序是用定时单位来描述的,其描述了指令执行中各控制信号在时间上的关系,这里涉及节拍、状态、机器周期和指令周期4个概念,接下来分别说明它们之间的关系,示意图如图2.12所示。

拍(P):拍为振荡脉冲的周期,为方便描述,这里用P来表示。它是晶体的振荡周期,或者外部时钟脉冲的周期。拍是5l系列单片机中的最小时序单元。

时钟周期(s):振荡脉冲信号经过二分频后,便可得到单片机的时钟信号,时钟信号的周期一般用s来表示。一个状态包含两个拍,分别称为P1和P2。时钟周期是单片机CPU中最基本的时间单元,在一个时钟周期内,cPU仅完成一个最基本的动作。

机器周期:5l系列单片机中规定,一个机器周期由6个时钟周期(s1~s6)组成,再细分可以表示为12个拍组成。从图2.12中可以看出依次为SIP1、SIP2、S2Fll、……、$6P2。如果振荡频率一旦确定,则机器周期也就确定了。比如选用24MHz的晶体振荡器,则对应的机器周期T=500ns。

指令周期:执行一条指令所需要的时间即指令周期。不同的指令有不同的指令周期,表现为需要不同的机器周期,单周期指令执行需要一个机器周期,双周期指令执行需要两个机器周期。指令的周期一般都在1~4个机器周期范围内,具体可以参考指令表中的介绍。

插图:

51单片机开发与应用技术详解(珍藏版)(附赠VCD光盘一张)

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
>>返回首頁<<
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有