STC单片机原理及应用——从器件、汇编、C到操作系统的分析和设计(立体化教程)(第2版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-19 10:50:40

点击下载

作者:何宾

出版社:清华大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

STC单片机原理及应用——从器件、汇编、C到操作系统的分析和设计(立体化教程)(第2版)

STC单片机原理及应用——从器件、汇编、C到操作系统的分析和设计(立体化教程)(第2版)试读:

本书封面贴有清华大学出版社防伪标签,无标签者不得销售。版权所有,侵权必究。侵权举报电话:010-62782989 13701121933

图书在版编目(CIP)数据

STC单片机原理及应用:从器件、汇编、C到操作系统的分析和设计:立体化教程/何宾编著.—2版.—北京:清华大学出版社,2019(高等学校电子信息类专业系列教材)

ISBN 978-7-302-49233-7

Ⅰ. ①S… Ⅱ. ①何… Ⅲ. ①单片微型计算机-高等学校-教材 Ⅳ. ①TP368.1

中国版本图书馆CIP数据核字(2017)第331868号责任编辑:盛东亮封面设计:李召霞责任校对:时翠兰责任印制:沈 露出版发行:清华大学出版社网  址:http://www.tup.com.cn,http://www.wqbook.com地  址:北京清华大学学研大厦A座邮  编:100084社总机:010-62770175邮  购:010-62786544投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn课件下载:http://www.tup.com.cn,010-62795954印装者:清华大学印刷厂经  销:全国新华书店开  本:185mm×260mm印  张:31.5插  页:2字  数:767千字版  次:2015年6月第1版 2019年1月第2版印  次:2019年1月第1次印刷定  价:89.00元产品编号:076828-01作者简介

何宾 著名的嵌入式系统专家,高校嵌入式系统教学改革的开拓者。长期从事电子设计自动化方面的教学和科研工作,与全球多家知名的半导体厂商和EDA工具厂商保持紧密合作。目前已经出版电子信息技术方面的著作近50部,内容涵盖电路仿真、电路设计、FPGA、单片机、嵌入式系统等,代表作有《Xilinx FPGA设计权威指南》《Xilinx All Programmable Zynq-7000 SoC设计指南》《Altium Designer 13.0电路设计、仿真与验证权威指南》《Xilinx FPGA数字设计——从门级到行为级的双重描述》《Xilinx FPGA数字信号处理权威指南——从HDL、模型到C的描述》《模拟与数字系统协同设计权威指南——Cypress集成开发环境》。内容简介

本书是为单片机相关课程教学而编写的教材。全书共分为17章,主要内容包括:单片机和嵌入式系统基础知识,STC单片机硬件知识,STC单片机软件开发环境,数值表示及转换,STC单片机架构,STC单片机CPU指令系统,STC单片机汇编语言编程模型,STC单片机C语言编程模型,STC单片机时钟、复位和电源模式原理及实现,STC单片机比较器原理及实现,STC单片机计数器和定时器原理及实现,STC单片机异步串行收发器原理及实现,STC单片机ADC原理及实现,STC单片机增强型PWM发生器原理及实现,STC单片机SPI原理及实现,STC单片机CCP/PCA/PWM模块原理及实现,RTX51操作系统原理及实现。

针对国内高校单片机课程教学中普遍存在的理论讲解不透彻、实践教学不系统的缺点,本书从器件、汇编语言、C语言和操作系统四个角度对STC新一代单片机进行了全方位的解读,将单片机课程中的各个知识点进行融会贯通。该教材的一大特色就是理论和实际并重,不仅介绍单片机的应用,而且更加突出学习方法,教给读者系统学习微处理器和嵌入式系统的思路和方法。这样,为读者将来学习基于其他处理器的嵌入式系统打下坚实的基础。为了方便教师的教学和学生的自学,本书提供了大量的设计案例,并对这些设计案例进行了深入的分析。

本书可作为高职和本科院校单片机课程的教材,也可作为STC单片机竞赛、单片机认证考试的参考用书。对于从事单片机应用的工程师来说,本书也是很好的参考用书。高等学校电子信息类专业系列教材顾问委员会谈振辉 北京交通大学(教指委高级顾问)廖延彪 清华大学(特约髙级顾问)华成英 清华大学(国家级教学名师)彭启琮 电子科技大学(国家级教学名师)邹逢兴 国防科技大学(国家级教学名师)郁道银 天津大学(射皆委高级顾问)胡广书 清华大学(特约高级顾问)于洪珍 中国矿业大学(国家级教学名师)孙肖子 西安电子科技大学(国家级教学名师)严国萍 华中科技大学(国家级教学名师)编审委员会主 任 吕志伟 哈尔滨工业大学副主任 刘 旭 浙江大学隆克平 北京科技大学秦石乔 国防科技大学刘向东 浙江大学王志军 北京大学葛宝臻 天津大学何伟明 哈尔滨工业大学委 员王志华 清华大学韩 焱 中北大学殷福亮 大连理工大学张朝柱 哈尔滨工程大学洪 伟 东南大学杨明武 合肥工业大学王忠勇 郑州大学曾 云 湖南大学胨前斌 重庆邮电大学谢 泉 贵州大学吴 瑛 解放军信息工程大学金伟其 北京理工大学胡秀珍 内蒙古工业大学贾宏志 上海理工大学李振华 南京理工大学李 晖 福建师范大学何平安 武汉大学郭永彩 重庆大学刘缠牢 西安工业大学赵尚弘 空军工程大学蒋晓瑜 陆军装甲兵学院仲顺安 北京理工大学黄翊东 清华大学李勇朝 西安电子科技大学章毓晋 清华大学刘铁根 天津大学王艳芬 中国矿业大学苑立波 哈尔滨工程大学宋 梅 北京邮电大学张雪英 太原理工大学赵晓晖 吉林大学刘兴钊 上海交通大学陈鹤鸣 南京邮电大学袁东风 山东大学程文青 华中科技大学李思敏 桂林电子科技大学张怀武 电子科技大学卞树檀 火箭军工程大学刘纯亮 西安交通大学毕卫红 燕山大学付跃刚 长春理工大学顾济华 苏州大学韩正甫 中国科学技术大学何兴道 南昌航空大学张新亮 华中科技大学曹益平 四川大学李懦新 中国科学院上海光学精密机械研究所董友梅 京东方科技集团股份有限公司蔡 毅 中国兵器科学研究院冯其波 北京交通大学张有光 北京航空航天大学江 毅 北京理工大学张伟刚 南开大学宋 峰 南开大学靳 伟 香港理工大学丛书责任编辑 盛东亮 清华大学出版社序 FOREWORD

我国电子信息产业销售收入总规模在2013年已经突破12万亿元,行业收入占工业总体比重已经超过9%。电子信息产业在工业经济中的支撑作用凸显,更加促进了信息化和工业化的高层次深度融合。随着移动互联网、云计算、物联网、大数据和石墨烯等新兴产业的爆发式增长,电子信息产业的发展呈现了新的特点,电子信息产业的人才培养面临着新的挑战。(1)随着控制、通信、人机交互和网络互联等新兴电子信息技术的不断发展,传统工业设备融合了大量最新的电子信息技术,它们一起构成了庞大而复杂的系统,派生出大量新兴的电子信息技术应用需求。这些“系统级”的应用需求,迫切要求具有系统级设计能力的电子信息技术人才。(2)电子信息系统设备的功能越来越复杂,系统的集成度越来越高。因此,要求未来的设计者应该具备更扎实的理论基础知识和更宽广的专业视野。未来电子信息系统的设计越来越要求软件和硬件的协同规划、协同设计和协同调试。(3)新兴电子信息技术的发展依赖于半导体产业的不断推动,半导体厂商为设计者提供了越来越丰富的生态资源,系统集成厂商的全方位配合又加速了这种生态资源的进一步完善。半导体厂商和系统集成厂商所建立的这种生态系统,为未来的设计者提供了更加便捷却又必须依赖的设计资源。

教育部2012年颁布了新版《高等学校本科专业目录》,将电子信息类专业进行了整合,为各高校建立系统化的人才培养体系,培养具有扎实理论基础和宽广专业技能的、兼顾“基础”和“系统”的高层次电子信息人才给出了指引。

传统的电子信息学科专业课程体系呈现“自底向上”的特点,这种课程体系偏重对底层元器件的分析与设计,较少涉及系统级的集成与设计。近年来,国内很多高校对电子信息类专业课程体系进行了大力度的改革,这些改革顺应时代潮流,从系统集成的角度,更加科学合理地构建了课程体系。

为了进一步提高普通高校电子信息类专业教育与教学质量,贯彻落实《国家中长期教育改革和发展规划纲要(2010—2020年)》和《教育部关于全面提高高等教育质量若干意见》(教高〔2012〕4号)的精神,教育部高等学校电子信息类专业教学指导委员会开展了“高等学校电子信息类专业课程体系”的立项研究工作,并于2014年5月启动了《高等学校电子信息类专业系列教材》(教育部高等学校电子信息类专业教学指导委员会规划教材)的建设工作。其目的是为推进高等教育内涵式发展,提高教学水平,满足高等学校对电子信息类专业人才培养、教学改革与课程改革的需要。

本系列教材定位于高等学校电子信息类专业的专业课程,适用于电子信息类的电子信息工程、电子科学与技术、通信工程、微电子科学与工程、光电信息科学与工程、信息工程及其相近专业。经过编审委员会与众多高校多次沟通,初步拟定分批次(2014—2017年)建设约100门课程教材。本系列教材将力求在保证基础的前提下,突出技术的先进性和科学的前沿性,体现创新教学和工程实践教学;将重视系统集成思想在教学中的体现,鼓励推陈出新,采用“自顶向下”的方法编写教材;将注重反映优秀的教学改革成果,推广优秀的教学经验与理念。

为了保证本系列教材的科学性、系统性及编写质量,本系列教材设立顾问委员会及编审委员会。顾问委员会由教指委高级顾问、特约高级顾问和国家级教学名师担任,编审委员会由教育部高等学校电子信息类专业教学指导委员会委员和一线教学名师组成。同时,清华大学出版社为本系列教材配置优秀的编辑团队,力求高水准出版。本系列教材的建设,不仅有众多高校教师参与,也有大量知名的电子信息类企业支持。在此,谨向参与本系列教材策划、组织、编写与出版的广大教师、企业代表及出版人员致以诚挚的感谢,并殷切希望本系列教材在我国高等学校电子信息类专业人才培养与课程体系建设中发挥切实的作用。教授推荐序 FOREWORD

21世纪全球全面进入了计算机智能控制与计算的时代,而其中的一个重要方向就是以单片机为代表的嵌入式计算机控制与计算。由于最适合中国读者入门的8051单片机有30多年的应用历史,绝大部分工科院校均开设有该课程,目前有几十万名对该单片机十分熟悉的工程师可以相互交流开发经验,有大量的经典电路和程序可以直接移植,从而极大地降低了开发风险,提高了开发效率,这也是STC宏晶科技(南通国芯微电子有限公司)生产基于8051系列单片机产品的巨大优势。

Intel 8051技术诞生于20世纪70年代,已不可避免地面临着落伍的危险,如果不对其进行大规模创新,我国的单片机教学与应用就会陷入被动局面。为此,STC宏晶科技对8051单片机进行了全面的技术升级与创新,经历了STC89/90、STC10/11、STC12、STC15系列,累计发布上百种产品:全部采用Flash技术(可反复编程10万次以上)和ISP/IAP(在系统可编程/在应用可编程)技术;针对抗干扰进行了专门设计,超强抗干扰;进行了特别加密设计(例如STC15系列现仍无法解密);对传统8051进行了全面提速,指令速度甚至提高了24倍;大幅度提高了集成度,如集成了A/D转换器、CCP/PCA/PWM(PWM还可当D/A转换器使用)、高速同步串行通信端口SPI、高速异步串行通信端口UART、定时器、看门狗、内部高精准时钟(±1%温漂,-40~+85℃,可彻底省掉昂贵的外部晶振)、内部高可靠复位电路(可彻底省掉外部复位电路)、大容量SRAM、大容量EEPROM、大容量Flash程序存储器等。针对高校教学,STC15系列一个单芯片就是一个仿真器,定时器改造为支持16位自动重载(学生只需学一种模式),串行口通信波特率计算改造为[系统时钟/4/(65536重装数)],极大地简化了教学方式,针对实时操作系统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,每个芯片的I/O口从6到62个不等,价格从0.89元到5.9元不等,极大地方便了客户选型和设计。

2014年4月,STC宏晶科技重磅推出了STC15W4K32S4系列单片机——宽电压工作范围,可直接通过USB接口进行ISP下载编程,集成了更多的SRAM(4KB),定时器7个(5个普通定时器+CCP定时器2),串口(4个),集成了更多的高功能部件(如比较器、带死区控制的6路15位专用PWM等);开发了功能强大的STC-ISP在线编程软件,包含了项目发布、脱机下载、RS-485下载、程序加密后传输下载等功能,并已申请专利。IAP15W4K58S4一个芯片就是一个仿真器(OCD,ICE),首次实现一个芯片就可以仿真(彻底抛弃了J-Link/D-Link),售价仅5.6元。

STC全力支持我国的单片机/嵌入式系统教育事业,STC大学推广计划正如火如荼地进行中,陆续开展向普通高等学校电子信息、自动化等相关专业赠送可仿真的STC15系列实验箱(仿真芯片IAP15W4K58S4),共建STC高性能单片机联合实验室的项目。部分已建或在建STC高性能单片机联合实验室高校有:上海交通大学、复旦大学、同济大学、浙江大学、南京大学、东南大学、武汉大学、吉林大学、哈尔滨工业大学、哈尔滨工业大学(威海)、东北大学、兰州大学、西安交通大学、西北工业大学、西北农林科技大学、南开大学、天津大学、中山大学、厦门大学、山东大学、四川大学、成都电子科技大学、中南大学、湖南大学、中国农业大学、中国海洋大学、中央民族大学、北京师范大学、北京航空航天大学、南京航空航天大学、沈阳航空航天大学、南昌航空大学、北京理工大学、大连理工大学、华南理工大学、南京理工大学、武汉理工大学、华东理工大学、太原理工大学、上海理工大学、浙江理工大学、河南理工大学、东华理工大学、兰州理工大学、成都理工大学、天津理工大学、天津工业大学、哈尔滨理工大学、哈尔滨工程大学、合肥工业大学、北京工业大学、南京工业大学、浙江工业大学、广东工业大学、沈阳工业大学、河南工业大学、北京化工大学、北京科技大学、北京工商大学、华北电力大学(北京)、华北电力大学(保定)、长安大学、西南大学、西南交通大学、福州大学、南昌大学、东华大学、上海大学、苏州大学、江南大学、河海大学、江苏大学、安徽大学、新疆大学、石河子大学、齐齐哈尔大学、中北大学、河北大学、河南大学、黑龙江大学、扬州大学、南通大学、宁波大学、深圳大学、北京林业大学、南京林业大学、东北林业大学、南京农业大学、大连海事大学、西安电子科技大学、杭州电子科技大学、桂林电子科技大学、南京邮电大学、西安邮电大学、西安科技大学、河南科技大学、天津财经大学、南京财经大学、首都师范大学、华南师范大学、陕西师范大学、上海师范大学、沈阳师范大学、河南师范大学、中国计量学院、中国石油大学、中国矿业大学等国内著名高校。

对大学计划与单片机教学的看法

STC大学计划正有步骤地向前推进中,已在国内数十所高校成立了联合实验室。上海交通大学、西安交通大学、浙江大学、山东大学等高校的多位知名教授也正在基于STC 1T 8051创作全新的教材。

现在学校的学生是应该首先学习32位的微控制器还是8位的8051单片机呢?我觉得还是8051单片机比较合适。因为高校的嵌入式课程一般只有48学时,学生如果能充分利用这些学时,把8051单片机学懂,真正做出产品,工作以后就能触类旁通了。但是,如果只给他们48学时去学习ARM,学生不能完全学懂,最多只能搞些函数调用,培养不出真正能动手的人才。所以,还是应该以8位单片机入门。C语言最好与8051单片机融合教学,尽早开始此课程(比如在一年级开始学习)。等到三年级,学有余力的学生可以再选修32位的嵌入式课程。

对大学工科非计算机专业C语言教学的看法

现在工科非计算机专业讲C语言课程时往往存在“在空中飘着,落不着地”的情形,学完之后不知道干什么。以前我们学习BASIC/C语言,学完后用DOS系统,在DOS下开发软件。而现在的学生学完C语言,还要从Windows去返回DOS运行,所学的C语言也不能在8051单片机上运行。嵌入式C语言有多个版本,国内流行Keil C;现我们也在开发自己的C编译器。我们现在推动教学改革,将单片机和C语言(嵌入式C语言、面向控制的C语言)安排在同一门课程,在一年级的第一学期就开设,学生学完后就知道将来能干啥了,一年级的第二学期再开设Windows下的C++语言开发课程,正好利用我们的单片机C语言给它奠定的基础。学习过模电、数电(FPGA)、数据结构、实时操作系统(RTOS)、自动控制原理、数字信号处理等课程后,在大三再开一门综合电子系统设计课程,这样就循序渐进地培养出能真正动手实践的人才了。我们现在主要的工作是推动工科非计算机专业高校教学改革,何宾老师的这本教材就是我们教学改革研究成果的优秀代表。

感谢Intel公司发明了经久不衰的8051体系结构,感谢何宾老师撰写这本具备改革特色的新书,保证了中国30年来的单片机教学与世界同步。

我们将本教材确定为STC公司大学计划推荐教材、STC单片机大赛指定教材。采用本书作为教材的院校将优先免费获得我们提供的可仿真的STC15系列实验箱(主控芯片IAP15W4K58S4)。

最后,希望广大教师和学生“明知山有虎,偏向虎山行!”姚永平(STC MCU Limited)第2版前言 PREFACE

本书是在《STC单片机原理及应用——从器件、汇编、C到操作系统的分析和设计(立体化教程)》一书的基础上修订而成的。修改内容主要包括:(1)增加的第1章,专门介绍嵌入式系统的基础知识。使学生在学习单片机的理论知识之前,就能对单片机和嵌入式系统之间的关系有一个宏观的了解。(2)为了帮助读者全面理解STC单片机的硬件和软件开发所涉及的知识,在介绍单片机基础理论知识之前,专门增加了第2章STC单片机硬件知识和第3章STC单片机软件开发环境两章,并且通过一个简单的应用程序开发来帮助读者理解单片机的架构和应用。(3)遵循由浅入深的原则,对STC单片机外设的讲解顺序进行了调整,从最简单的比较器开始到最复杂的CCP模块为止。这样,更加便于教师的教学和学生的自学。(4)在第14章介绍增强型PWM模块时,增加了步进电机硬件设计和软件驱动开发的内容,使读者对单片机在电机驱动和控制中的应用有更深入的认知。

在修订的过程中,很多教师和学生提出了宝贵的修改建议,这些建议使本书内容更加丰富,结构更加紧凑,并且使理论和实践结合更加紧密,学以致用。在此,对这些教师和学生一并表示感谢。作者2019年1月于北京第1版前言 PREFACE

作者第一次接触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个,这些设计例子都通过上述的硬件和软件进行了调试和测试。

为了方便教师的教学和学生的自学,配套提供了该教材的教学课件和所用设计实例的完整设计文件,以及视频教学资源,这些资源均可以进入清华大学出版社网站本书页面下进行下载(http://www.tup.com.cn)。

在本书的编写过程中参考了STC公司最新的技术文档和手册,以及STC学习板原理图和PCB图,在此对STC公司表示衷心的感谢。在本书编写的过程中,集宁师范学院物理系聂阳老师参加编写了第13~15章的内容,作者的学生李宝隆、张艳辉负责部分章节的编写工作,黎文娟对本书的全部稿件进行了初步的完善和修改,以及本科生吴瑞楠、陈宁帮助作者制作了本书的教学课件,并对书稿提出了宝贵的建议。在本书编写的过程中,得到了STC公司多位员工的热心帮助,特别是得到了STC公司姚永平先生的支持,他对作者在编写本书过程中遇到的各种问题进行了耐心细致的回答。在本书出版的过程中,也得到了清华大学出版社的大力支持,在此表示深深的感谢。

由于编者水平有限,编写时间仓促,书中难免有疏漏之处,敬请读者批评指正。作 者2015年5月于北京学习说明 STUDY SHOWS

本书视频课堂地址

配书高清视频可到作者的网络课堂观看学习,网址:

http://www.gpnewtech.com/study/stc

本书教学课件(PPT)及工程文件下载地址

北京汇众新特科技有限公司,网址:http://www.gpnewtech.com/download/stc

注意:所有教学课件及工程文件仅限购买本书读者学习使用,不得以任何方式传播!

本书作者联络方式

何宾的网站:http://www.gpnewtech.com

何宾的电子邮件:hb@gpnewtech.com

本书配套硬件平台(1)STC公司官方捐赠实验箱(2)北京汇众新特科技有限公司开发的GPNT-SMK-1平台

STC公司赠送仿真器和实验箱事宜联络方式

STC公司官网:http://www.stcmcu.com,http://www.gxwmcu.com

市场及服务支持热线:0513-55012928 0513-55012929第1章 单片机和嵌入式系统基础知识

本章介绍单片机的基础知识,内容包括嵌入式系统的基本概念、8051微控制器的内部结构、8051单片机硬件开发平台、运行第一个8051单片机程序、8051单片机编程语言。

通过对单片机基础知识的介绍,帮助读者初步理解嵌入式系统和单片机的概念。1.1 嵌入式系统的基本概念

随着信息技术的不断发展,嵌入式系统(embedded system)越来越多地出现在人们的日常生活中。美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers)将其定义为用于控制、监视或者辅助操作机器和设备的装置。更具体地说,嵌入式系统是以具体应用为导向的,以计算机技术为核心的,根据具体应用对硬件和软件系统量身定做的便于携带的微型计算机系统。1.1.1 嵌入式系统的主要特点

典型的应用了嵌入式系统的设备有移动电话、智能手表和平板电脑等,如图1.1所示。这些基于嵌入式技术所构建的电子产品具有以下的共同特点:(1)体积小,重量轻。例如,iPhone手机可以放在我们衣服的口袋中,智能手表可以戴在我们的手腕上,平板电脑可以拿在我们的手上。(2)功耗低。体积很小的电池就可以为这些设备提供充足的电量。当这些设备处于待机状态时,电池可以为这些设备提供几天的电量。图1.1 基于嵌入式技术所构建的电子产品(3)成本较低。例如,花费不到2000元,就可以购买到一个能满足一般要求的平板电脑。(4)丰富的应用支持。例如,苹果手机提供了大量的应用支持,如用于移动支付、移动互联、移动交流等的应用。1.1.2 嵌入式技术的构成

嵌入式技术是构建嵌入式系统的核心,在系统层面的概念上说,它包含软件和硬件两个部分,如图1.2所示。图1.2 嵌入式系统的软件和硬件体系结构1. 嵌入式系统的硬件

构成嵌入式系统的硬件主要包括如下几类。

1)嵌入式处理器(Embedded Processor)

