現在正在做一個超聲波距離報警,假設距離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;
- }
- }
復制代碼 |