
程序跑飞了,你把if()放在while(1)这个空的无限循环里面就可以了。单片机在运行的过程中要不停的执行程序,你写的这个程序开启中断之后,定时器刚开始计时、还没有来得急申请中断就就执行完了。他没有事干,就又从头开始。如此反复,永远不可能到中断。
#include<reg51h>
#define uchar unsigned char
uchar a;
void dd() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
}
void main()
{
P1=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(a==10)
{
P1=0xff;
// a=0;
}
if(a==20){P1=0x00;a=0;}
}
}
帮你加了个while(1)后可以中断,a=200时间太长了,观察不方便,为了让你方便看出来。就帮里在while里面改了几句,你用的话改回来就行了。
至于上面为什么跑飞了,你如果想深入可以再问我。
按键精灵的多个子程序是指按键精灵可以创建多个子程序,每个子程序都可以完成不同类型的 *** 作任务。比如,一个子程序可以完成一系列按键 *** 作,另一个子程序可以完成数据读取等 *** 作。这些子程序可以按照指定顺序依次执行,也可以自定义执行顺序,这样做的目的是为了更好地完成自动化 *** 作任务。在每个子程序运行后,按键精灵将会自动根据指定的顺序执行下一个子程序,直到所有的子程序都执行完毕,这样就能确保程序的正确性和完整性,从而实现更高效的自动化 *** 作。
不受程序中断和关机影响,那数据肯定不能只保存在内存中。如果数据少的话,可以写文件,保存在文件中,程序启动加载文件。也可以把数据保存在数据库中。启动的时候从数据库读取。方法很多,关键是要把数据固化到硬盘。
以上就是关于单片机中断程序不运行 求解 不中断 问题在那里全部的内容,包括:单片机中断程序不运行 求解 不中断 问题在那里、按键精灵多个子程序是第一个子程序运行了就停不下来、c语言中数据不受程序中断和关机影响的处理办法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)