第3版前言 本书是在《STC单片机原理及应用——从器件、汇编、C到操作系统的分析和设计(立体化教程)》(第2版)一书的基础上修订而成。本书修订后,内容更加紧凑,更好地满足单片机课程的教学要求。本书配套的微课视频和电子资源是对纸质教材内容的重要补充,使得本书的纸质版和电子版内容既满足了教学的最基本需求,同时还提供了单片机教学的高阶需求。 课程思政是单片机课程教学中的一个重要内容。在本书修订过程中,在所提供的教学资源中,将思政元素与单片机课程的知识点有机融合。一方面,体现我国在半导体集成电路方面取得的成就; 另一方面,培养学生使用唯物辩证主义的方法论来分析和解决学习单片机课程中所遇到的“理论”和“应用”问题。 本次修订的主要内容如下所述。 (1) 书中主要的知识点都提供了视频讲解,读者可扫描书中对应知识点的二维码来观看相关的教学视频。 (2) 将本书第2版中第1章“单片机和嵌入式系统基础知识”和第2章“STC单片机硬件知识”的内容进行优化及合并,作为本书第3版第1章“单片机和嵌入式系统导论”的内容。 (3) 将本书第2版中第4章“数值表示及转换”调整为本书第3版的第2章,使得本书后面的内容更加连贯,同时也便于读者根据实际情况选学此内容。 (4) 将本书第2版中第15章“STC单片机SPI原理及实现”、第16章“STC单片机CCP/PCA/PWM模块原理及实现”和第17章“RTX51操作系统原理及实现”的内容从纸质书中删除,改为电子资源的形式,读者可通过配套资源中的“电子文档”来学习这些内容。 (5) 将本书第2版2.3.3节中表2.2“IAP15W4K58S4单片机引脚定义和功能”从纸质书中删除,改为电子资源的形式,以满足读者设计单片机应用程序代码时的阅读需求。 (6) 采用Keil μVision5软件和AIappISPV6.94X软件。 配套资源 程序代码、电子文档等资源: 扫描目录上方的二维码下载。 教学课件、教学大纲、教学案例等资源: 到清华大学出版社官方网站本书页面下载,或者扫描封底的“书圈”二维码在公众号下载。 微课视频(1580分钟,88集): 扫描书中相应章节中的二维码在线学习。 注: 请先扫描封底刮刮卡中的文泉云盘防盗码进行绑定后再获取配套资源。 在本书修订过程中,参考了授课教师、读者以及编辑的宝贵意见,使得本书在修订完成后,充分利用了数字化教学资源,构成了纸质教材、教学视频和电子资源相结合的新形态教材,以更好地满足教师教学和学生学习的不同需求。 作者 2025年2月于北京 第2版前言 本书是在《STC单片机原理及应用——从器件、汇编、C到操作系统的分析和设计(立体化教程)》一书的基础上修订而成的。修改内容主要包括: (1) 增加的第1章,专门介绍嵌入式系统的基础知识。使学生在学习单片机的理论知识之前,就能对单片机和嵌入式系统之间的关系有一个宏观的了解。 (2) 为了帮助读者全面理解STC单片机的硬件和软件开发所涉及的知识,在介绍单片机基础理论知识之前,专门增加了第2章STC单片机硬件知识和第3章STC单片机软件开发环境两章,并且通过一个简单的应用程序开发来帮助读者理解单片机的架构和应用。 (3) 遵循由浅入深的原则,对STC单片机外设的讲解顺序进行了调整,从最简单的比较器开始到最复杂的CCP模块为止。这样,更加便于教师的教学和学生的自学。 (4) 在第14章介绍增强型PWM模块时,增加了步进电机硬件设计和软件驱动开发的内容,使读者对单片机在电机驱动和控制中的应用有更深入的认知。 在修订的过程中,很多教师和学生提出了宝贵的修改建议,这些建议使本书内容更加丰富,结构更加紧凑,并且使理论和实践结合更加紧密,学以致用。在此,对这些教师和学生一并表示感谢。 作者2019年1月于北京 第1版前言 作者第一次接触8051单片机是在1997年,当时还在读书,忙于考研,只是验证了老师给出来的几个程序,并没有认真地学习这门课程。后来由于科研,接触的基本是高端的Xilinx可编程门阵列(FPGA)和TI的数字信号处理器(DSP)。时隔多年,再次系统研究STC单片机,已经是站在更高的高度上全面地理解和看待它。整个数字世界从低层次到高层次,依次是半导体开关电路、组合逻辑电路、状态机、CPU、汇编语言、高级语言、操作系统和应用程序,这就是学习和认知的路线。学习STC单片机也就是这条路线,当你掌握了这条路线的时候,你会发现研究STC单片机乐趣无穷。 2014年12月与STC的负责人姚永平先生在教育部信息中心举办的STC单片机决赛的评审现场再次会面,期间姚总希望我能编写一本STC单片机方面的教材。这对我来说压力是很大的,这是因为在国内图书市场上,关于单片机的图书不下上百种,而且有几本单片机的书非常畅销。虽然此前我已经系统编写过电子设计自动化方面的整套图书,但是编写单片机课程的教材对我来说也是一种挑战。 在我编写单片机教材期间,姚总多次提到用STC单片机作为C语言教学平台的想法,这个想法与我不谋而合。作者曾连续三年在第三学期给电子信息类专业的学生进行为期一周的C语言实训课程教学,我发现情况就是在前期的C语言课程教学中老师讲的虽然很卖力,但是学生还是反映很抽象听不懂,似乎C语言课程都成了本科生掌握计算机最基本编程知识的障碍。很明显问题症结就是学生面对的是机器,无法有效地和这个机器进行交流,他们不知道如何用人的思维与计算机对话。解决这些困扰唯一的方法,就是让他们能够知道CPU如何运行、如何管理存储器、CPU如何控制外设。而传统C语言教学使用的PC又不能提供让学生看到这些细节的条件。虽然经过短时间的强化练习,学生对C语言的掌握程度有了很大的提高,但是离教学要求仍然有相当大的差距。我就一直在想,能不能在C语言实训中引入一些好的硬件平台来帮助学生学习C语言?这个问题一直困扰着我。但是,当我在编写这本单片机教材的过程中,眼前一亮,发现STC 8051单片机确实是个非常好的平台,因为CPU中的运算器和控制器、系统存储器、外设等能让学习者一览无余,再加上神一般的Keil μVision5软件集成开发环境,通过μVision5提供的调试器环境把单片机内部细节看个清清楚楚、明明白白,它将C语言中抽象的指针、数组和函数等语法通过图、表、变量监控窗口全部都表示出来了。在编写第6章时,通过调试器提供的功能,把C语言中抽象的语法真正地介绍清楚了。 8051单片机自面世到现在经历了30多年,单片机课程教学中抛弃8051单片机的呼声日益高涨,因为很多人认为8051落伍了。因此,他们希望一上来就开始学习更高级的处理器。但是,8051(尤其是改进后的STC系列8051单片机)带给初学者,特别是国内高校的学生,是完善的生态系统,包括开放的CPU内部结构、完全公开的指令系统、大量的应用设计案例、容易入手的μVision5软件集成开发环境等,这些都是初学嵌入式系统最好的素材。我们经常说,简单的不一定是落后的。对于初学者来说,东西越简单学习起来就越容易入门,学习的知识也就更加系统且更有条理。 在编写本书时,融入了作者在编写EDA工程系列丛书时所获取的大量的新知识,力图最大限度地挖掘STC单片机的性能和特点。在本书编写完成的时候,终于可以说这句话了: STC单片机是高职和本科学生,甚至是研究生学习嵌入式系统最好的入门级学习素材,也是相关专业学生必须掌握的最基本的计算机软件和硬件知识及技能。 编写本书时以下面的思想为主线,以期待能更加透彻地表达“原理”和“应用”之间的关系。 (1) 这本书既然讲的是单片机的原理和应用,首先就必须要讲清楚单片机的原理。在单片机的原理中,最重要的就是讲清楚8051 CPU的内部结构和指令系统,使得学生学会如何分析一个新的CPU、CPU的共性等,以及指令系统的作用是什么、指令系统和CPU之间的关系等问题。 (2) 关于在学习单片机的时候,是否还有讲解汇编语言的必要性的问题,最近在教育界有很大的争论。这里必须强调,汇编语言是了解CPU结构最重要的途径。在实际应用中,可以不使用汇编语言,但是必须让学生知道汇编语言在整个计算机系统中所起的作用,至少也要让学生通过编写简单的汇编语言彻底地理解和掌握CPU内部的结构。这是因为如果学生不能很好地掌握CPU的内部结构,即使将来他们使用C语言等高级语言开发单片机,也很难编写出高效率的程序代码。 (3) 对于应用部分来说,既要保留传统的应用例子,又应该引入一些新的可以反映最新信息发展技术的综合性的例子。这样,才能将单片机中的各个知识点联系在一起,以提高分析和解决问题的能力。 (4) 能不能学好单片机取决于教师能不能把单片机的理论真正地讲透,更重要的是学生能不能充分地在实践中进行学习。业界工程师常说,单片机是玩好的,不是教好的,可见实践在单片机学习中的重要性。 本书从开始编写到完稿历时近半年,全书共分为15章,以STC公司目前新推出的IAP15W4K58S4单片机为平台,以Keil μVision5集成开发环境为软件平台,亲自设计大小案例近100个,这些设计实例都通过上述的硬件和软件进行了调试和测试。 在本书的编写过程中参考了STC公司最新的技术文档和手册,以及STC学习板原理图和PCB图,在此对STC公司表示衷心的感谢。在本书的编写过程中,集宁师范学院物理系聂阳老师参加编写了第13~15章的内容,作者的学生李宝隆、张艳辉负责部分章节的编写工作,黎文娟对本书的全部稿件进行了初步的完善和修改,以及本科生吴瑞楠、陈宁帮助作者制作了本书的教学课件,并对书稿提出了宝贵的建议。在本书的编写过程中,得到了STC公司多位员工的热心帮助,特别是得到了STC公司姚永平先生的支持,他对作者在编写本书过程中遇到的各种问题进行了耐心细致的回答。在本书出版的过程中,也得到了清华大学出版社的大力支持,在此表示深深的感谢。 由于编者水平有限,编写时间仓促,书中难免有疏漏之处,敬请读者批评指正。 作者2015年5月于北京