单片机原理与应用系统设计(第2版)

单片机原理与应用系统设计(第2版)"

作者:马秀丽、周越、王红
ISBN:9787302475590
定价:¥68
字数:千字
页数:
出版时间:2017.09.01
开本:
版次:2-3
装帧:
出版社:清华大学出版社
简介

本书较全面和详细地介绍了单片机的基本原理、系统结构、指令系统、内部资源、外部接口扩展、应用系统设计实例以及嵌入式操作系统在单片机系统中应用等内容,并通过大量实例分析,重点讲解单片机应用系统的设计方法,以培养读者单片机应用系统设计能力。

全书共12章。每章节的例题均由浅入深,循序渐进、讲解透彻。书中相关例程均在KeilC51 3.0环境下调试通过,能够实际演示。每章最后备有习题,以及时巩固所学知识。

前言

Foreword

本书的目的是帮助初学者学习使用单片机。首先,作者总结多年的工程实践经验和教学体会,先与读者分享一下学习经验。

1. 分享经验

首先,是做好基础知识的准备。基础知识包括模拟电路、数字电路和C语言知识。在学习单片机之前,应先温习所学过的模拟电路、数字电路以及C语言知识,为学习单片机加强基础。

单片机的硬件电路大多数属于数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理就能容易理解,就能轻松地迈开学习的第一步。因此,如果你觉得单片机很难,那就应该先去重温数字电路,搞清楚触发器、寄存器、门电路、CMOS电路、时序逻辑和时序图、进制转换等基础知识。当你掌握了这些基础知识后再去看单片机的结构和原理,就会大彻大悟,信心倍增。模拟电路是电子技术的基础,主要内容是学习电阻、电容、电感、二极管、三极管、场效应管及放大器等模拟器件的工作原理和在电路中的作用。扎实的模拟电路基础可以让你容易看懂别人设计的电路,也能使你设计的电路更可靠。同时,单片机的学习离不开编程,在所有的程序设计中C语言运用最为广泛。C语言知识并不难,需要掌握的知识就那么几种数据类型和几个控制语句。可别小看这几种数据类型和几个控制语句,用它们可以处理各种形式的数据以及非常复杂的逻辑关系。

扎实的电子技术基础和C语言基础,会让你的单片机学习得心应手。当单片机乖乖地依照你的想法和设计去执行指令,实现预期结果的时候,成就感会让你信心十足地投入到单片机的世界里,未来的单片机专家就是你。

其次,要通过实践积累经验。单片机的学习具有很强的实践性,是一门很注重实际动手操作的技术学科,不动手实践是学不会单片机的。因此,实践才是真正学习单片机的必由之路。

实践中要有一套完整的学习开发工具, 即必须有一台计算机、◆单片机原理与应用系统设计(第2版)一套单片机开发板、视频教程和单片机教材。计算机上要安装Keil C51集成开发软件,用来编写和编译程序,并将程序代码下载到单片机上;开发板用来运行单片机程序,验证实际效果;视频教程就是手把手教你单片机开发环境的使用、单片机编程和调试。对于单片机初学者来说,视频教程必须看,否则,即使把教材看了几遍,还是不知道如何下手;单片机教材是理论学习资料,备忘备查。初学者为了节约成本和时间,可以先用Proteus软件仿真调试,熟悉之后,再使用开发板调试程序。

软件编程要注重理论和实践相结合,效果会更好。看到例程题目先试着构思自己的编程思路,然后再看教材或视频教程里的代码,研究别人的编程思路以及与自己思路的差异;接下来是亲自动手编写程序,对有疑问的地方试着按照自己的思路修改程序,比较程序运行效果,领会其中的奥妙。还可以在原有程序基础上改进和拓展,使其功能更强大。此外,自己应该找些项目来做,以巩固所学的知识和积累更多的经验。

在实践中要多与同行虚心交流。在单片机学习过程中,每个人都会遇到无数的问题,如果你向有经验的过来人虚心求教,就会少走许多弯路,节省很多时间。

