是RAM超过,?请说清楚如果是的话,那就尽量把全局变量改成局部变量,布尔量尽量都都定义成bit,放到bdata区,不要用char型,尽量少用局部数组,用指针。还有个大绝招,就是地址复用,在定义了变量后,用_at_来定义其具体的地址,可以重复。中断服务程序过长,可能会出现两种情况:运行时间过长,影响同优先极及低优先级的中断的响应,可能单片机就忙着处理中断去了,进而影响后台程序的运行;高优先级的中断在当前中断响应,会作压栈处理,堆栈空间需求量增大,严重的情况是堆栈空间不够用,程序混乱。中断内部函数嵌套过多。
最好不要扩展到EEPROM,如果不够了就换个ROM大点型号EEPROM读写也要耗费程序空间,并用到RAM和占用IO口,主要是还要进行通信,容易产生不稳定单片机。有很多与stc,,c兼容的芯片,其程序空间超过,BSTC比较推荐的代替stc,,c芯片是STC,,D ,程序空间,B,可直接代换。
为什么大于,就要设置?楼主想要设置什么?—经过百度Hi的交流,得知楼主的软件限制在,,其实这是未注册软件的,限制。找到,这个问题就解决了。烧到单片机里的程序后缀是.hex其实不用担心写的程序过大,用Keil来写单片机程序,先选定单片机种类,写的程序如果大了,编译的时候会有警告的。
改变显存。如果不在设置状态,每,s读一次RTC的值,将值更新到显存。如果数码管需要调整亮度,可以将,s定时器改为,s,分给每个数码管的,s内,改变其点亮的时间,就可以调出十种亮度。用这种架构做这个程序,处理器负担很轻,对所有的外设的响应一样迅速。你会感到,片机还是能干很多活的。假设程序通过编译链接后可以运行,访问到不存在的地址,有可能出现两种情况,如果你有单片机内部有硬件的地址保护功能,会触发系统异常。如果没有硬件保护功能,访问到的是随机数据。
暂无评论内容