这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 51单片机编程技巧

共4条 1/1 1 跳转至

51单片机编程技巧

助工
2014-11-13 19:42:35     打赏

1.定义的变量不要太多。低128位为用户定义变量的存放区域(默认时),也可以把变量放在高128位,但容易出错,尽量少放,最好不放。通过*.M51可以查看内存变量的存放,最好不要超过110个字节,否则程序无法运行或出错。


2.如一个变量多处使用可定义为全局变量。例如循环变量i、j,尽量减少参数传递。


3.静态变量最好放在程序存储区,用code定义。


4.变量应定义为无符号数,像标志位等仅占一位的变量应定义为bit。


5.子程序在main()主程序之后的应事先声明,放在前面的不用声明。


6.变量、子程序定义但没使用,系统给出警告。


7.虽然局部变量和全局变量不同名,但运行时可能被全局变量改变。


8.程序在编译后,有可能产生非常大的文件。比如原来5k,编译后变成10k,这是C汇编时程序空间分配太随意造成的。可首先屏蔽一部分程序编译,然后再去屏蔽再编译,可恢复,或一部分一部分复制到另一个文件中编译。


9.如产生脉冲信号用到定时器,要去掉脉冲信号时,应先关定时器,再按要求把电平置为高电平或低电平。


10.可使用软件实现“看门狗”功能。比如:一个程序运行一个循环需要50ms,则定时器可定位100ms,当超过100ms时,程序将复位,在程序循环最下面都重装定时器或重置定时器参数。


11.为了提高所求值的精度,可多次测量,然后排序,去掉最大值和最小值,求平均值,或直接求平均值。


12.可使用一个定时器进行多个定时。一般来说,两个定时器对大一点的程序就不够用了,假如几个定时时间分别为10ms、200us、50ms,则定时值可定位200us,另设两个变量即可。在需要多个定时时,找到他们的最小公约数定时即可。


13.我们往单片机中写程序时,写的是*.hex,不要被它的大小所迷惑,对于8k的单片机,小于20k的程序都可写进去


院士
2014-11-13 19:48:26     打赏
2楼
这个总结对学习、理解有些帮助,谢谢楼主。

助工
2014-11-13 19:48:57     打赏
3楼
不用谢,请叫我雷锋

院士
2014-11-13 21:55:42     打赏
4楼
毛主席教导我们:向雷锋同志学习。

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]