最后,研究硬件设计,实现产品开发。学习单片机的最终目的是做产品开发,产品即是一个软硬件相结合的控制系统。所以,硬件设计是学习单片机技术的必学内容。当你的单片机编程水平有了相当提高之后,就应该去研究单片机硬件系统设计了。硬件设计包括电路原理设计和电路板(即PCB板)设计。

电路原理设计涉及各种芯片的应用,而芯片的典型应用在芯片数据手册(Datasheet)中都能找到答案。电子技术领域的第一手资料就是Datasheet,而且几乎都是全英文的,从Datasheet里所获得的知识,可能是在教科书、网络文档和课外读物等中很少见到的。虽然有些资料也都是在Datasheet的基础上撰写的,但内容不全面,甚至存在翻译上的遗漏和错误。所以良好的英文阅读能力也是学习单片机技术不可缺少的。PCB板的设计相对简单,只要懂得使用PCB板设计软件Protel或 Altium Designer就没问题了。但要想设计的板子布局美观、布线合理,还需要在实践中不断学习。

具备一定的Keil C51环境下的单片机编程经验、会使用Protel软件或 Altium Designer软件设计硬件电路以及良好的英文阅读能力,你就是遇强则强的单片机高手了。

2. 本书内容

本书第2版增加了工程实践内容。多年来,MCS51系列单片机一直是学习单片机技术的主要教学平台,在嵌入式技术高速发展的大环境下,单片机技术课程已经不再是培养电子工程师课程体系的最终环节,单片机的教学要为后续学习嵌入式系统打下良好基础。因此,本书在编写过程中,除了论述MCS51单片机的基本原理、系统结构、内部资源、指令系统、常用接口及其外部扩展、应用系统设计等内容外,还增加了丰富且能够实际演示的单片机应用实例、嵌入式操作系统在51单片机系统中应用的方法和实例,以及自主设计的便携式单片机学习板的软硬件设计的内容,并在第2版中增加了工程实践案例的设计内容。

3. 本书特色

(1) 强调动手实践。

实践是学好单片机技术的必经之路。本书详细介绍了Keil μVision集成开发环境下进行汇编语言程序和C51程序开发的过程;书中所有案例程序均在Keil μVision环境下调试通过,不是纸上谈兵,而是实战演习。

(2) 强调单片机应用系统的软硬件整体设计。

书中给出了若干完整的单片机应用系统实例。案例的编写具有完整性、系统性和工程性。

 所有案例均给出可实施的系统级设计资料,包括完整的可实现电路板布线的硬件电路原理图(并非电路示意图)和完整的Keil μVision环境下调试通过的软件源程序工程代码(并非程序段或伪代码)。

 所有案例均给出仿真实现过程和结果,即基于Proteus环境的系统仿真实现结果。

 设计有便携式单片机学习板,给出了该学习板的Protel电路原理图设计和PCB版设计资料,便于读者进行工程实践。书中单片机应用系统案例均可在该学习板上硬件实现。

(3) 为嵌入式系统学习打好基础。

嵌入式系统是单片机技术发展的高级阶段,因此学习单片机要做好进一步学习嵌入式系统的知识准备。一方面是加强C语言程序设计能力,另一方面是加强嵌入式操作系统在51单片机系统上应用的内容介绍。此外,本书介绍了嵌入式操作系统在51单片机系统中应用的方法和实例。

(4) 配套资源丰富。

本书配有多媒体资料,其中包含电子课件、所有相关例程源代码、习题解答及编程题的程序源代码,并且在程序的关键部分加以注释,既适合作为教材供教师和学生使用,也适合自学成才。

4. 致谢

