图书前言

前    言

  《单片机原理与应用及C51程序设计》一书自2006年出版后,以其全新的编写思路、鲜明的应用性特色,受到了广大教师与学生的欢迎,已经重印8次。为使《单片机原理与应用及C51程序设计(第2版)》更加适合各院校使用,编者认真听取了广大师生的意见,均衡内容与篇幅,我们保留了第1版的主体框架和特色,同时,为了更加突出应用性,对其内容作了一些修订和增补。

  MCS-51系列单片机的应用很广泛,是学习单片机技术较好的系统平台,同时也是开发单片微型计算机应用系统的一个重要系列。目前,单片机原理与应用教材大都采用汇编语言讲解和设计程序实例,但汇编语言学习起来会比较困难。在实际的应用系统开发调试中,特别是开发比较复杂的应用系统时,为了提高开发效率和使程序便于移植,现在多用C语言。C语言不仅学习方便,而且也同汇编语言一样能够对单片机的资源进行访问,因而目前大多数院校在开设单片机课程时都引入了C语言。但引入C语言后,在选用教材时发现存在两个方面的问题:第一,单片机原理与应用(含单片机C语言程序设计)的教材不多,而兼顾汇编语言和C语言的教材更少,所以可选择的余地较小;第二,单片机C语言方面的教材一般面向开发,不讲原理,属于高级教程,不适合初学者。而我们需要一本在讲单片机基本原理的同时能兼顾汇编语言和C语言两个方面的教材,以避免学生在学习“单片机原理与应用”课程时还要另外参考一本单片机C语言方面的教材。基于此,我们在2006年承担了四川省高等教育教学改革工程人才培养质量和教学改革项目“微机、单片机、接口技术系列实验及实践教学改革”,提出的实验及实践教学改革的目标是培养应用型人才。根据理论教学和实践教学的经验,我们发现学生要想熟练掌握MCS-51单片机应用系统软件设计,就必须完全理解单片机汇编语言,只有这样才能理解并掌握MCS-51程序设计。若在用汇编语言讲授单片机原理后另外单独开设一门“MCS-51程序设计”课程,那么由于时间间隔的原因,学生往往不能与原理很好地联系起来进行对比学习。因此我们尝试在课堂上讲解单片机原理的同时介绍单片机C语言程序设计,避免直到进入实验室或开发实践阶段时才讲授单片机C语言程序设计以及开发环境,为开设综合实验和创新性实验奠定一定的基础。本书的目的是想在讲解单片机基本原理的同时能兼顾汇编语言和C语言两个方面。

  在本书的实例中,相同的功能分别用汇编语言和C语言来实现,通过用汇编语言和C语言两个方面的编程对比,使学生能够有选择地掌握一种语言并认识另一种语言。对于把“单片机原理与应用”及“MCS-51程序设计”作为两门课程分别开设的学校,也可以使用同一本教材,这样对学生复习单片机原理及汇编语言知识有很大的帮助。同时,为了提高学生应用设计的能力,还介绍了目前单片机接口常用的接口芯片,列举了几个简单的单片机应用系统开发实例。

1. 第2版内容的调整

  第1章 基础知识,做了修订;第2章 单片机基本原理,做了修订;第3章 单片机汇编程序设计,修改了汇编语言伪指令部分,增加了DATA和XDATA伪指令,并做了相应的修改;第4章 单片机C语言程序设计,做了少量修改,增加了运算符的优先级与结合性等;第5章 单片机C语言与汇编混合编程,是新增加的内容;第6章 MCS-51单片机的内部资源及编程,为第1版的第5章;第7章 MCS-51单片机的常用接口,由第1版的第6章与第7章合并修改而成;第8章 MCS-51单片机与D/A、A/D转换器的接口,做了修订;第9章 MCS-51单片机的其他接口,增加了数字温度传感器DS18B20的接口和串行D/A MAX517、A/D MAX1241的接口;第10章 单片机应用系统设计,做了修订;第11章 单片机应用系统设计实例,增加了单片机数显温度计设计;第12章 Keil C51集成环境的使用,做了修改;附录,做了修订。

2. 本书特点

  本书以实用为宗旨,用众多的实例讲解了MCS-51单片机原理和硬、软件开发技术,针对同一功能,同时提供单片机汇编源程序和单片机C语言源程序,并免费提供所有源代码和电路图的资源下载。读者可以此作为进入单片机应用系统开发领域的首次尝试。

  本书与传统的单片机基本原理书籍相比较,更面向实际开发,与单片机C语言程序设计书籍相比,兼顾了单片机原理和汇编语言的讲解,有利于初学者迅速掌握单片机技术。

  本书图文并茂,实用性强,为便于读者自学和练习,各章均配有少量习题。本书可作为大专院校单片机原理与应用类课程的教材,也可作为单片机原理与应用技术培训班的教材,特别适合于打算学习单片机应用系统开发技术的读者,同时可供各类电子工程、自动化技术人员和计算机爱好者学习参考。

