|
|
按K5按鍵 P0口LED等會(huì)變化 每按一次 變化一次
單片機(jī)源程序如下:
- //獨(dú)立式鍵盤的按鍵功能擴(kuò)展:"以一當(dāng)四"
- #include<reg52.h> // 包含51單片機(jī)寄存器定義的頭文件
- unsigned char ID; //儲(chǔ)存按鍵ID
- sbit S1=P1^4; //位定義S1為P1.4
- /**************************************************************
- 函數(shù)功能:延時(shí)子程序
- **************************************************************/
- void delay(void) //因?yàn)閮H對(duì)一個(gè)按鍵掃描,所以延時(shí)時(shí)間較長(zhǎng)約200ms
- {
- unsigned char i,j;
- for(i=0;i<200;i++)
- for(j=0;j<100;j++)
- ;
- }
- /**************************************************************
- 函數(shù)功能:主函數(shù)
- **************************************************************/
- void main(void)
- {
- TMOD=0x02; //使用定時(shí)器T0的模式2
- EA=1; //開總中斷
- ET0=1; //定時(shí)器T0中斷允許
- TR0=1; //定時(shí)器T0開始運(yùn)行
- TH0=256-200; //定時(shí)器T0賦初值,每200微妙來(lái)1次中斷請(qǐng)求
- TL0=256-200;
- ID=0;
- while(1)
- {
- switch(ID)
- {
- case 0: P0=0xfe;
- break;
- case 1: P0=0xfd;
- break;
- case 2: P0=0xfb;
- break;
- case 3: P0=0xf7;
- break;
- }
- }
- }
- /**************************************************************
- 函數(shù)功能:定時(shí)器T0的中斷服務(wù)子程序,進(jìn)行鍵盤掃描
- **************************************************************/
- void intersev(void) interrupt 1 using 1
- {
- TR0=0; //關(guān)閉定時(shí)器T0
- P1=0xff;
- if(S1==0) //如果是按鍵S1按下
- {
- delay(); //延時(shí)20ms,軟件消抖
- if(S1==0) //如果是按鍵S1按下
- ID=ID+1;
- while(!S1);
- }
- if(ID==4)
- ID=0;
- TR0=1; //啟動(dòng)定時(shí)器T0
- }
復(fù)制代碼
所有資料51hei提供下載:
獨(dú)立式鍵盤的按鍵一鍵多功能程序.rar
(10.41 KB, 下載次數(shù): 63)
2018-5-24 18:05 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|