现在正在做一个超声波距离报警,假设距离30cm范围内,每20min重新检测一次,大于30cm2min重新检测一次。还有一个其他的满足条件10min重新检测一次
但是!!!一直调不好时间。。。。请帮我看看这么写对吗?
单片机源程序如下:
- void tmer1(void) interrupt 3
- {
- uchar num,num1,num2;
- TH1 =0x3c;
- TL1 =0xb0;
- switch(flag_time)
- {
- case 1:
- num++;
- if(num == 20)// 20*50=1s
- {
- num =0;
- num1++;
- if(num1 == 60)//1min
- {
- num1 =0;
- num2++;
- if(num2 == 2)
- {
- num2 = 0;
- LED6 =0;
- }
- }
- }
- break;
- case 2:
- num++;
- if(num == 20)// 20*50=1s
- {
- num =0;
- num1++;
- if(num1 == 60)//1min
- {
- num1 =0;
- num2++;
- if(num2== 10)
- {
- num2 = 0;
- LED7 = 0;
- }
- }
- }
- break;
- case 3:
- num++;
- if(num == 20)// 20*50=1s
- {
- num =0;
- num1++;
- if(num1 == 60)//1min
- {
- num1 =0;
- num2++;
- if(num2 == 30)
- {
- num2 = 0;
- LED8 =0;
- }
- }
- }
- break;
- }
- }
复制代码 |