嵌入式处理器与中央处理单元(Central Processing Unit,CPU)有所不同,主要体现在以下方面:(1)CPU是单个处理器核,性能高,同时功耗也大。例如,Intel公司基于X86结构的CPU内核广泛用于个人计算机和笔记本电脑中。需要注意的是,Intel公司量产的包含多个CPU核的芯片已经不是传统意义上的CPU,因为CPU需要额外的存储器系统和外设的支持。(2)对于嵌入式处理器而言,根据应用场合的不同,性能也有所不同,其功耗要小于CPU,但是性能比CPU差。例如,英伟达公司的高性能图睿2嵌入式处理器不但集成了ARM Cortex-A9双核CPU,而且还提供了高速缓存、USB接口、图像处理器、图像信号处理器等,如图1.3所示。因此,更严格地说,它是片上系统(System on Chip,SoC)。

此外,在嵌入式系统中还有一类性能相对较低的嵌入式处理器,我们通常将其称为微控制器(Micro Control Unit,MCU),也称为单片机。其主要特点包括:①它只有一个处理器内核。典型的例子有ARM公司的Cortex-M0、Cortex-M3、Cortex-M4以及Intel公司的8051 CPU;②其内部包含了存储器块、输入输出(I/O)模块和其他外设;③它主要应用于工业控制领域中。

