在单片机C语言编程中的心得体会
创始人
2025-09-10 15:48:41
0

在单片机C语言编程中的心得体会

在单片机C语言编程中的心得体会

在单片机C语言编程中的心得体会

作者:彭树林

在单片机C语言编程中使用恰当的`优化手段,可以写

出简洁高效的代码。以下是笔者在C51编程过程中的一点心得体会。

1.尽量使用短的数据类型。如uchar、bit、uint,有时需要对uchar数据类型进行按位访问,可将其定义在bdam区间。慎重使用float数据类型,有时它可以转化成int数据类型来代用。

2.熟练指针的使用。例如Uint是由双字节拼接而成,有时用来存放16位地址。获取其高八位和低八位地址的方法为:只要用uchar*p;p=&int0,则*p表示其高八位,*(++p)表示其低八位,非常方便。

3.使用自加、自减的方法为:a++;a-,它会调用INC、DEC指令,效率远比a=a+1;a=a-1高。

4.循环:使用uchar a;for(a=1;a≤8;a++)…时,条件a=8编译后代码比较繁琐,可用for(a=8;a=a-1)…来代替,充分利用单片机的为零跳转指令。同样,在do{…}while()中也适用。

5.当多个条件判别时,if(A&&B&&C&&D),只要第一个条件A不符合,程序是不管后面的条件的,所以可把最可能出错的条件排在前面处理。

6.子程序的参量。调用子程序时若带参量,程序会开辟存储空间(如Rn)来存放参量,这个空间是可以充分利用的。如延时子程序void delay(uehar time){while(time一);J,可以延时相当短的时间。

7.空指令NOP在C中用_nop一0实现,定义在中。

8.求余运算"%"操作是调用子程序来完成的,效率低。如果是求2的n次方的余数,可使用位操作来代替。如:a=a%8可改用8=a&7,效率明显提高。同样2xN的乘除运算可用移位来实现。如:a=a*2;b=h/2可改为a=a《1;b=b》1。

9.使用结构体类型数组时,在查找第n个值时要利用乘法指令(序号乘以类型宽度),当程序高速运行时,可能会影响其速度。

10.Keil的软件调试非常有用。笔者常将编译后的程序与C源程序对照,查看汇编代码、检查不恰当之处。有时还可用来计算子程序执行时间(在确定精确延时程序参数时非常有用)。

相关内容

热门资讯

大学英语四级满分作文范文欣赏   第一篇:  作文题目:  Intelligence-Nature or Nurture  1) ...
常用英语问候语大全   How are you?你好吗?  Nice to meet you.很高兴见到你,常用英语问候...
我的旅行计划 My trav... 我的旅行计划 My travel plan英语作文 篇一My Travel PlanI have a...
531行动计划心得体会 531行动计划心得体会  日子如同白驹过隙,很快就要开展新的工作了,该好好计划一下接下来的工作了!那...
雨水的谚语 有关雨水的谚语(精选100句)  在日常的学习、工作、生活中,大家都对那些朗朗上口的谚语很是熟悉吧,...
激发学生作文兴趣的方法 激发学生作文兴趣的方法  作文教学历来是语文教学的半壁河山,在作文教学中,培养学生自主学习能力,让合...
“薰香自烧”的意思 “薰香自烧”的意思 成语拼音: [xūn xiāng zì shāo] ...
吴承恩的名言名句 关于吴承恩的名言名句  1、一窍通,百窍通。  2、避色如避仇,避风如避箭。  3、独有一枝红,秋晚...
“自命清高”的意思 “自命清高”的意思 成语拼音: [zì mìng qīng gāo] ...
游西山村阅读答案淮安 游西山村阅读答案淮安  《游山西村》是南宋著名诗人陆游创作的一首七言律诗,是作者少有的基调比较明快的...