前 言
51系列单片机应用广泛,是学习单片机技术较好的系统平台,同时也是单片微型计算机应用系统开发的一个重要系列,是掌握嵌入式技术的入门平台。单片机实验及实践教学的目标是培养应用型人才,根据近年理论教学、实践教学和单片机应用系统开发的经验,发现要理解51系列单片机内部结构和工作原理,汇编语言知识还是必不可少的,但在单片机应用系统开发中采用汇编语言的却并不多,尤其在开发比较复杂的应用系统时,为了提高开发效率,以及便于代码移植,基本上都采用C语言编程。C语言不仅学习方便,而且也与汇编语言一样能够对单片机资源进行访问,因而目前大多数院校在开设单片机课程时都引入了C语言。因此,本教材在讲解单片机基本原理的同时,兼顾了汇编语言和C语言两个方面。
本书自2006年出版后,凭借全新的编写思路、鲜明的应用型特色,受到了广大教师及学生的欢迎,重印了9次,2009年修订出版的第2版重印了14次,2014年出版的第3版重印了14次,2019年出版的第4版重印了19次,累计印数达18万册以上。为了更加适合各院校使用,本书编者认真听取了广大师生的意见,权衡内容与篇幅的矛盾,本书仍然保留了第1~4版的主体框架和特色,为了缩减篇幅,仍然突出其应用性,对相应的内容做了修订。
本书特色和修订内容如下。
(1) 本书以实用为宗旨,在讲解单片机原理的同时兼顾单片机应用系统设计,内容前后连贯,知识难度逐步递进,前面章节的知识是后面应用的基础,后面应用实例是前面章节知识的延伸和拓展。
(2) 增加相应微机原理的相关知识,不用开设微机原理课程也可进行本课程的学习;在讲解理论知识的同时,适当引入嵌入式方面的相关内容,为后续32位嵌入式课程学习打下基础。
(3) 程序设计兼顾汇编语言和C语言。教材按照“同一实例,汇编语言和C语言对比学习”的思路教学并编写。本次改版考虑了C51单片机程序设计的现实情况(开发程序一般都用C语言编程),精简了汇编程序设计的内容。第3章“单片机汇编程序设计”,介绍了C51单片机汇编指令系统,但减少了相应实例;第6章“51系列单片机的内部资源及编程”的实例同时给出了汇编程序代码和C51程序代码,方便学生对计算机内部工作过程的理解和认识;从第7章开始的实例不再给出汇编程序代码,只给出C51程序代码,在一定程度上压缩了本教材的整体篇幅。
(4) 基于Proteus和Keil开发和仿真工具,所有程序均在Keil软件中调试通过,实用例子均通过Proteus进行硬件仿真。本书提供所有源代码和电路图的资源下载,读者可从清华大学出版社官网下载。
(5) 为便于读者练习和自学,各章均配有少量习题。为方便学生平时学习,各章节还录制了微课视频。
(6) 本次改版结合当前单片机应用系统开发情况,增加了图形液晶显示器LCD12864和温湿度传感器模块及其相应应用实例。第4版“第5章 Keil C51集成环境的使用”和“第6章 PROTEUS软件的使用”合并成一章“第5章51系列单片机开发和仿真工具”;后面章节按顺序进行相应调整。增加了“51系列单片机仿真实验”内容并放在第10章。删除了第4版“附录A MCS-51系列单片机指令表”和“附录B C51运算符优先级和结合规则”的内容。其他章节内容作了适当的调整。
本书修改和调整后的章节内容如下。
第1章 计算机基础知识。内容包括计算机中的信息及表示、微型计算机基本结构和工作原理及单片机概念。
第2章 单片机基本原理。内容包括51系列单片机内部结构及原理,外部引脚、片外总线及工作方式。
第3章 单片机汇编程序设计。内容包括51系列单片机汇编指令格式及寻址方式,指令系统及常见的汇编程序设计。
第4章 单片机C语言程序设计。内容包括C51基础知识、数据类型、变量、绝对地址的访问及C51中的函数。
第5章 51系列单片机开发和仿真工具。内容包括Keil C51集成环境的使用和Proteus软件的使用,Keil Vision采用第5版,Proteus采用8.12版。
第6章 51系列单片机的内部资源及编程。内容包括并行接口、定时/计数器接口、串行接口及中断系统,本章通过大量实例介绍了51单片机片内四大接口的编程及应用。
第7章 51系列单片机输入输出设备及应用。内容包括数码管、字符液晶显示器LCD1602、点阵液晶显示器LCD12864以及键盘的原理及编程。
第8章 51系列单片机与D/A、A/D转换器的接口。内容包括并行D/A转换器DAC0832和并行A/D转换器ADC0808/0809的原理及编程,串行D/A芯片MAX517和串行A/D芯片MAX1241的原理及编程。
第9章 51系列单片机应用系统设计。内容包括单片机应用系统开发过程,以及单片机多点温度测量系统、带温湿度的电子万年历、单片机电子密码锁系统的设计方案及硬件和软件设计方法。
第10章 51系列单片机仿真实验。提供了8个仿真实验,内容包括51系列单片机内部功能部件及A/D、D/A的编程和应用。
本书由西华大学谢维成和成都大学杨加国、陈斌、赵静共同编写,谢维成和杨加国担任主编。
本书第1、2、6章由杨加国编写,第3、9章由赵静编写,第4、5章由陈斌编写,第7、8、10章和附录由谢维成编写,最后由谢维成和杨加国统稿完成。另外,杨勇、郑海春、王孝平、檀杰及研究生谢林城、刘久成、张永海、张子豪、黄祥柯、胡林参与了本书的部分仿真调试及微课视频录制工作,在此一并表示感谢。同时感谢参考文献的作者们,本书借鉴了他们的部分成果,他们的工作给予我们很大的帮助和启发。
尽管本书是改版,我们全体参编人员已尽心尽力,但限于自身水平,书中难免会出现遗漏和欠妥之处,恳请广大读者不吝指正,给我们提出宝贵意见和建议。
编 者