例如,我们所说的8051单片机就是指使用了MCS-51 CPU内核的MCU,ARM单片机就是指使用了ARM 32位低性能处理器内核(如Cortex-M0、Cortex-M0+)的MCU。

综上所述,不管是CPU、高性能嵌入式处理器还是MCU,它们都是专用集成电路芯片(Application Specific Integrated Circuits,ASIC),属于“芯片”的范畴。图1.3 英伟达公司的图睿2嵌入式处理器注:Video Encode Processor——视频编码处理器;Video Decode Processor——视频解码处理器;Audio Processor——音频处理器;Dual Display——双显示器;Image Signal Processor——图像信号处理器;Graphics Processor——图像处理器

2)供电系统

用于为嵌入式系统提供电源。通过为嵌入式处理器提供不同的电源管理模式,来满足嵌入式系统高性能和低功耗的要求。

3)外部存储器系统

除了嵌入式处理器芯片提供的片内存储器外,还可以通过嵌入式处理器提供的外部存储器接口,扩展大容量的存储器以满足高性能嵌入式系统的应用要求。比如,运行iOS和安卓操作系统的嵌入式系统就需要应用大容量的DDR存储器系统。

4)外部设备

通过嵌入式处理器芯片提供的外设接口,与外部设备进行连接,比如USB接口、以太网接口等。2. 嵌入式系统的软件

