前 言
在单片机应用系统设计中,软件编程占据着非常重要的地位。尤其是随着单片机技术的发展,嵌入式系统的推广和应用,硬件的集成化程度越来越高,同时对软件编程的要求也越来越高。这就要求单片机开发人员能在短时间内编写出执行效率高、运行可靠的代码。同时,由于实际系统的日趋复杂,对使用代码的规范性、模块化的要求越来越高,要方便多个设计参与者以软件工程的形式进行协同开发。在这种形势下,仅靠单片机在推广应用的初期使用的汇编语言来进行软件开发是远远不够的。
C语言是近年来在国内外普遍使用的一种程序设计语言。C语言能直接对计算机硬件进行操作,既有高级语言的特点,又有汇编语言的特点,因此在单片机应用系统开发过程中得到了非常广泛的应用。在单片机应用系统设计与开发过程中,只要简单地熟悉相应单片机的硬件结构,利用C语言作为编程语言,就可以大大缩短开发周期。C语言已成为举世公认的高效简洁而又贴近硬件的编程语言之一。
以51单片机为硬件基础,以C语言为软件编程基础,对于学习单片机的C语言程序设计是一种快捷的入门方式。51系列单片机,由于其具有集成度高、处理能力强、可靠性高、系统结构简单、价格低廉、易于使用等优点,迅速占领了自动控制系统和智能仪器仪表行业的主要市场,在我国得到了广泛的应用,并取得了令人瞩目的成果。尽管目前世界各大公司研制的各种高性能、不同型号的单片机不断问世,但由于51单片机具有易于学习和掌握、性价比高等优点,并且以51单片机基本内核为核心的各种扩展和增强型的单片机不断推出,另外由于51单片机内核技术几乎包含了单片机理论基础和技术的全部,具有较好的系统性和完整性,再加上几十年来,国内已积累了丰富的技术资料、完整的实验环境与开发设备,因此51系列单片机技术非常适合课堂教学,学懂、弄通51单片机的基本理论与应用技术,也就打好了学习、应用单片机的基础,即使学、用其他系列的单片机也就不难了。
本书是一本专门讲解单片机的C语言(C51)编程的教材,以由浅入深、相互贯穿、重点突出、文字叙述与典型代码实例相结合为原则,向每位单片机、嵌入式爱好者和开发者全面介绍C51语言程序的编写。本书第4版仍然保持第3版的写作风格,在内容上对第3版进行了仔细的修订,使叙述更加合理和顺畅,更便于阅读和理解。全书共9章,主要内容包括:单片机的C语言概述,51系列单片机硬件与C51编程基础,51系列单片机P0~P3口输入/输出、中断系统、定时器/计数器、串行口、并行扩展、串行扩展的C51编程、Keil ?Vision2与Proteus使用基础等。每章后附本章小结、习题等。
本书提供大量实例供读者学习,在掌握了实例的基础上又给读者推出了“修改”内容,目的是让读者根据实例能自己编写满足要求的程序,所有实例均可在Keil和Proteus软件平台上直接运行。主要章节提供了“实验与设计”内容,在实验上给出实验的目的、电路、基本内容、参考程序,读者在掌握基本实验的基础上可以根据具体情况对实验进行丰富与设计;设计部分是为了锻炼学生综合分析问题与解决问题的能力,在硬件和软件上都提出了设计要求,学生可以根据所学知识在硬件和软件上进行详细的设计。另外,对有些重要的内容进行了重点的“强调”,强调的目的是提醒读者在学习该部分内容时要重点注意这些问题。本书提供相关的电子课件、程序代码、习题参考答案,可登录华信教育资源网http://www.hxedu.com.cn注册下载。
本书的主要特色是,在介绍单片机的C语言程序设计的过程中清晰地说明单片机的所有功能,并对每项功能给出实例代码,同时详细介绍单片机的C语言开发与仿真环境的使用,透彻分析单片机的C语言语法和语义,以及开发过程中可能存在的问题和难点。
本书的另一个特点是突破了传统的软、硬件截然割裂的做法,使读者对嵌入式系统的开发有一个整体的了解。相信本书的这一特点会节省读者进入嵌入式C语言领域的时间,同时能够更清楚地认识应用系统开发的过程,深入理解单片机的C语言编程机制。
本书由山东理工大学姜志海、烟台汽车工业职业学院姜沛勋编写。第3、4、5、6、7、8章由姜志海编写;第1、2、9章由姜沛勋编写;全书由姜志海负责整理与统稿。
本书在编写过程中得到了许多专家和同行的大力支持与热情帮助,他们对本书提出了许多建设性的建议和意见,在此一并表示衷心的感谢。
鉴于编者的水平有限,加之新的编程技术不断涌现,书中难免有不完善之处,恳请广大读者批评指正。反馈信息请发送至wyj@phei.com.cn。
作 者
2020年5月