3. 本书内容

  本书共分12章,具体内容如下。

  第1章主要介绍学习单片微机系统必备的基础知识。

  第2章介绍MCS-51单片机的详细工作原理。

  第3章主要介绍包括寻址方式、MCS-51单片机指令系统等汇编源程序设计的相关技术细节。

  第4章主要介绍单片机C语言程序设计,并列举了大量实例及详细代码。

  第5章主要介绍单片机C语言与汇编语言混合编程的方法。

  第6章至第9章,分别用单片机汇编程序和单片机C语言程序编写实例,介绍MCS-51单片机的内部资源及编程、MCS-51单片机的常用接口、MCS-51单片机与D/A和A/D转换器的接口及MCS-51单片机的其他接口。

  第10章讲述单片机应用系统设计的方法和步骤。

  第11章以三个简单的单片机应用系统设计为例来讲解单片机应用系统的设计技术。

  第12章介绍Keil C51集成环境的使用。

  附录中提供了MCS-51系列单片机指令表和C51库函数,以及与单片机相关的资源网站列表,以使读者找到更广阔的学习园地。

4. 如何使用本书

  对于MCS-51单片机的初学者来说,应该从本书的第1章开始进行学习,以了解MCS-51单片机技术的基本知识和MCS-51单片机的使用方法,掌握MCS-51单片机结构和相应接口芯片的具体使用方法,以及与MCS-51单片机汇编语言编程和单片机C语言编程相关的具体技术,学完第1~12章,即可达到从事单片机应用系统开发的基本要求。

  对于已经具有一定MCS-51单片机技术基础,比较了解MCS-51单片机的读者来说,可以直接从第4章开始学习,重点理解和掌握使用MCS-51单片机开发应用系统的相关技术,通过对比来掌握单片机汇编语言编程和单片机C语言编程的方法,着重掌握单片机应用系统的开发过程。

  建议本书的理论课安排在60学时左右,实验16学时,如果只学习汇编程序设计或C语言程序设计,理论学习课时可适当减少。课程学完后,可安排相应的课程设计,以便对学习内容进行巩固和加深理解。

  另外,本书在描述中把MCS-51单片机简称为“单片机”,书中采用了Keil C51 V7.06软件界面,读者在学习过程中也可以采用Keil C51的最新版本,或者从本书提供的资源网站www.wenyuan.com.cn中搜索下载其对应的软件包,以供学习和使用。

5. 我们的经验

  根据我们的教学和开发经验,学习单片机技术,特别是学习单片机应用系统开发技术时,关键是让读者迅速找到适合自己的学习方法,在第一时间使读者看到自己的学习成绩,排除“对硬件设计没有信心,畏惧编程”的心理因素。因此有必要走“依葫芦画瓢”的道路,在实验中模拟开发出简单的应用系统,然后由浅入深,逐步进入单片机应用系统开发领域。

  为此目的本书给出了大量实例,包括硬件电路设计和应用系统开发,我们希望读者通过大量的实例来加深对相关内容的认识和理解,尽快地把理论知识转换为解决实际问题的能力。另一方面,为方便读者快速阅读本书,书中各实例中的所有源代码和电路图(用Protel绘制,不具有电气连接功能)均提供免费下载,读者可以根据自己的实际情况进行选择和使用,建议读者详细阅读第5~12章,并分析电路和程序源代码,最好能够自己在实验室模拟一个单片机应用系统实验项目进行开发练习,以此作为真正的单片机应用系统开发的起步。

6. 致谢

  本书由西华大学的谢维成和成都大学的杨加国、赵定远、杨显富共同编写,谢维成和杨加国担任主编。

  本书第4、5、6章由谢维成编写,第1、2、3、7、11章和附录由杨加国编写,第8和第9章由赵定远编写,第10、12章由杨显富编写,最后由谢维成和杨加国统稿完成。西华大学董秀成教授在百忙中审阅了全部书稿并提出了建设性的意见。另外伍高辉、宋玉忠、郑海春、王孝平、赵华颖、李茜参与了本书部分图形的绘制工作,在此一并表示感谢。同时感谢参考文献中提到的作者,本书借鉴了他们的部分成果,他们的工作给了我们很大的帮助和启发。

  尽管是再版图书,我们全体参编人员已尽心尽力,但限于自身水平,书中难免出现遗漏和错误之处,恳请广大读者不吝指正。

  

  

                                                           编  者

II

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

  

III

前    言