一个完整的嵌入式系统软件主要包括板级支持包(Board Support Package,BSP)、嵌入式实时操作系统(Real-Time OS,RTOS)和应用程序(APP)。(1)板级支持包提供了对外设的驱动支持以及与操作系统的接口。板级支持包与操作系统之间互相独立。(2)嵌入式实时操作系统。与个人计算机或笔记本电脑使用的Windows操作系统相比,由于嵌入式系统的内存储器资源以及所使用的处理器性能的限制,需要对嵌入式实时操作系统进行裁剪,以同时满足实时性和占用最少存储器资源的要求。(3)应用程序。在操作系统上,应用程序开发者编写的满足不同嵌入式应用要求的应用程序。

需要注意的是,低性能的MCU嵌入式应用不需要嵌入式实时操作系统的支持。这样,程序员就可以直接在板级支持包上通过调用应用程序接口(API)来编写应用程序,这就是我们经常说的“裸奔”。

在MCU上直接“裸奔”的主要缺点有:①在不同MCU之间移植程序将变得异常困难;②对于APP开发人员而言,需要掌握不同的MCU的架构和指令集的细节问题,极大地提高了开发难度;③由于没有操作系统的支持,无法实现多任务、分时的运行要求。

因此,即使对于像MCU这样低性能的嵌入式处理器而言,都会有一个很小的操作系统提供多任务的运行支持。比如,对于8051单片机而言,KeilμVision集成开发环境就提供了RTX Tiny51操作系统的支持。

