![]() |
發(fā)布時間: 2017-6-15 22:28
正文摘要:這個是我的圖,想問問有沒有什么錯誤。 還想詢問一下,如果想在加分的同時進行24秒復位,就是用一個按鍵完成這兩個任務是否可行 T0計時器進行12分鐘的計時,T1計時器同時進行24秒和14秒的倒計時可行嗎? 這里我不 ... |
yzwzfyz 發(fā)表于 2017-6-16 12:13 那我要是用T1進行24秒或者14秒的倒計時,打斷那里應該怎么寫程序? |
圖可以。 所提問題也都能實現(xiàn),只有一個要注意的地方:“用一個按鍵完成這兩個任務”: 當此鍵按下時,你有下列四個選擇項,你必須有選擇或區(qū)分的方式。 1、甲乙兩件事都不處理; 2、甲乙兩件事都處理; 3、做甲不做乙; 4、不做甲做乙。 |
uchar jiema(unsigned char key) { uchar n; switch(key) { case 24: n= 1; break; case 40: n= 2; break; case 72: n= 3; break; case 136: n= 4; break; case 20: n= 5; break; case 36: n= 6; break; case 68: n= 7; break; case 132: n= 8; break; case 18: n= 9; break; case 34: n= 10; break; case 66: n= 11; break; case 130: n= 12; break; case 17: n= 13; break; case 33: n= 14; break; case 65: n= 15; break; case 129: n= 16; break; default: break; } return n; } 還想問一下,這里是如何定義的鍵盤號? 鍵盤換到P1口的話,case后的數(shù)會改變嗎 |
void chuli(uchar key) { if(key==1) bifeng[0]++; second24=24; T1_num=0; if(key==2) bifeng[0]=bifeng[0]+2; second24=24; T1_num=0; if(key==3) bifeng[0]=bifeng[0]+3; second24=24; T1_num=0; if(key==5) bifeng[1]++; second24=24; T1_num=0; if(key==6) bifeng[1]=bifeng[1]+2; second24=24; T1_num=0; if(key==7) bifeng[1]=bifeng[1]+3; second24=24; T1_num=0; if(key==4) if(bifeng[0]!=0) bifeng[0]--; if(key==8) if(bifeng[1]!=0) bifeng[1]--; if(key==14) { if(jieshu<4) jieshu++; else jieshu=1; } if(key==13) { TR0=~TR0; if(TR0==1&&second==0&&minute==0&&T0_num==0) { speaker=1; T0_num=0; second=0; minute=12; } } if(key==12) { TR1=~TR1; } if(key==11) { foul[0]++; } if(key==12) { foul[1]++; } if(key==9) { pause[0]++; } if(kry==10) { pause[1]++; } } |
void T0_init() { EA=1; TMOD=0x11; TH0=(65536-46080)/256; TL0=(65536-46080)%256; ET0=1; TR0=0; TH1=(65536-46080)/256; TL1=(65536-46080)%256; ET1=1; TR1=0; } void T0_interrupt(void) interrupt 1 using 1 { TH0=(65536-50000)/256; TL0=(65536-50000)%256; T0_num++; if(T0_num==20) { T0_num=0; if(second==0) { minute--; second=59; } else { second--; if(second==0&&minute==0) { TR0=0; speaker=0; } } } } void T1_interrupt(void) interrupt 3 using 0 { TH1=(65536-50000)/256; TL1=(65536-50000)%256; T1_num++; if(T1_num==20) { T1_num=0; if(second24!=0) second24--; else { TR1=0; second24=24; buzzer(1); } } } #endif |
Powered by 單片機教程網(wǎng)