程序优化中的几点
赋值句子是十分占用空间的,一个一般的给外部变量的赋值句子或许需求20到40个字节的代码空间。假如程序中有许多的赋值句子,会占用许多程序空间。优化时能够针对有规则的赋值句子运用函数方法,以及运用memcpy方法。
在作比较时,将if (x<(y+1))修改为if (x<=y)会节省不少。
循环中,在C51时for(x=0;x<10;x++)比for(x=10;x>0;x–)要多一个字节;在PICC18中则相反。
充分运用指针,能够进步程序的功率,可是要留意不能乱用。
恰当的冗余代码是需求的,不要把它们删除了。
留意程序的写法
在单片机程序中,代码的表达方法,或许叫写法也是很重要的,一个欠好的写法或许会形成空间的糟蹋和功率的下降。而一个好的写法会削减代码的巨细。不要依赖于编译器的优化功用,许多时分,优化是没有预期的那样好的作用,能够手艺优化的当地就尽量自己着手了。
还有便是不同的编译器的优化是不同的,需求测验一下不同的程序表达方法,通过比较才干得到一个比较好的方法。
Keil串口调试技巧
Keil C51整合了现在功用最强的C51编译器和最好的IDE调试环境。在新版本的Keil中,增加了许多功用,其中之一便是串口仿真。便是说无须实践的硬件,运用核算机的串口就能够彻底进行串口仿真。
运用到的调试指令:
ASSIGN将核算机的串口设置为单片机的串口
语法:ASSIGN channel < inreg > outreg
例如:ASSIGN COM1 < SIN > SOUT
上面的括号不能少。
MODE设置串口的参数(波特率、数据位、中止位等)
语法:MODE COMx, baudrate, parity, databits, stopbits
例如:MODE COM2, 19200, 0, 8, 1
实践软件调试时,先在Keil中完结程序的编写,然后进入软件仿真状况,并用一根克己的串口线将核算机的两个串口环接起来(留意2与3要穿插,5能够接也能够不接)。这儿需求核算机上至少要有两个串口,一个是仿真单片机用,别的一个是通讯调试用,否则就需求两台核算机了。在仿真状况下,运用上面的两个指令设置好串口的参数(每次都输入参数会比较费事,这时能够在仿真参数中设置好配置文件)。在核算机中运用任何串口调试软件与Keil进行通讯,能够在Keil中设置断点,实践结果与硬件仿真器的作用相同,还愈加简略便利。
更多的用法能够参阅Keil的帮助文件DBG51.CHM
负数的问题- –
在PICC18中,假如传输一个负数X时,用X/256和X%256别离取高低位时,高位会出现问题,会被加一。
这个问题需求这样处理:先将X传递到一个无符号的整数,然后在别离取高低位,就不会出现问题了。