单片机C语言技巧.ppt

单片机C语言技巧.ppt

ID:48046284

大小:492.00 KB

页数:35页

时间:2020-01-13

单片机C语言技巧.ppt_第1页
单片机C语言技巧.ppt_第2页
单片机C语言技巧.ppt_第3页
单片机C语言技巧.ppt_第4页
单片机C语言技巧.ppt_第5页
资源描述:

《单片机C语言技巧.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、使用C51的技巧C51编译器能从C程序源代码中产生高度优化的代码,而通过一些编程上的技巧又可以帮助编译器产生更好的代码。一些使用技巧如下:1.采用短型变量如循环控制中常用unsignedchar-8位代替int-16位2.使用无符号类型3.尽量避免使用浮点指针。因为在单片机这类8位机上使用32位浮点数会浪费大量的时间。可以通过提高数值数量级和使用整型运算来消除浮点指针。4.使用位变量 对于某些标志位应使用位变量。 但应注意:(1)用#pragmadisable说明和用“using”指定的函数,不能返回bi

2、t值(2)bit变量不能声明为指针,如bit*ptr是错误的。(3)不能使用bit数组,如bitarr[5]. 5.用局部变量代替全局变量。 因为编译器在内部存储区中为局部变量分配存储空间,而在外部存储区中为全局变量分配存储空间,从而降低全局变量的速度。6.为变量分配内部存储区7.使用特定指针8.使用宏代替函数9.要时刻关注内部RAM的使用情况二、C51使用规范为增强程序的可读性,便于源程序得交流,减少合作开发中的障碍,应当在编写C51程序时遵循一定的规范。注释(1)采用中文(2)开始的注释文件(模块)注释内

3、容:公司名称、版权、作者名称、修改时间、模块功能、背景介绍等,复杂的算法还要加上流程图说明(3)函数开头的注释内容 函数名称、功能、说明、输入、返回、函数描述、流程处理、全局变量、调用样例等,复杂的函数还要加上变量用途说明。如/*******************************************************/ *函数名:v_LcdInt*功能描述:LCD初始化 *函数说明:初始化命令:0x3c,0x08,0x01,0x06 *调用函数:v_Delaymsec(),v_LcdCmd

4、() *全局变量: *输入:无 *返回:无 *设计者:zhao日期:2007-04-01 *修改者:zhao日期:2007-04-01 *版本:/********************************************************/(4)程序中的注释内容 修改时间和作者、方便理解的注释等。2.命名 命名必须有一定的实际意义。 (1)常量的命名:全部用大写 (2)变量的命名:变量名加前缀,前缀反映变量的数据类型,用小写。反映变量意义的第一个字母大写其他小写 (3)函数的命名:函数名首

5、字母大写,函数名若包含有两个单词,则每个单词首字母大写。 函数原型说明包括:引用外来函数及内部函数,外部引用必须在右侧注明函数来源(模块名和文件名),内部函数只要注释其声明文件名。3.编辑风格 (1)缩进:缩进以Tab为单位,预处理语句、全局数据、函数原型、标题、附加说明、函数说明、标号等均顶格书写。语句块的“{”“}”配对对齐,并与其前一行对齐。 (2)空格:数据和函数在其类型修饰名称之间适当空格并据情况对齐 (3)对齐:原则上关系密切的行应对齐、对齐包括类型、修饰、名称、参数等各部分对齐。 (4)空行:程

6、序文件结构各部分之间空两行,若不必要也可空一行,各函数实现之间一般空两行。 (5)修改:对旧语句的删除修改要慎重 (6)形参:需要必要的说明定时器/计数器综合应用1.设单片机系统时钟频率为12MHz,编程使P1.0和P1.1分别输出周期为1ms和500us的方波 分析:当系统时钟为12MHz、工作模式为2时,最大的定时时间为256us,满足周期为500us的要求。可以算出TH0=0x06H程序如下:#include”reg51.h”sbitP1_0=P1^0;sbitP1_1=P1^1; voidmain(

7、) { chari; TMOD=0x02;//定时器T0,工作模式2 TH0=0x06;TL0=0x06;//装入初始值TR0=1; while(1) {for(i=0;i<2;i++) {do{}while(!TF0);//等待定时中断P1_1!=P1_1; } P1_0!=P1_0; }//endwhile }2.门控位的应用。GATE是是控制外部输入脉冲对定时计数器的控制,当GATE=1时,只有INTx=1且软件使TRx=1才能启动定时器。利用这个特性可测输入脉冲的宽度。 利用定时器T0测量某正脉冲的

8、宽度,脉冲从P3.2输入。已知脉冲宽度小于10ms,系统时钟频率为12MHz。测量测脉冲宽度,把结果放到片内40H开始的数据存储单元,其中40H单元存个数。 程序如下:#include”reg51.c”sbitP3_2=P3^2; voidmain() { unsignedchar*P,i;inta; P=0x40H;//指针指向片内40H单元TMOD=0x09;//GATE=1;工作方式为计数器

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。