熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時(shí)間: 2017-6-15 22:28
正文摘要:這個(gè)是我的圖,想問問有沒有什么錯(cuò)誤。 還想詢問一下,如果想在加分的同時(shí)進(jìn)行24秒復(fù)位,就是用一個(gè)按鍵完成這兩個(gè)任務(wù)是否可行 T0計(jì)時(shí)器進(jìn)行12分鐘的計(jì)時(shí),T1計(jì)時(shí)器同時(shí)進(jìn)行24秒和14秒的倒計(jì)時(shí)可行嗎? 這里我不 ... |
yzwzfyz 發(fā)表于 2017-6-16 12:13 那我要是用T1進(jìn)行24秒或者14秒的倒計(jì)時(shí),打斷那里應(yīng)該怎么寫程序? |
圖可以。 所提問題也都能實(shí)現(xiàn),只有一個(gè)要注意的地方:“用一個(gè)按鍵完成這兩個(gè)任務(wù)”: 當(dāng)此鍵按下時(shí),你有下列四個(gè)選擇項(xiàng),你必須有選擇或區(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 單片機(jī)教程網(wǎng)