思考与练习1-1:说明嵌入式系统的定义。

思考与练习1-2:说明CPU和MCU的区别。

思考与练习1-3:说明嵌入式和单片机的区别。

思考与练习1-4:说明在一个嵌入式系统中,完整的软件所包含的内容。

思考与练习1-5:说明在嵌入式系统中不搭载操作系统,直接“裸奔”的缺点。1.2 8051微控制器的内部架构

前面在介绍嵌入式系统时已经提到,微控制器(MCU)是构建嵌入式系统的一种典型的嵌入式处理器芯片。这个芯片内部集成了构成小型计算机系统的基本功能部件。本书将以8051微控制器(MCU,单片机)为原型,介绍MCU的内部结构,如图1.4所示。图1.4 8051单片机内部简化结构

从图中可知,其主要功能模块包括:中央处理单元、程序存储器、随机访问存储器、中断系统、计数器/定时器、外设接口模块,以及连接各个功能部件的总线。1. 中央处理单元

中央处理单元是单片机系统的大脑和中枢,它可以完成以下基本功能:(1)与不同地址空间的不同类型的存储器交换信息。通过对存储器的读和写操作,完成CPU和存储器的信息交换。(2)执行逻辑和算术指令。基本的指令包括:加/减运算、逻辑按位或运算、逻辑按位与运算、逻辑按位异或运算、移位运算等。2. 程序存储器

