Keil C51单片机开发的一点心得|开发工具

Keil C51单片机开发的一点心得

Keil C51单片机开发的一点心得

Keil C51单片机开发的一点心得

用Keil写C51程序是最好不过的了。用伟福也可以写,但伟福的编辑能力就相差太远了。个人喜欢用Keil写代码,然后用伟福硬件仿真(只有WAVE的仿真头)。不过Keil是好用,但写代码关键还是C51水平,也就是编程能力,写C程序就离不开模块化这个词了。C51和A51,要扬长避短,发挥C的长处,就得将C模块化好。刚刚开始的时候就只是熟悉C51的语法规则了,熟悉了这个然后再追求程序的可读性和可移植性。

下面是使用Keil C51的一点心得:

1、程序可读性的提高

要提高程序的可读性,就得养成一良好的编程习惯了,例如变量用小写,常量用大写,函数第一个字母用大写等等。这样成习惯以后,自己看代码就会一目了然。另外还要灵活的在KEIL中使用TAB键对对齐文本,而不要敲空格代替(优势,试了就知道了)。

2、程序的可移植性的提高

程序的可移值性是C51的优势所在,要做到移植方便,就得熟悉C51的编译过程有一定的了解,合理组织文件。可以将一个功能模块(如显示驱动,端口读写)放在一个C文件中,作为一个函数调用,然后在主程序中申明该函数,就可以随便调用了。

移值的时候也只要把当前的C文件加入到新的项目中,同样的方法调用它就可以。

另外模块化程序要善用C里面的“#IFDEF”、“#ENDIF”、“#DEFINE”等专为模块设计提供的功能。例如设计一个外面带的晶振的驱动模块,在不同的晶振频率下,该项模块的设置位可能不同。如果就直接在程序中写设置位,晶振改变,这些设置位也要逐一修改,这个程序也就不通用了,也就是可移值性不好。要解决这个问题怎么办 ,“#IFDEF”、“#ENDIF”可以帮你解决问题。这两个命令的功能就不具体说了,书上面讲得很清楚。知道这些功能你就知道该怎样使用它们进行模块化设计了。

3、Keil C51的debug技巧

A51的程序执行时间可能通过指令周期计算出来,而C51的却无从下手,很多程序员为了得到精确的执行时间而研读反汇编代码,何等的悲哀。巧妙的使用Keil中的debug功能,问题就迎刃而解了。

下面举例说明:

该程序为一个延时程序,在12M的晶振下,调用一次的时间为16uS ,执行一次循环的时间为9uS(延时范围(25us~589.831ms))。这样来,假设有语句Delay(N);那么该语句的精确延时的计算公式就是(9*N+16)uS了.这个公式可以理解吧!

如何得到程序的调用时间和执行一次循环的时间了。接着看下面:

在主程序MAIN()函数下添加上面两条语句,当前的SEC栏为执行到DELAY(1);语句所花的时间。T(0-)

上面的SEC栏为执行完DELAY(1)所花的时间,这样就可以得到DEALY(1)这条语句的执行时间为595-570=25uS.

上面的SEC栏为执行完DELAY(2)所花的时间,这样就可以得到DEALY(2)这条语句的执行时间为629-595=34uS.

结果:T[DELAY(2)]-T[DELAY(1)]不就是执行一次循环的时间嘛,而T[DELAY(1)]减去执行一次循环的时间就是调用一次要花的时间了。精确到1uS!

Reference URL:http://www.dz3w.com/mcu/othermcu/2724.html


相关文章

  • c51单片机c语言教程
  • 123 51单片机C 语言入门教程 51单片机C 语言学习杂记 学习单片机实在不是件易事,一来要购买高价格的编程器,仿真器,二来要学习编程语言,还有众多种类的单片机选择真是件让人头痛的事.在众多单片机中51架构的芯片风行很久,学习资料也相对很多,是初学的较好的选择之一.51的编程语言常用的有二种,一 ...

  • 单片机实验总结报告
  • 1 福建农林大学计算机与信息学院 信息工程类 实验报告 课程名称: 姓 名: 系: 专 业: 年 级: 学 号: 指导教师: 职 称: 单片机技术 电子信息工程系 电子信息工程 易金聪 副教授 2013 年 10 月 28 日 实验项目列表 福建农林大学计算机与信息学院信息工程类实验报告 系: 电子 ...

  • 基于单片机的数字测力计的设计
  • 河南职业技术学院 毕业设计(论文) 题 目:基于单片机的数字测力计的设计 系(分院)机械电子工程系 学生姓名 侯良杰 学 号 09111024 专业名称 机电一体化 指导教师 周 炯 亮 基于单片机的数字测力计的设计 摘要:随着信息时代的到来,数字处理技术.传感器技术得到了显著的提高,其应用领域越来 ...

  • 单片机课程设计实习报告
  •   实训任务:   做单一灯的左移右移,八个发光二极管l1-l8分别接在单片机的p1.0→p1.2→p1.3┅→p1.7→p1.6→┅→p1.0亮,重复循环3次。然后左移2次,右移2次,闪烁2次(延时的时间0.2秒)。   一、 实训目的和要求:   (1) 熟练掌握keil c51集成开发环境的使 ...

  • 编写课程教学大纲的基本要求
  • 泉州轻工职业学院编写课程教学大纲的 基本要求(修订) 课程教学大纲是依据教学计划制定的指导教师教学的法规性文件,是实现教学计划人才培养目标的基础,是选.编教材,撰写教案,组织教学,考试命题,进行教学质量评价和教学管理的主要依据.泉州轻工学院编写课程教学大纲的基本要求如下: 一.编写教学大纲的原则 1 ...

  • 毕业论文(智能开关的设计与制作)
  • 应用物理学专业2016届本科毕业论文 本 科 毕 业 论 文 智能开关的设计与制作 院 别: 物理与电子工程学院 学科门类: 理学 专 业:应用物理学 姓 名: 段渊渊 学 号: 2012051165 贵州 ● 铜仁 2016年6月 应用物理专业 本科毕业论文 贵州 ● 铜仁 2016年6月 目 录 ...

  • 电子式单相电能表
  • ADE7755的二时段单相数字电能表设计 摘 要 Abstract 目录 第一章 绪论²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²²² 1.2 课题研究背景及意义²²²²²²²²²²²²²²²²²²²²²²²²²²²² 1.2.1 课题研究背景²²²²²²²²²²² ...

  • C51的模块化设计方法
  • C51的模块化设计方法 一个大的单片机程序往往包含很多模块,我是这样组织的: 1.每一个C源文件都要建立一个与之名字一样的H文件(头文件),里面仅仅包括该C文件的函数的声明,其他的什么也不会有,比如变量的定义啊等等不应该有. 2.建立一个所有的文件都要共同使用的头文件,里面当然就是单片机的管脚使用的 ...

  • 简易数字电压表的设计
  • 桂 林 电 子 科 技 大 学 微 机 综 合 设 计 设 计 报 告 指导老师: 学 生:黎金辉 学 号: 0700150313 桂林电子科技大学机电工程学院 <微机综合设计>设计报告 一.设计题目 二.设计内容与要求 三.设计目的意义 四.系统硬件电路图 五.程序流程图与源程序六.系 ...

© 2024 范文中心 | 联系我们 webmaster# onjobs.com.cn