新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 如何實(shí)現(xiàn)獨(dú)立鍵盤控制二極管的點(diǎn)亮熄滅

如何實(shí)現(xiàn)獨(dú)立鍵盤控制二極管的點(diǎn)亮熄滅

作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
以前是使用定時(shí)器 定時(shí) 點(diǎn)亮熄滅 二極管,現(xiàn)在是 同獨(dú)立鍵盤來(lái)實(shí)現(xiàn)自由 控制二極管的點(diǎn)亮熄滅,即 若停止定時(shí)器,那么二極管就保持點(diǎn)亮或熄滅狀態(tài),從而不再閃爍; 若啟動(dòng)定時(shí)器,那么二極管就不斷點(diǎn)亮熄滅。 若停止定時(shí)器,那么可以通過(guò)另外一個(gè)按鍵來(lái)控制 二極管的點(diǎn)亮熄滅狀態(tài)

下面是個(gè)人剛剛實(shí)現(xiàn)的這種想法:
#include
sbit key1=P2^7; // 啟動(dòng)或停止定時(shí)器 即實(shí)現(xiàn)自動(dòng)點(diǎn)亮熄滅二極管
sbit key2=P2^6; // 若停止定時(shí)器 則 通過(guò)此按鍵實(shí)現(xiàn)點(diǎn)亮熄滅二極管
sbit LED=P0^0; //第1個(gè)二極管
unsigned char t=0;
void Delay()
{
unsigned char j;
unsigned char i;
for(i=10; i>0; i--)
for(j=110; j>0; j--);
}
void Keycan() //檢測(cè)獨(dú)立鍵盤是否被按下 然后執(zhí)行相應(yīng)的操作
{
if(key1==0)
{
Delay();
if(key1==0)
{
TR0=~TR0; //啟動(dòng) 或停止 定時(shí)器T0
}
while(!key1);
}
if(key2==0)
{
Delay();
if(key2==0)
{
LED=~LED;
}
while(!key2);
}
}
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
LED=0; //點(diǎn)亮二極管
while(1)
{
Keycan();
if(t==20)
{
t=0;
LED=~LED;
}
}
}
void TimerLED() interrupt 1 using 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
}
思想很簡(jiǎn)單, 所以也非常實(shí)現(xiàn)。



評(píng)論


技術(shù)專區(qū)

關(guān)閉