本书由沈阳理工大学马秀丽、周越、王红共同编写。本书第1~5章和8.8节由马秀丽编写,第7~10章由周越和王红编写,第6和第11章由周越和马秀丽编写,王红霞参加了附录和部分章节的编写工作。最后由马秀丽审阅并统稿完成。感谢本书所列参考文献的作者,他们的工作给了我们很大的帮助和启发。感谢为本书出版付出辛勤劳动的清华大学出版社的工作人员。感谢读者选用本书。

尽管全体参编人员竭心尽力,但限于自身水平,书中难免会有遗漏,恳请广大读者不吝指正,同时欢迎您对本书内容提供宝贵建议,我们将非常感谢。

编者

2017年5月

目录

Contents

第1章单片机概述1

1.1单片机的概念及特点1

1.1.1单片机的基本概念1

1.1.2单片机的主要特点2

1.2单片机的发展历程3

1.3单片机的种类与应用5

1.3.1单片机的种类5

1.3.2单片机的等级9

1.3.3单片机的应用9

1.4单片机的选型10

习题11

第2章单片机的基本原理12

2.1MCS51系列单片机简介12

2.1.1MCS51系列单片机的特点12

2.1.2MCS51系列单片机的常用芯片简介13

2.2MCS51系列单片机的结构16

2.2.1MCS51系列单片机的内部结构16

2.2.2MCS51系列单片机的CPU17

2.2.3MCS51系列单片机的存储器分布20

2.2.4MCS51系列单片机的输入输出接口26

2.2.5MCS51系列单片机的时钟电路29

2.2.6MCS51系列单片机的复位电路29

2.3MCS51系列单片机的引脚功能31

2.4MCS51系列单片机的时序33

2.4.1MCS51系列单片机的时序单位33

2.4.2MCS51系列单片机典型指令的时序34

2.5MCS51系列单片机的最小系统36

2.5.1MCS51系列单片机的最小系统组成36

2.5.2MCS51系列单片机的节电方式37

习题38

第3章单片机汇编语言程序设计40

3.1MCS51系列单片机的汇编指令格式和寻址方式40

3.1.1MCS51系列单片机的汇编指令格式40

3.1.2MCS51系列单片机的寻址方式41

3.2MCS51系列单片机的指令系统44

3.2.1数据传送类指令45

3.2.2算术运算类指令48

3.2.3逻辑运算类指令51

3.2.4控制转移类指令52

3.2.5位运算类指令57

3.3MCS51系列单片机汇编程序常用的伪指令59

3.4MCS51系列单片机汇编语言程序设计63

3.4.1数据的寻找与排序的程序64

3.4.2数据运算的程序66

3.4.3数据的拼拆和转换69

3.4.4多分支转移程序71

3.4.5子程序设计74

习题76

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

4.1C语言与MCS51系列单片机80

4.1.1C语言与MCS51系列单片机概述80

4.1.2C51程序的结构82

4.2C51的基本数据类型83

4.3C51的运算量85

4.3.1常量85

4.3.2变量86

4.3.3变量的存储模式89

4.3.4绝对地址的访问90

4.4C51的运算符及表达式92

4.4.1算术运算符和算术表达式92

4.4.2赋值运算符和赋值表达式93

4.4.3增量运算符和增量表达式93

4.4.4关系运算符和关系表达式93

4.4.5逻辑运算符和逻辑表达式94

4.4.6复合赋值运算符95

4.4.7逗号运算符和逗号表达式95

4.4.8条件运算符和条件表达式95

4.4.9位运算符和位运算96

4.4.10指针与地址运算符96

4.5C51的输入与输出97

4.5.1格式输出函数printf()97

4.5.2格式输入函数scanf()98

4.6C51程序基本结构与相关语句98

4.6.1C51程序的基本结构98

4.6.2C51语句100

4.6.3if语句100

4.6.4switch…case语句101

4.6.5while语句102

4.6.6do…while语句102

4.6.7for语句103

4.6.8break和continue语句103

4.6.9return语句104

4.7C51的函数104

4.7.1函数的定义105

4.7.2函数的调用与声明107

4.7.3函数的嵌套调用和递归调用108

