前 言
C语言是目前最为基础、最为流行的程序设计语言,具有简洁、紧凑、灵活、实用、高效、可移植性好等优点。C语言的数据类型丰富,可直接面向机器,既可用来编写系统程序,又可用来编写应用程序。目前,C语言已是嵌入式系统应用编程中最为重要的编程语言,是嵌入式应用学子不可或缺的编程语言。
本教材在编写策略上,相比传统C语言程序设计教材有较大的突破。将C语言与嵌入式应用领域紧密结合,将C语言课程与单片机课程有机融合,突显C语言学习的应用性,做到有的放矢,又保证单片机学习的系统性,充分体现C语言与单片机在电子产品设计中的应用性。本教材是在大学“C语言课程”与“单片机课程”融合的背景下,选用当前市场占用率最高的STC单片机为教学平台,以代表STC最新、最高水平的STC15W4K32S4系列单片机为教学机型,围绕STC大学合作计划赠送STC15实验箱开发的。本书是STC大学计划推荐教材,STC高性能单片机联合实验室上机实践指导教材,STC杯单片机系统设计大赛参考教材,是STC推荐的全国大学生电子设计竞赛STC单片机参考教材。使用本书作为教材的院校将优先免费获得STC可仿真的STC15系列实验箱的支持(主控芯片为STC可仿真的IAP15W4K58S4)。
本书注重实践性、应用性与工程性,理论联系实际,书中大部分例程具有一定的单片机应用系统功能,实验、实践操作性强。全书共13章,包括C语言概述、STC单片机开发环境的建立、IAP15W4K58S4单片机的存储器与I/O口、函数、顺序程序结构与应用编程、选择程序结构与应用编程、循环程序结构与应用编程、数组与指针、IAP15W4K58S4单片机的定时/计数器、IAP15W4K58S4单片机中断系统、IAP15W4K58S4单片机的串行口、C语言构造数据类型、IAP15W4K58S4单片机应用系统设计等。
为便于教学,向采用本教材教学的教师免费提供电子课件与例程的源程序。
本书由丁向荣编著,由STC单片机创始人姚永平先生主审。
由于编者水平有限。书中定有疏漏和不妥之处,敬请读者不吝指正!书中相关勘误或信息也会动态地公布在STC官网上:www.stcmcu.com。您有什么建议,可发电子邮件到:dingxiangrong65@163.com,与作者进一步沟通与交流
作 者
2015年6月于广州
?
?
序
21世纪全球全面进入了计算机智能控制/计算时代,而其中的一个重要方向就是以单片机为代表的嵌入式计算机控制/计算。由于最适合中国工程师/学生入门的8051单片机有30多年的应用历史,绝大部分工科院校均有此必修课,有几十万名对该单片机十分熟悉的工程师可以相互交流开发/学习心得,有大量的经典程序和电路可以直接套用,从而大幅降低了开发风险,极大地提高了开发效率,这也是STC.宏晶科技/南通国芯微电子有限公司基于8051系列单片机产品的巨大优势。
Intel 8051技术诞生于上世纪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系列单片机,宽电压工作范围,不需要任何转换芯片,STC15W4K32S4系列单片机可直接通过电脑USB接口进行ISP下载编程,集成了更多的SRAM(4K 字节)、定时器7个(5个普通定时器+CCP定时器2)、串口(4个),集成了更多的高性能部件(如比较器、带死区控制的6路15位专用PWM等);开发了功能强大的STC-ISP在线编程软件,包含了项目发布、脱机下载、RS-485下载、程序加密后传输下载、下载需口令等功能,并已申请专利。IAP15W4K58S4一个芯片就是一个仿真器(OCD,ICE),人民币5.6元,是全球第一个实现一个芯片就可以仿真的,再也不需要啥J-Link/D-Link了。
在中国民间草根企业掌握了Intel 8051单片机技术,以“初生牛犊不怕虎”的精神,击溃了欧美竞争对手之后,站在8051单片机发展的前沿,正在向32位前进的途中,STC感恩社会,回馈社会,全力支持我国的单片机/嵌入式系统教育事业,STC大学推广计划正在如火如荼地进行中,免费向一本、二本大学赠送可仿真的STC15系列实验箱(仿真芯片IAP15W4K58S4),共建STC高性能单片机联合实验室。 本教材为STC大学推广计划的合作教材,也是STC杯单片机系统设计大赛的推荐教材。
对大学计划与单片机教学的看法
STC大学计划在如火如荼的进行中,第九届“STC杯单片机系统设计大赛”刚成功落幕,全国数百所高校,1100支队伍参赛;在国内多所大学建立了STC高性能单片机联合实验室,已建和在建的如上海交通大学、复旦大学、同济大学、浙江大学、南京大学、东南大学、吉林大学、哈尔滨工业大学、哈尔滨工业大学(威海)、东北大学、兰州大学、西安交通大学、西北工业大学、西北农林科技大学、南开大学、天津大学、中山大学、厦门大学、山东大学、四川大学、成都电子科技大学、中南大学、湖南大学、中国农业大学、中国海洋大学、中央民族大学、北京师范大学、北京航空航天大学、南京航空航天大学、沈阳航空航天大学、南昌航空大学、北京理工大学、大连理工大学、华南理工大学、南京理工大学、武汉理工大学、华东理工大学、太原理工大学、上海理工大学、浙江理工大学、河南理工大学、东华理工大学、兰州理工大学、天津理工大学、天津工业大学、哈尔滨理工大学、哈尔滨工程大学、合肥工业大学、北京工业大学、南京工业大学、浙江工业大学、广东工业大学、沈阳工业大学、河南工业大学、北京化工大学、北京工商大学、华北电力大学(北京)、华北电力大学(保定)、长安大学、西南大学、西南交通大学、福州大学、南昌大学、东华大学、上海大学、苏州大学、江南大学、河海大学、江苏大学、安徽大学、新疆大学、石河子大学、齐齐哈尔大学、中北大学、河北大学、河南大学、黑龙江大学、扬州大学、南通大学、宁波大学、深圳大学、北京林业大学、南京林业大学、东北林业大学、南京农业大学、大连海事大学、西安电子科技大学、杭州电子科技大学、桂林电子科技大学、南京邮电大学、西安邮电大学、西安科技大学、河南科技大学、天津财经大学、南京财经大学、首都师范大学、华南师范大学、上海师范大学、沈阳师范大学、河南师范大学、中国计量学院、中国石油大学、中国矿业大学等国内著名高校,以及广东轻工职业技术学院、深圳信息职业技术学院、深圳职业技术学院等著名的职业高校。
上海交通大学/西安交通大学/浙江大学/山东大学/成都电子科技大学等著名高校的多位知名教授使用STC 1T 8051创作的全新教材也在陆续推出中。多所高校每年都有用STC单片机进行的全校创新竞赛,如杭州电子科技大学/南通大学/湖南大学/哈尔滨工业大学(威海)/山东大学等。
现在学校的学生单片机入门到底应该先学32位好还是先学8位的8051好?我觉得还是8位的8051单片机好。因为现在大学嵌入式只有64个学时,甚至只有48个学时,学生能把8位的8051单片机学懂做出产品,今后只要给他时间,他就能触类旁通了。但如果也只给48个学时去学ARM,学生没有学懂,最多只能搞些函数调用,没有意义,培养不出真正的人才。所以大家反思说,还是应该先以8位单片机入门。C语言要与8051单片机融合教学,大一第一学期就要开始学(现在有些中学的课外兴趣小组都在学STC的8051 + C语言),大三学有余力的学生再选修32位嵌入式单片机课程。
对大学工科非计算机专业C语言教学的看法
再讲讲C语言,现在工科非计算机专业讲C语言的书多是空中飘着,落不着地,学完之后不知道干什么。以前我们学BASIC/C,学完用DOS系统,也在DOS下开发软件。现在学生学完C,要从Windows去返回DOS运行,学的C也不能在8051上运行。嵌入式C语言有多个版本,国内Keil C 流行,现我们也在开发我们中国人自己的C编译器。现在学标准C语言,没办法落地了,学完了,PC上干不了事,单片机上也动不了
丁向荣,男,广东轻工职业技术学院教授,多年从事单片机技术相关教学及科研工作,并积极参与和推进新型单片机在国内的研发与普及,其编写的单片机教材在我社出版后,获得市场的广泛认可。