推荐序
21世纪,全球全面进入了计算机智能控制与计算的时代,而其中的一个重要方向就是以单片机为代表的嵌入式计算机控制与计算。由于适合中国读者入门的8051单片机有30多年的应用历史,绝大部分工科院校均开设该课程,目前有几十万名对该单片机十分熟悉的工程师可以相互交流开发经验,有大量的经典电路和程序可以直接移植,从而极大地降低了开发风险,提高了开发效率——这也是STC宏晶科技(南通国芯微电子有限公司)生产STC系列单片机的巨大优势。
Intel 8051技术诞生于20世纪70年代,所以如果不对其进行大规模创新,国内的单片机教学与应用就会陷入被动局面。为此,STC宏晶科技对8051单片机进行了全面的技术升级与创新,相继开发了STC89/90、STC10/11、STC12、STC15和STC8系列,累计发布上百种产品,这些产品全部采用Flash技术(可反复编程10万次以上)和ISP/IAP(在系统可编程/在应用可编程)技术;针对抗干扰进行了专门设计,超强抗干扰;进行了特别加密设计(如STC15系列现仍无法解密);对传统的8051单片机进行了全面提速,指令速度甚至提高了24倍;大幅度提高了片内集成外设的种类和数量,如ADC、CCP/PCA/PWM 、高速同步串行通信接口SPI、高速异步串行通信接口UART、定时器、看门狗、内部高精准时钟(±1%温飘,-40 ~ +85℃之间,可彻底省掉昂贵的外部晶振)、内部高可靠复位电路(可彻底省掉外部复位电路)、大容量SRAM、大容量E2PROM、大容量Flash程序存储器等。针对高校单片机教学,STC8系列的单片机就是一个仿真器,定时器改造为支持16位自动重载(学生只需学一种模式);极大地简化了教学方式。针对实时操作系统RTOS推出了不可屏蔽的16位自动重载定时器,并且在最新的STC-ISP烧录软件中提供了大量易用的工具,如范例程序、定时器计算器、软件延时计算器、波特率计算器、头文件、指令表、Keil仿真设置等。此外,单片机的芯片封装也从传统单一的PDIP40发展到能够满足不同应用要求的多种封装形式,包括DIP8/DIP16/DIP20/SKDIP28、SOP8/SOP16/SOP20/SOP28、TSSOP20/TSSOP28、DFN8/QFN28/QFN32/QFN48/QFN64、LQFP32/LQFP48/LQFP64S/LQFP64L。
STC宏晶科技于2017年重磅推出了以STC8A8K64S4A12为代表的STC8系列超高速8051单片机,该款单片机的最低价格仅有34元。目前,该系列是STC价格最低、功耗最低、速度最快的单片机(比传统的8051单片机快12倍以上)。与前一代STC15系列的单片机相比,新增加的特性主要包括:(1)增强了中断嵌套能力;(2)增强了I/O口的控制能力;(3)片内SRAM容量增加到8KB;(4)ADC的分辨率增加到12位,并且支持最多15个通道;(5)CCP/PCA/PWM模块增加到4组;(6)增强型PWM模块增加到8路;(7)新集成了I2C模块。并且,该系列单片机同时支持Keil μVision环境下的纯软件仿真和硬件在线仿真与调试功能(该单片机本身就是一个仿真芯片)。此外,进一步增强了STC-ISP在线编程软件的功能(目前最新版本为V686L),该软件包含了项目发布、脱机下载、RS-485下载、程序加密后传输下载等功能。
STC全力支持我国的单片机/嵌入式系统教育事业,STC大学推广计划正在如火如荼地进行中,陆续开展向普通高等学校电子信息、自动化等相关专业赠送可仿真的STC系列实验箱,共建STC高性能单片机联合实验室的项目。部分已建或在建STC高性能单片机联合实验室的高校有:北京航空航天大学、南京航空航天大学、北京理工大学、上海交通大学、同济大学、中山大学、天津大学、哈尔滨工业大学、哈尔滨工业大学〈威海〉、东北大学、吉林大学、兰州大学、山东大学、湖南大学、西北农林科技大学、中国石油大学、华北电力大学、深圳大学、杭州电子科技大学、桂林电子科技大学、西安电子科技大学、电子科技大学、北京化工大学等高等学校,以及深圳职业技术学院等著名的职业院校。
1对大学计划与单片机教学的看法
STC公司正有步骤地推动大学计划向前推进:相继支持国内多个采用STC系列单片机的电子设计竞赛活动和学生的创新活动;在国内数十所高校成立了联合实验室;与国内高校教师进行密切的产学研合作,出版了多部STC系列单片机相关的教材和著作。
现在学校的学生应该首先学习32位的微控制器还是8位的8051单片机呢?个人觉得还是8051单片机比较合适。因为高校的嵌入式课程一般只有48个学时,学生如果能够充分利用这些学时,把8051单片机学懂,真正做出产品,工作以后就能触类旁通了。但是,如果只给他们48个学时学习ARM,学生是不能够完全学懂的,最多只能搞些函数调用,培养不出真正动手的能力。所以,还是应该以8位单片机入门。C语言最好与8051单片机融合教学,尽早开始此课程(比如在一年级开始学习)。等到大学三年级,学有余力的学生可以再选修32位的嵌入式课程。
2对大学工科非计算机专业C语言教学的看法
现在工科非计算机专业讲C语言的课程多是“在空中飘着,落不着地”,学完之后不知道干什么。以前我们学习BASIC/C语言,学完后在DOS系统下开发软件。而现在的学生学完C语言,还要从Windows返回DOS运行,所学的C语言也不能在8051单片机上运行。嵌入式C语言有多个版本,国内流行Keil C;现在我们也在开发自己的C编译器。我们现在推动教学改革,将单片机和C语言(嵌入式C语言、面向控制的C语言)安排在同一门课程中学习,在大学一年级的第一学期就开设,学生学完后就知道将来能够干什么了,大学一年级的第二学期再开设Windows下的C++语言开发课程,正好利用单片机 C语言奠定的基础。学习过模电/数电(FPGA)/数据结构/ 实时操作系统(RTOS)/自动控制原理/数字信号处理等课程后,在大学三年级时再开一门综合电子系统设计课程,这样就能够循序渐进地培养出真正动手实践的人才了。我们现在的主要工作是推动工科非计算机专业高校的教学改革,何宾老师的这本教材就是我们教学改革研究成果的优秀代表。
感谢Intel公司发明了经久不衰的8051体系结构,感谢何宾老师采用STC最新8系列单片机撰写这本具备改革特色的新书,保证了中国30年来的单片机教学和应用与世界同步。
我们将本书确定为STC公司大学计划推荐教材和STC单片机大赛指定教材。采用本书作为教材的院校将优先免费获得我们提供的可仿真的STC8系列实验箱(主控芯片STC8A8K64S4A12)。
最后,希望广大教师和学生“明知山有虎,偏向虎山行!”
Andy姚(STC MCU Limited)2018年4月前言
前言
本书以STC公司的STC8系列单片机为平台,以8051处理器架构、指令集、汇编和C语言程序设计为主线,从外设到μC/OS-II操作系统全方位、多角度系统地介绍了STC8系列单片机的硬件和软件开发流程。
从某种意义上而言,STC8系列单片机开启了8051单片机的崭新时代。与STC公司前一代的STC15系列8051增强型单片机相比,STC8系列单片机呈现出以下新的特点:
(1)增强了双数据指针DPTR的选择和控制功能。通过程序控制,可实现数据指针自动递增或递减功能,以及对两组数据指针的自动切换功能。
(2)将传统8051单片机内特殊功能寄存器SFR扩展到了扩展特殊功能寄存器XSFR,进一步增强了处理器对单片机集成外设的控制能力,这也增强了C语言指针的应用。
(3)进一步增强了中断优先级的控制能力,为STC8系列单片机的每个中断源设置了多达4个的中断优先级,这样可以实现更复杂的中断嵌套能力。
(4)进一步增强了I/O的能力,增加了上拉电阻及施密特触发器的控制能力。此外,为单片机内所集成的外设提供了更多的I/O引脚可选位置。
(5)新集成了I2C控制器模块,使得单片机可以与更多的I2C设备直接接口。以后读者无须再通过模拟I2C时序来与I2C设备通信。这样,进一步释放了8051内CPU的潜力。
(6)进一步提高了片内所集成的ADC模块的性能,其分辨率从10位提高到12位,并且采样率也有了很大的提高。
(7)进一步增加了PWM的通道数量,满足在复杂电机驱动和控制中的应用。
(8)进一步增加了CCP模块的通道数量,以满足复杂捕获、比较和PWM的应用功能。
(9)将片内扩展SRAM的容量由4KB增加到了8KB。
与STC8系列单片机增强功能相对应,在编著者已经出版的《STC单片机原理及应用》教材的基础上,修改和增加以下内容,使得该书能更全面系统地反映单片机在不同领域中的应用:
(1)增加了单片机和嵌入式系统基础知识一章,目的在于帮助读者理解单片机与嵌入式系统之间的联系和区别。
(2)将STC单片机开发所需的基础知识分为STC单片机硬件知识和STC单片机软件开发环境两章,目的是帮助读者从整体上认识开发单片机所需的知识,以及初步熟悉基于Keil μVision 5集成开发环境的STC单片机软件开发流程。
(3)将STC单片机I/O端口原理及驱动单独编写为一章,以帮助读者深入理解I/O驱动原理、驱动模式设置、上拉电阻设置以及施密特触发器设置等内容。
(4)将STC单片机中断系统原理及实现单独编写为一章,增加了4个中断优先级的设置内容,并中断嵌套的实现方法之处。
(5)在STC单片机增强型PWM发生器原理及应用一章中,增加了使用软件和硬件PWM模块驱动步进电机的方法,以帮助读者掌握增强型PWM模块在电机驱动和控制中的应用,并理解软件和硬件PWM原理的不同之处。
(6)增加了STC单片机I2C原理及实现一章,详细介绍STC8系列单片机所集成I2C模块的原理,以及通过I2C模块扩展I/O引脚的