4.8C51的构造数据类型110

4.8.1数组110

4.8.2指针111

4.8.3结构体113

4.8.4共用体115

4.8.5枚举类型117

4.9C51程序的编辑和编译118

习题118

第5章MCS51单片机内部资源及编程120

5.1并行输入输出接口120

5.2定时/计数器接口121

5.2.1定时/计数器的主要特性121

5.2.2定时/计数器T0、T1的工作原理122

5.2.3定时/计数器的特殊功能寄存器123

5.2.4定时/计数器的工作模式124

5.2.5定时/计数器的初始化编程及应用127

5.3串行接口134

5.3.1串行口的主要特性134

5.3.2MCS51系列单片机串行口的工作原理135

5.3.3串行口的特殊功能寄存器136

5.3.4串行口的工作方式138

5.3.5串行口的初始化编程及应用142

5.4中断系统154

5.4.1MCS51系列单片机中断系统的特点154

5.4.2MCS51系列单片机的中断源155

5.4.3MCS51系列单片机的中断控制寄存器157

5.4.4中断系统的应用159

习题162

第6章MCS51单片机的外部接口技术165

6.1人机接口165

6.1.1数码管显示接口165

6.1.2字符点阵式LCD显示接口170

6.1.3图形点阵式LCD显示接口177

6.1.4键盘接口190

6.2存储器扩展196

6.2.1单片机系统总线196

6.2.2数据存储器扩展197

6.2.3程序存储器扩展199

6.2.4单片机对外部存储器的读写时序200

6.3输入输出口扩展202

6.3.1简单I/O接口扩展202

6.3.2可编程并行I/O接口扩展203

6.4A/D转换接口211

6.4.1A/D转换原理211

6.4.2ADC0809芯片的应用213

6.5D/A转换接口219

6.5.1D/A转换原理219

6.5.2DAC0832芯片的应用221

6.6开关量输入输出接口226

习题227

第7章MCS51单片机的通信接口技术228

7.1RS232接口通信228

7.1.1RS232基本原理228

7.1.2单片机与PC的RS232接口通信229

7.2RS485接口通信234

7.3IIC总线接口通信234

7.3.1IIC总线主要特点234

7.3.2IIC总线工作时序235

7.3.3IIC总线操作指令格式236

7.3.4IIC总线EEPROM芯片的应用 236

7.4SPI总线接口通信245

7.4.1SPI总线工作原理245

7.4.2SPI总线芯片ADC0832的应用246

7.5CAN总线接口通信251

7.5.1CAN通信总线原理251

7.5.2常用的CAN总线芯片252

7.5.3CAN总线应用253

7.6USB总线接口通信254

7.6.1USB通信总线原理254

7.6.2常用的USB通信总线芯片255

7.6.3USB 1.1通信总线应用256

习题257

第8章单片机应用系统设计258

8.1系统设计总体规划258

8.1.1单片机应用系统设计流程258

8.1.2硬件系统设计原则260

8.1.3软件系统设计原则260

8.2电子密码锁设计260

8.2.1硬件电路设计261

8.2.2软件程序设计261

8.3GPS定位终端设计263

8.3.1硬件电路设计263

8.3.2软件程序设计264

8.4电子日历设计268

8.4.1硬件电路设计268

8.4.2软件程序设计271

8.5温度检测器设计271

8.5.1硬件电路设计271

8.5.2软件程序设计275

8.6电梯内部控制器设计276

8.6.1硬件电路设计277

8.6.2软件程序设计278

8.7直流电机温控调速器279

8.7.1硬件电路设计280

8.7.2软件程序设计282

8.8RFID读卡器设计282

8.8.1硬件电路设计283

8.8.2软件程序设计284

8.9ZigBee物联网结点设计285

8.9.1ZigBee物联网整体结构285

8.9.2温湿度结点的硬件电路设计286

8.9.3软件程序设计288

第9章嵌入式操作系统应用基础290

