欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機(jī)獨(dú)立式鍵盤的按鍵一鍵多功能程序
[打印本頁(yè)]
作者:
凱爾特
時(shí)間:
2018-5-24 18:05
標(biāo)題:
51單片機(jī)獨(dú)立式鍵盤的按鍵一鍵多功能程序
按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)擊文件名下載附件
下載積分: 黑幣 -5
作者:
xqp950814
時(shí)間:
2018-5-24 19:22
謝謝分享
作者:
zhangshanqiao
時(shí)間:
2018-5-25 21:05
使用delay()函數(shù)以后就很被動(dòng)了
作者:
kisszg
時(shí)間:
2018-7-14 20:16
謝謝分享
作者:
huaxinnan
時(shí)間:
2018-7-14 21:57
感覺沒有必要使用定時(shí)器,普通鍵盤掃描函數(shù)就可以搞定吧
作者:
a710ren
時(shí)間:
2019-6-21 10:51
沒大用處 不能任意跳 就是沒用的
作者:
bhjyqjs
時(shí)間:
2019-6-24 15:01
樓主真是高手,中斷里面用 delay(),再加上while(!S1);,你這程序還能干其他活?
作者:
suqianfu
時(shí)間:
2020-4-4 21:48
bhjyqjs 發(fā)表于 2019-6-24 15:01
樓主真是高手,中斷里面用 delay(),再加上while(!S1);,你這程序還能干其他活?
while(!S1);這個(gè)等待按鍵彈起的值吧?收到彈起值之后跳出這個(gè)循環(huán)等待......我是新手,不知道這樣理解對(duì)不對(duì)。而且因?yàn)檫@個(gè)程序功能單一,這樣操作感覺并沒有占用太多資源....理解得不對(duì),萬(wàn)望高手斧正。
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1