语言在单片机设计中的应用陈亦然.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言在单片机设计中的应用陈亦然

高级语言在单片机设计中的应用 C语言程序设计及基本技巧 箴言 程序设计绝对是一门艺术,而不仅仅是一门技术 我们的工作应该不仅仅是把当前已有的功能实现而已,在程序设计期间要为以后的扩展和维护做好铺垫(这也许是目前很多工程师所忽略的) 程序设计的出发点是,是给别人看,可读、易理解、好维护,如果你的程序只能自己来维护,到你离开这个程序时,你的程序也就与你一起离开了这个世界 为了可读、易理解、好维护,你的程序要有好的设计,而不是一接手就进行东抄抄、西抄抄的写代码工作 C语言的发展简史和特点 1.C语言的诞生与发展 (1)在C语言诞生以前,系统软件主要是用汇编语言编写的。由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。 (2)C语言是贝尔实验室于70年代初研制出来的,后来又被多次改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI),根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSI C标准(1989年再次做了修订)。 (3) 与单片机有关的C编译器基本上都是以ANSI C为标准的,但都会有些许的不同,比如在对位定义的处理上,中断的处理上等。 如何成为一个优秀的软件工程师 会哪种语言不重要,重要的是如何将客户的零散无序的需求,迅速消化理解成程序逻辑,然后用自己熟悉的语言将其实现 没有哪一个语言比其他语言更高级,我们需要的是高效(包括成本和开发周期考虑)的工具 没有没有BUG的软件,没有最优化的软件 精通语言不等于是一个好的软件开发人员 最重要的,学习和总结的能力 逻辑分析能力 一个好的软件开发人员应该具备哪些基本素质 1 牢固掌握计算机软件的基本知识技能; 2 善于分析和综合问题,具有严密的逻辑思维能力; 3 工作踏实细致,遵循标准和规范,具有严格的科学作风; 4 工作有耐心、有毅力、有责任心; 5 善于听取别人的意见,善于与周围人员团结协作,建立良好的人际关系; 6 具有良好的书面和口头表达能力。 逻辑分析能力训练 对于事业部的人来说控制板就相当于黑匣子,只需要正确的结果,他们不会关心具体的实现方法 而对于编程来说,需要将各个输入细化,最后给出一个输出,需要细心,考虑周全 拿到项目后马上就开始写代码吗? 不,首先分析流程熟悉系统可做到事半功倍 事业部的产品需要扩展,同样我们的软件也不会只使用一次,只有把系统了解透彻,才可以将变量和过程定义的更加合理,这就是所谓的扩展性好 很多的算法没有最好一说,只能说更适合这个系统 C语言优点 代码简练,可读性好 易于合作:1+1 2 (Microsoft) 可移植性(硬件无关性):模块代码可以很容易嵌入至任意一个系统 易于模块化:函数有输入输出的存在 浮点数与长整型数已经由编译器处理 位操作虽然繁琐,但好的编译器可以胜任 需要速度快的地方可嵌入汇编语言 趋势:编译器也在升级,芯片厂商都在推出更快的支持C语言的芯片(Toshiba, ST) 不需掌握每种汇编语言,将更多经历集中程序流程和算法中 站在巨人的肩膀上 举例:可读性好 C语言:If ((a == b) (c == d)) e = f; 对应汇编: CMP A, B JR Z, _STEP1 … _STEP1: LD A, C LD B, D CMP A, B JR Z, _STEP2 … _STEP2: LD E, F 举例:硬件无关性 与硬件有关的全部做成一个文件 通常IO口操作可以调用与硬件有关的函数 main() { … f_MCU_InitSfr(); f_MCU_DspLamp(); a = f_MCU_ChkKey(1); } 中断操作可调用主文件中的相应函数或直接指向主文件中的中断函数 __interrupt f_MCU_Int_1s(void) { TCCS_IVF = 0; f_Int_1s(); } 如何选择使用汇编或C语言 程序量大小原则:建议4K以下汇编,以上用C语言 与算法有关性:使用某种算法的用C,不需要算法的简单流程使用汇编 是否使用浮点数或长整型 C语言编译器是否稳定:当前16位机C语言编译器都比较稳定,8位机有待提高 可扩展性与可移植性考虑 最简单的C程序 当前芯片厂商都会有集成开发环境IDE,包括了工程的管理和代码的编译连接 在生成工程时会有一些与所用芯片有关的代码,先不要更改 找到某个LED输出端口的定义,如p1_2 将此端口设置为输出端口 点亮LED灯 main() { while(1) { pd1_2 = 1; P1_2 = 1; } } 加入时间中断的C程序

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档