- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
删繁就简-单片机入门到精通
第四章 单片机 C 语言
终于结束了晦涩枯燥的第三章,我自己也长吁了一口气,现在我真的是非常同情那些教专业基
础课或者工程数学的老师,这里真诚的说一声:“辛苦你们了”。
这一章要轻松不少,相信就算是刚走出校门的雏鸟,多少都有一定的C 语言基础,大学好象都
要过一个计算机等级考试,所以C语言自然是逃不了。你不要指望我给你讲述C语言原理和指令这
类基础知识,我更不会给你讲述 C++那些面对对象编程的高级编程方法,这一章讲述的内容都是 C
语言在单片机上应用会遇到的一些有意思的现象,让你知道C在单片机上是怎么工作的。
当然也会告诉你一些C 的经验技巧,这些对提升你的单片机程序能力还是有一定作用的。
4.1. 单片机 C 语言
早期单片机编程是没有C语言支持的,都是汇编甚至是二进制的机器码,随着电脑技术的突飞
猛进,单片机编程不再安于汇编的一亩三分地,也向着 C 语言的方向进发。理论上讲单片机实现C
语言编程不存在丝毫问题,毕竟和电脑是同根生,于是一批专业或非专业、有着利益目的或无利益
目的的工程师开始了这方面的努力。
和电脑最大的不同是单片机种类繁多,不象电脑只有那么几种芯片,而且电脑CPU的发展遵循
着一定的规则,不同CPU要求做到指令兼容,单片机做这样的要求显然不现实,厂商不可能接受都
遵循制定标准设定MCU 的要求。虽然单片机种类繁多,但大部分单片机还是会采用通用构架进行设
计,毕竟遵循一定标准可以不用厂商自己去完成指令系统、编译工具等繁琐工作,所以市面上流行
的单片机内核其实并不多,不少八位的单片机都采用 51 内核,高端的 MCU 内核更是集中在
ARM/MIPS…这几种当中。
厂商设计的 MCU 通常都会沿用某一种构架,也就是厂商产品目录中的 xx 系列,这样做厂商可
以节省开发成本,一套编译器可以为一个甚至多个系列的MCU所用,这样新设计MCU或编译器有问
题也可以在日后进行改进,如果弄成一种MCU就对应一套编译器的方式,神仙也会疯掉。厂商为了
占领更多的市场,自然就会依据市场需求针对MCU推出C的编译器,不过这种做法所退出的C编译
器质量局限于厂商自己技术能力,通常说这类编译器可以用,但不要期望有着很高的效率。如果是
流行面广的内核,会有另外一种方式,就是专业的软件公司针对这种内核的指令系统开发C编译器,
象 KEIL C 就是一例,这种软件公司在编译方面经验丰富,所以他们做出来的编译器效率方面相当
不错,只要是他们编译器支持的内核,就很容易让编译器支持。软件公司推出的C 编译器虽然好,
但要钱,有免费的版本可限制多多,技术世界从来不缺少活雷锋,GCC这样的组织让免费获取 C编
MCU EDU 第 134 页 作者:Dai ShangJu
删繁就简-单片机入门到精通
译器成为了现实,不过这类组织所支持的对象只能是内核为ARM/MIPS…的高端通用 MCU。
想要做好单片机的C编译器则必须具备这两个条件:一是熟悉MCU的硬件资源和指令系统,二
是熟悉C 语言,两者缺一不可,否则是做不出一个优质高效的单片机C编译器的。编译器的工作就
是将用C 写的代码按一定规则转换成汇编指令,这样程序员面对的是接近自然语言的C代码,对程
序的结构控制、含义理解等会容易不少。由于转换操作依赖编译器,虽然一个编译器需要经过大量
测试才会推出,但测试无法涵盖所有的编程可能,这样编译器并不能保证可靠性为百分百,一旦有
错误产生,调试会麻烦许多,毕竟错误不是程序员而是编译器产生的,在C语言层面会让错误弄得
一头雾水,当然程序员对C和汇编都很熟悉的话还是可以通过查看汇编代码的方式来查找编译器错
误。
同电脑的C相比单片机的C 编程存在自己的特点:电脑用C 写程序奉行的是硬件无关的原则,
程序员只要了解C 的语法就可以,就是深入到驱动程序层面也只需要了解驱动程序的接口就够,单
片机则不然,C 只是让程序员面对的代码不再是汇编格式,程序编写依然还是要了解硬件特性,只
是将原本由汇编写的硬件控制代码改成了C的语法格式;为了最大程度的利用单片机的各种指令,
单片机的C编译器同电脑的C编译器相比可能会有多不同,比如对某些C语法做出修改,象KEIL C
对 51 系列的单片机就多出了位变量的定义和操作的语法;单片机结构要比电
您可能关注的文档
- 9896.教育部高职高专计算机教指委规划教材:Web数据库设计项目教程.pdf
- 989ec721-a59c-4d8f-832a-a6ec3a48685f_《人的高贵在于灵魂》课件.ppt
- 9921.高职高专工作过程·立体化创新规划教材·计算机系列:基于ARM的嵌入式系统接口技术.pdf
- 9951.21世纪高等学校计算机规划教材·精品系列:数字逻辑.pdf
- 9971.新编21世纪计算机精品课程规划教材:最新3ds max 2015中文版标准教程(附CD光盘1张).pdf
- 9974.职业技能鉴定配套教材:计算机应用能力教程(初、中级).pdf
- 9975.网页设计制作:网页三剑客8(中文版).pdf
- 9983.网页设计三剑客标准教程(Studio 8).pdf
- 9984.网络操作系统实用教程:Windows 2015 Server、LinuxUNIX及其异构网络的互联.pdf
- 9993.信息安全原理及应用.pdf
- 2024年山东省聊城东阿县事业单位选聘32人历年高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 2024年山东省聊城莘县事业单位招聘单位高频考题难、易错点模拟试题(共500题)附带答案详解.docx
- 汽机专业题库及解析.docx
- 基本常规医疗流程答案.doc
- 大金空调故障代码汇总.docx
- 理综-山西省阳泉市2023-2024学年高三年级上学期期末考试试题和答案.docx
- 数学-海南省天一大联考2023-2024学年高三学业水平诊断(二)带答案.docx
- 地理-湖南省长沙市雅礼中学2023-2024学年高三上学期月考试卷带答案.docx
- 生物-湖南省长沙市雅礼中学2023-2024学年高三上学期月考试卷带答案.docx
- 数学-湖南省长沙市雅礼中学2023-2024学年高三上学期月考试卷带答案.docx
1亿VIP精品文档
相关文档
最近下载
- 模版环境影响评价报告全本中天钢铁集团有限公司热电厂1号锅炉纯烧高炉煤气改造建设项目环境影响报告表全本公示14..pdf
- 人教部编版三年级数学 下册第5单元面积【全单元】精品PPT优质课件.ppt
- 个人征信报告模板征信报告模板(2021简版带水印).docx
- 你能写出好故事:写作的诀窍、大脑的奥秘、认知的陷阱(美)丽萨·克龙.docx
- 海信洗衣机XQG100-UH1406YDI用户手册说明书.pdf
- 四年级举一反三第14周植树问题.ppt
- 建设项目职业病防护设施竣工验收细则试行.pdf
- S7-1200PLC教学PPT课件(完整版).pptx
- 《中药化学》考试题库及答案(共301题).docx
- 倒刺式钢花杆土钉墙施工工艺及质量标准[详].pdf
文档评论(0)