C语言单片机编程.pdf

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 系列的单片机就多出了位变量的定义和操作的语法;单片机结构要比电

您可能关注的文档

文档评论(0)

mwap + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档