前言
单片机(SingleChip Microcomputer)是一种集成电路芯片,它采用超大规模集成电路技术,将中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、多种I/O接口和中断系统、定时器/计数器等功能集成到一块芯片上,构成一个小而完善的微型计算机系统,在工业控制领域有着广泛应用。
单片机具有体积小、质量轻、价格低等优点,为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。因此,众多高等院校的电子信息类、通信类、自动化类、机电一体化类等专业都开设了单片机相关课程。
近年来,在“大众创业、万众创新”的新势态以及“新质生产力”的需求牵引下,高等院校的教学目标更加注重对学生的基本理论素质培养以及发现问题、分析问题和解决问题的综合能力培养。51单片机非常适合本科教学中的基本理论素质和实践动手能力的培养目标。在基础理论方面,51单片机教材包括计算机常用的数制和编码、数据在计算机中的表示方法、定点数与浮点数等、大端(小端)格式、规则字和非规则字等基础理论; 在设计应用方面,该类教材涉及中断、定时器/计数器、串行接口通信、总线、扩展、A/D转换和D/A转换等实践知识。同时,大多数51单片机方面的教材以汇编语言讲解为主,结合寄存器、内存、时序等计算机底层知识,让学生既能充分掌握其基本原理,又能培养学生的实践动手能力。
另外,整个51体系只有21个寄存器、111条汇编指令,因而其入门容易,教学周期大大缩短。相比之下,高端的ARM等嵌入式微处理器寄存器超过1000个,其内存组织结构复杂,指令众多,加之一些生涩难懂的定义,让很多学生初学时望而却步,对仅有40多个课时的课堂教学而言,教师也无法系统地进行讲解。此外,51单片机具有计算机的基本功能,只要学会了51单片机,就容易理解其他高端的ARM等嵌入式微处理器。与高端的ARM等嵌入式微处理器相比,51单片机芯片造价低,对于学生来说其学习成本很低,可以大量购买芯片回来自己动手实验,因而非常适合教学使用。
应该知道,尽管51单片机在电子信息类本科教育中具有不可替代的作用,然而随着毕业生人数的逐年增加,毕业生就业压力普遍增大,社会对电子信息类本科生毕业生的期望值也逐年提高。这就要求学生在学好51单片机的基础上,能进一步有针对性地学习ARM等高档嵌入式微处理器,了解主流嵌入式微处理器的结构与原理,熟悉嵌入式操作系统,掌握嵌入式软件开发流程和嵌入式项目的开发方法,并结合安卓开发、数据库开发、网络开发、图像处理等进一步提升专业技能。
基于以上原因,本书在单片机的基础理论、芯片结构、汇编指令等基础知识方面,以51单片机为样本进行讲解。然后,以社会上广泛使用的STM32为样本,以STM32F103系列芯片为例,从实际开发应用的角度讲解ARM嵌入式微处理器的硬件设计方法和软件开发过程。
本书共分14章,内容深入浅出,丰富实用。本书主要内容安排如下。
第1章主要介绍微型计算机的基础知识,包括计算机的产生和发展、计算机的分类及特点、计算机的架构和指令集、计算机中常用数制和编码、数据在计算机中的表示方法以及定点数与浮点数等。
第2章主要介绍计算机的基本工作原理,包括中央处理单元、存储器、I/O接口、总线等组成单元及计算机中数据的基本单位等。本章举例介绍了8086计算机系统、家用微型计算机(PC)和51单片机的组成与工作原理,并进行了对比和分析,还介绍了流水线等概念。
第3章是在第1章和第2章的基础上,以51单片机为核心,介绍了单片机的分类、发展及应用。以8051单片机系统为例,介绍了51单片机的存储器组织、51单片机CPU的内部结构、51单片机的时钟与复位、51单片机的引脚功能和最小系统等。结合51单片机的特点,对微机原理的堆栈部分进行了详细介绍。
第4章以51单片机的指令集为主线,主要介绍51单片机的寻址方式和指令系统,详细分析了各种寻址方式的特点,并逐一介绍了51单片机的基本指令。
第5章基于第4章的寻址方式和基本指令,对单片机的汇编语言编程进行了讲解。
第6章介绍了微机原理中的中断基本概念,包括中断、中断源、中断系统、中断优先级和中断嵌套等。结合51单片机,详细给出了中断的具体处理过程和应用举例。
第7章是在第2章介绍的I/O接口概念的基础上,针对51单片机的I/O接口进行了详细讲解,并给出了LED数码管在I/O接口中的实际应用。
第8章介绍了微机原理中定时/计数的基本概念,结合51单片机,详细介绍了其定时器/计数器的结构、组成、工作方式、基本寄存器、初始值设置等,给出了51单片机定时和计数的应用举例。
第9章对微机原理中的串行通信技术进行了介绍,包括同步和异步通信、串行通信的方向、串行通信的波特率以及基本的RS232连接。结合51单片机,详细讲解了51单片机系统中串行通信的结构、工作原理、基本寄存器、工作方式等,并给出了应用举例。
第10章介绍了微机原理中的扩展方法,包括系统总线和扩展的基本概念,译码、片选和总线的基本概念。以51单片机为例,详细讲解了存储器的扩展、I/O接口的扩展,并给出了综合应用。
第11章介绍了嵌入式系统特点、分类,特别对基于ARM的微处理器进行了详细介绍,在此基础上,进一步介绍了嵌入式操作系统。
第12章对ARM开发工具的使用进行了详细介绍,包括ARM应用程序的调试方法和Keil MDKARM集成开发环境的使用技巧。考虑到固件库(库函数)是STM32应用程序开发的基础,本章还详细介绍了STM32固件库的目录结构,并通过一个例子详细讲解了STM32的工程模板构建过程。
第13章是ARM系统硬件设计,包括硬件的选择、系统的结构、单元电路设计等,详细介绍了STM32的硬件电路板设计过程与电路的调试方法,同时讲解基于STM32芯片的最小系统。
第14章在ARM系统硬件设计的基础上,详细讲解了ARM应用开发过程,包括异步串行接口编程、GPIO操作编程、显示编程、中断编程、定时及PWM编程、A/D转换编程以及SPI总线编程。
本书深入浅出、通俗易学,具有良好的可读性,既可作为本科电子信息类专业的教材,也可供自学考试和成人教育有关专业选用,还可供研究生及科研人员参考使用。
本书由尹勇统稿,其中,尹勇负责第1~10章的编写、撒继铭负责第11~14章的编写。此外,娄平、郭志强、王克浩、刘佳宜等也给予了指导和帮助,在此表示感谢。
配 套 资 源
程序代码等资源: 扫描目录上方的“配套资源”二维码下载。
教学课件、教学大纲、电子教案、习题答案等资源: 在清华大学出版社官方网站本书页面下载,或者扫描封底的“书圈”二维码在公众号下载。
微课视频(332分钟,49集): 扫描书中相应章节中的二维码在线学习。
注: 请先扫描封底刮刮卡中的文泉云盘防盗码进行绑定后再获取配套资源。
本书参考和引用了大量图书和网络文献,教材的完成离不开这些宝贵的资源和同行无私的奉献,在此特向他们表示崇高的敬意和衷心的感谢。同时由于编者水平有限,书中难免存在一些缺点和错误,恳请广大读者批评指正。
编者2025年3月