程序存储器用于保存将要执行的程序代码。例如,8051单片机内提供的程序存储器采用了非易失性工艺,即一旦把将要运行的程序“烧写”(固化)到程序存储器中,它就会一直存在,而不依赖于单片机处于上电还是断电的状态。只有将新的程序“烧写”(固化)到程序存储器中,才会覆盖掉上一次“烧写”(固化)在程序存储器中的程序。

从工艺上来说,大多数单片机的程序存储器采用Flash工艺,极少数的单片机采用一次可编程(One-Time-Programmable,OTP)工艺。当采用Flash工艺时,设计者可以多次修改和固化程序;当采用OTP工艺时,一旦程序固化,设计者就再也没有机会修改程序。3. 随机访问存储器

随机访问存储器(Random Access Memory,RAM)用于“暂存”程序中临时需要保存的数据,它采用易失性工艺,即8051单片机处于断电状态时,RAM内的数据将全部丢失。STC 8051单片机提供了用于不同目的的RAM,包括片内基本RAM、片内扩展RAM以及可以通过并行总线扩展的外部RAM。通过使用不同的指令,访问这些RAM资源。4. 中断系统

中断系统用于CPU对紧急事件的处理进程。当CPU正在执行当前程序时,若外部设备发出了紧急事件的请求(即通常所说的中断请求信号),如果CPU允许立即处理当前紧急事件,则CPU暂时停止运行(打断)当前正在执行的程序,并对紧急事件进行处理。这一过程就是通常所说的用于处理紧急事件的程序,即中断服务程序。

当CPU开始处理外部紧急事件时,中断系统会通知外部设备CPU已经开始处理紧急事件。这样,外部设备会做出相应的判断。5. 定时器/计数器

在单片机中,定时器/计数器单元是最基本的功能单元之一。通过这个单元,可以对不同的事件进行同步。例如,当定时器中的计数值到达预先设置的初值时,就会产生定时器中断信号,通过这个信号,外部设备可以做出相应的判断。6. 外部设备接口模块

尽管STC是全球最大的8051 MCU生产厂商,它提供的不同系列的8051单片机的外部接口模块也不尽相同。但是,它提供了通用的输入/输出(General Purpose Input&Output,GPIO)和RS-232接口。

根据产品的应用范围,STC公司不同系列的8051单片机还提供了一些个性化的外设。例如,STC15系列单片机中就集成了模拟-数字转换器(Analog to Digital Converter,ADC)模块。7. 总线

总线是一组相关逻辑信号的集合。目前大多数计算机系统都是基于总线的结构。总线包括:控制总线、地址总线和数据总线。

对于8051单片机系统而言,总线分为内部总线和外部总线,其中:(1)内部总线用于连接芯片内各个模块单元,如图1.4所示。(2)外部总线用于将外设连接到单片机上。STC公司的8051单片机提供了外部并行总线,通过该总线可以为8051单片机扩展外部存储器资源,也可以同时连接多个外部设备。通过外部并行总线,可以显著地提高8051单片机内CPU访问外部设备的速度和吞吐量。

思考与练习1-6:说明在8051单片机中所包含的主要功能单元,以及它们各自实现的任务。

思考与练习1-7:说明在8051单片机内,程序存储器所采用的工艺以及随机访问存储器所采用的工艺。1.3 8051单片机硬件开发平台

本节所介绍的三款8051单片机硬件开发平台均采用了STC公司最新的硬件可仿真的IAP15W4K58S4单片机芯片。STC公司提供的单片机开发平台如图1.5所示。本书作者开发的单片机开发平台GPNT-SMK-1和GPNT-SMK-2如图1.6和图1.7所示。图1.5 STC官方提供的开发平台图1.6 GPNT-SMK-1开发平台外观图1.7 GPNT-SMK-2开发平台外观

注:(1)这些开发平台均通过个人计算机或笔记本的USB接口供电。(2)本书给出的所有设计例子,除特殊声明外均可运行在这两款口袋式STC单片机开发板上。(3)这三款单片机开发平台的相关设计资料,读者均可通过下面的网址下载:http://www.edawiki.com。1.4 运行第一个8051单片机程序