9.1嵌入式操作系统介绍290

9.1.1嵌入式计算机系统体系结构290

9.1.2嵌入式操作系统主要功能292

9.1.3典型的嵌入式操作系统293

9.2RTX51 Tiny操作系统基本功能294

9.2.1RTX51 Tiny特性294

9.2.2RTX51 Tiny的任务管理294

9.2.3RTX51 Tiny的系统函数297

9.2.4使用RTX51 Tiny编程时注意事项299

9.2.5RTX51 Tiny的系统配置300

9.2.6RTX51 Tiny的编程规则302

9.3RTX51 Tiny操作系统应用实例303

9.3.1多路跑马灯303

9.3.2矩阵式键盘扫描识别306

9.3.3秒表308

9.3.4串口通信311

习题314

第10章便携式单片机学习板介绍315

10.1SLG1型便携式单片机学习板特点315

10.2原理图设计315

10.2.1总体设计315

10.2.2各模块单元设计317

10.3例程设计322

第11章单片机应用系统开发工具323

11.1Keil μVision集成开发环境的使用323

11.1.1工程文件的建立323

11.1.2在工程中添加程序文件325

11.1.3编译和连接工程文件,形成目标文件325

11.1.4调试运行,观察结果326

11.1.5仿真环境的设置328

11.2Proteus仿真软件介绍332

11.3电路设计开发工具Altium Designer介绍337

附录AMCS51单片机指令表338

A.1数据传输类指令338

A.2算术运算类指令339

A.3逻辑操作类指令340

A.4位操作类指令341

A.5控制转移类指令342

附录BC51的库函数343

B.1专用寄存器头文件regxx.h343

B.2字符函数库ctype.h343

B.3一般输入输出函数库stdio.h344

B.4字符串函数库string.h345

B.5标准函数库stdlib.h347

B.6数学函数库math.h348

B.7预定义宏函数库absacc.h349

B.8内部函数库intrins.h349

参考文献351

作者简介

编辑推荐

内容全面,概念清晰,由浅入深,循序渐进。本书全面介绍了MCS-51单片机的原理、指令系统、51汇编语言和C51语言编程方法、接口技术、应用系统设计方法,以及嵌入式操作系统在51单片机中的应用方法。

案例翔实,具有实战演练功能。书中所有例题均在Keil μVision开发环境下调试通过,并给出Proteus仿真环境下的实现结果,不是纸上谈兵,而是实战演习。

配套资源丰富,包含有电子课件、所有例题的电路图与源代码以及习题解答,而且程序的关键部分标有注释,是学习单片机软硬件设计技术的理想教材和工具。

作者寄语

马秀丽,女,1966年生,教授,主要从事射频识别技术及计算机应用技术的研究和教学工作。辽宁省遥感应用协会会员。

教育背景:

1983年9月~1987年8月,在南京理工大学自动控制专业本科学习,获工学学士学位。

1987年9月~1990年1月,在南京理工大学系统工程专业研究生学习,获工学硕士学位。

著译作品:

《条形码自动识别技术》(国防工业出版社出版1991,参编8万字)

《条形码技术应用》(辽宁科技出版社出版1991,参编10万字)

《C语言程序设计》清华大学出版社,2008年3月,主编第1作者

《C语言实践训练》清华大学出版社,2010年3月,主编第1作者

《基于VB和SQL的数据库编程技术》清华大学出版社,2010年3月,副主编第3作者

《单片机原理与应用系统设计》清华大学出版社,2014年10月,主编第1作者 

工作经历:1990年1月~3月,在沈阳理工大学计算机系教师。

1990年3月~2002年10月,在沈阳先达集团股份有限公司研究所副所长,从事软硬件产品和技术开发工作。

2002年10月~至今,在沈阳理工大学信息学院教师。

业务成果:多年来,一直从事自动识别技术以及计算机应用技术的研究开发和教学

电子资料

www.luweidong.cn

下一个