鬼股子筹码系列课件:在单片机C语言编程中的心得体会
来源:百度文库 编辑:偶看新闻 时间:2024/05/02 08:45:37
在单片机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源程序对照,查看汇编代码、检查不恰当之处。有时还可用来计算子程序执行时间(在确定精确延时程序参数时非常有用)。
msp430F149单片机;液晶屏幕;C语言编程;仪表
单片机的编程与C语言编程谁比较好学?
C语言编程中的问题
请问单片机c语言编程里的nop()含义是什么?
求单片机编程的教学视频C语言
单片机编程员工资多少,一年经验,用C语言
在C语言编程中,
在大学学单片机都是用汇编编程的,在以后的工作中用C语言多还是汇编多?
单片机C语言编程中,怎样用C语言实现高效易用的堆栈?
懂汇编,C语言,但是不知道怎么把C语言和单片机编程联系起来。。。。
C语言编程中的函数调用问题
C语言编程过程中的问题
[编程]c语言中的一个问题
数学建模中的C语言编程
C语言编程中的Buf是什么意思啊
单片机c语言
单片机编程多用什么语言?
单片机高级语言编程书?
C语言编程在哪里可以下到啊
C语言的编程错在哪?
C语言编程中的执行的程序怎么安装啊?不是和编程的程序在一块的?
用C语言为单片机编程有哪些参考资料可看?
关于用C语言为单片机编程的书有哪些
单片机用汇编语言和用C语言编程有什么区别?