本节将以GPNT-SMK-1开发平台为例,介绍在实际单片机目标系统上运行设计的步骤。在运行第一个8051单片机程序之前,需要配置所需要的硬件和软件环境,配置步骤主要包括:(1)在GPNT-SMK-1开发板左侧找到标识为U9的Mini USB接口(母头)。将USB电缆(其中一端包含Mini USB接口公头)的两端分别与开发板上的Mini USB接口(母头)和个人计算机/笔记本电脑上的USB接口(母头)进行连接。通过个人计算机/笔记本电脑的USB接口,为GPNT-SMK-1单片机硬件开发平台供电。(2)在本书所提供的资料的文件夹下,找到USB电缆驱动程序子目录。打开该子目录后,进入USB to UART Driver子目录。在该子目录下,进入CH340-CH341子目录。在该子目录下找到安装程序ch341ser,安装USB-UART的串口驱动程序(一般可自动安装)。

注:如果在安装过程中遇到问题,读者可以参考该目录下的驱动安装帮助手册。(3)找到并打开本书所提供的资料下的STC-ISP-15xx-V6.85D软件,如图1.8所示。图1.8 STC-ISP软件界面(4)在“单片机型号”右侧的下拉框中,默认选择IAP15W4K58S4。如果显示的不是该器件型号,请读者通过右侧下拉框重新选择单片机型号为IAP15W4K58S4。(5)在图1.8所示的界面中,在“串口号”右侧的下拉框中,选择USB-SERIAL CH340(COM3)选项。

注:所显示的串口号与读者的计算机配置有关,可能会与本书给出的串口号有所不同,请读者根据自己计算机给出的串口号进行设置。(6)通过“最低波特率”和“最高波特率”右侧的下拉框,设置最低波特率和最高波特率参数。

注:①默认将最低波特率设置为2400,最高波特率设置为115 200。

②在“单片机型号”右侧的下拉框中,确认选中的是IAP15W4K58S4。(7)单击图1.8中的“打开程序文件”按钮,出现打开程序代码文件对话框。在该对话框中,定位本书配套资源的路径,即\stc_mcu_test,找到并选择名字为top.hex的文件。(8)按下GPNT-SMK-1硬件开发平台上标识为电源开关的按钮,使得单片机硬件开发平台处于断电状态。当单片机开发平台断电时,只有标记为USB电源指示的绿色LED处于“亮”状态,而标记为系统电源指示的绿色LED灯处于“灭”状态。(9)单击STC-ISP(V6.85D)软件左侧下方的“下载/编程”按钮。在该软件右下方的窗口中出现“正在检测目标单片机...”提示信息,如图1.9所示。图1.9 检测单片机界面(10)按下GPNT-SMK-1开发平台上标识为电源开关的按钮,给单片机硬件开发平台加电。当给单片机硬件开发平台上电后,标记为USB电源指示的绿色LED处于“亮”状态,并且标记为系统电源指示的绿色LED灯也处于“亮”状态,表示单片机系统处于正常工作状态。(11)此时,通过STC-ISP软件自动将hex文件下载到IAP15W4K58S4单片机程序存储器内。同时,在STC-ISP(V6.85D)软件右下方的窗口中出现编程过程中的信息。(12)当给STC单片机IAP15W4K58S4编程成功后,即top.hex文件成功下载到STC单片机的片内Flash中时,提示“操作成功!”的消息,如图1.10所示。图1.10 完成对单片机编程后的提示信息(13)观察STC开发板上外设的工作情况。此时,GPNT-SMK-1开发板上的四个LED处于闪烁状态,同时蜂鸣器随着四个LED的闪烁发出“嘀鸣”声。(14)给单片机硬件平台断电,然后再重新加电后,GPNT-SMK-1开发平台上的四个LED处于闪烁状态,同时蜂鸣器随着四个LED的闪烁发出“嘀鸣”声,与烧写完程序后的工作状态一致。这是因为STC单片机内部提供了采用Flash工艺的非易失性程序存储器。

思考与练习1-8:识别三款开发平台上的8051单片机型号。

思考与练习1-9:说明软件对8051单片机所起的作用,以及软件和硬件之间的关系。(提示:单独的8051单片机芯片没有任何意义,就是一个芯片而已,但是当它运行不同的程序时,就变成了可以实现不同用途的嵌入式系统,进一步说,软件离不开硬件,硬件也离不开软件,二者是相辅相成的关系。)1.5 8051单片机编程语言

如图1.11所示,从系统结构来说,8051单片机语言分为四个不同的层次,包括:微指令控制序列、机器语言、汇编语言和高级语言。1. 微指令控制序列

微指令控制序列存在于CPU内部,单片机应用开发人员无法微指令控制序列。本质上,CPU就是通过由有限的自动状态机所构成的微指令控制器对其内部的寄存器、存储器和ALU图1.11 单片机编程语等参与具体数据处理的功能单元“发号施言体系结构令”。例如,要实现对8051单片机CPU内的两个寄存器的数据进行相加的操作,CPU内的微指令控制器会发出一系列的控制序列,这些控制序列在CPU主时钟的控制下,按顺序先后给出,这就是时序。微指令控制序列属于数字逻辑中组合逻辑和时序逻辑的范畴。只有设计8051单片机芯片的工程师,才会接触到微指令控制序列。

下面给出微指令控制序列控制两个数据相加过程的形式化描述:(1)选择某个寄存器,读取加数;(2)选择另一个寄存器,读取被加数;(3)将这两个操作数送到ALU;(4)根据功能,选择ALU执行加法运算;(5)ALU产生运算的结果和标志,比如:零标志、符号标志、进位标志和溢出标志等;(6)根据指令的要求,将运算的结果保存到寄存器或者存储器中。

可以看出,一个简单的加法运算,要产生一系列的控制序列。这也是通常所说的译码和执行指令的过程。2. 机器语言

从上文可以知道,使用单片机从事开发的应用工程师根本不需要知道微指令控制序列,他只要告诉CPU执行加法操作即可,也就是不需要掌握CPU内部结构的具体实现方式。保存在单片机内程序存储器中的由0和1构成的序列,称为机器语言(也称为机器代码)。通过取出相应的机器指令(机器代码),就可以实现加法运算。

在8051单片机中,ACC累加器和一个常数(立即数)相加的机器语言的格式,如图1.12所示。从图中可以看出,机器语言是由0和1构成的二进制序列。这个序列(机器指令)中包含操作码和操作数两个部分。图1.12 单片机机器语言格式

1)操作码

操作码告诉CPU需要执行的操作。该指令的操作码用二进制表示为(00100100),用十六进制表示为(24)。操作码部分包含了216操作的类型编码,同时也包含了一部分的操作数,指明了参与加法运算的一个数来自ACC寄存器中。

2)操作数

操作数是操作的对象。操作对象包括:立即数(常数)、寄存器和存储器等。在图1.12中,immediate data表示立即数(常数),占用了1字节(8比特),表示参与加法运算的另一个数的具体取值。

但是,纯粹意义上的机器语言对程序员太难理解了,这是因为使用单片机从事开发的应用工程师是CPU的使用者,而不是CPU的设计者,他们根本不可能从二进制代码的排列中看出机器语言所描述的逻辑操作行为。而且,他们很难记住这些0和1组成的二进制机器语言序列。3. 汇编语言

为了帮助应用工程师从更抽象的行为级上理解CPU所执行的操作,计算机软件设计人员开发了一套基于助记符描述CPU指令系统的方法。通过汇编语言助记符指令,软件应用开发人员可以将这些助记符所表示的CPU指令组合在一起,构成一个复杂的称为“程序”的软件代码来控制CPU的运行。

通过汇编器(软件工具),可以将使用汇编语言助记符描述的指令转换成使用机器语言描述的机器指令。用汇编助记符描述机器指令的完整的格式为:[标号:]  助记符  [操作数]  [;注释]其中,标号用来表示一行指令;助记符表示CPU所要执行的操作;操作数为与操作行为有关的操作对象。

现在用汇编语言来描述图1.12给出的机器指令:ADD A,#25其中:ADD表示数据相加操作;A表示目的操作数,即ACC累加器;#25表示源操作数。

这个助记符汇编指令所表示的是,将立即数(常数)25和ACC累加器内所保存的数相加,并将得到的结果保存在ACC累加器中。可以看到,在汇编语言(助记符)级上理解CPU的指令操作,更加直观,而且无须知道指令二进制的具体表示形式。因此,显著降低了软件程序开发人员基于单片机开发应用程序的难度。

但是,由于汇编语言下面是机器语言,所以使用汇编语言开发具体软件应用的工程师必须很清楚CPU的指令集、寄存器单元和存储器映射等烦琐的硬件规则。虽然其执行效率与机器语言相当,但是使用汇编语言开发复杂应用的效率很低。由于很多软件开发人员根本不了解CPU的具体内部结构,所以对他们而言,使用汇编语言开发应用并不比直接使用机器语言编程有更多的优势。

但是,汇编语言仍然非常重要。重要性体现在:(1)对理解CPU内部的结构和运行的原理非常重要。(2)很多与CPU打交道的软件驱动程序,尤其是操作系统的初始引导代码必须用汇编语言开发,这是因为以C语言为代表的高级语言的语法并不能一一对应到机器指令,也就是无法实现某些机器指令的功能。(3)一些对程序执行时间比较苛刻的场合也需要使用汇编语言进行开发,这样能显著减少程序的运行时间,提高代码的执行效率。4. 高级语言

值得高兴的是,目前,MCU的软件集成开发工具(如KeilμVision)支持使用C语言对单片机的程序进行开发。C语言不能直接运行在CPU上,它必须通过编译器和连接器(软件工具)的处理,最终生成可执行代码,也就是转换成机器语言,才能在CPU上运行。

从图1.11中可以看出,与C语言相比,汇编语言更接近于机器语言。因此,使用以C语言为代表的高级语言所编写的代码的运行效率不可能比用汇编语言编程的运行效率高。所以,如果想让用C语言所编写的代码和用汇编语言编写的代码有一样高的代码执行效率,需要C语言程序员使用各种程序设计技巧提高C语言代码的设计效率,并且调整编译工具的优先级设置选项,以满足代码长度和运行时间的双重要求。

代码长度和运行时间是单片机程序设计的两个最基本的要求,即:(1)要求程序代码尽可能地短,这样可以大大节省所占用的程序存储器的空间,减少对程序存储器空间的要求。(2)程序代码的运行尽量满足实时性的要求,这样在程序的执行过程中可以实时地响应不同外设的要求。虽然对程序进行优化会让高级语言程序员耗费很多的精力,但是他们再也不用和底层硬件直接打交道了。

现在越来越多的厂商提供了硬件的应用程序接口(Application Program Interface,API)函数。这样,程序员可以不用知道更多的硬件实现细节,只需关心如何使用API来编写代码使硬件工作,这样就大大提高了应用开发的效率。

下面以两个8位数相加为例,说明C语言、汇编语言和机器语言之间的关系:

这段代码的反汇编代码(汇编语言)、机器指令(机器语言)与C语言之间的对应关系如图1.13所示。图1.13 C语言、汇编语言与机器语言之间的关系

正如上面所提到的那样,8051单片机代码设计者必须能够很好地处理好汇编语言和C语言的关系。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载