標題:
16個按鈕掃描亮燈單片機程序問題
[打印本頁]
作者:
1746722427
時間:
2021-3-11 11:18
標題:
16個按鈕掃描亮燈單片機程序問題
小白寫子函數(shù)寫不下去了,網(wǎng)上找的仿真圖,每個按鍵亮對應(yīng)位置的段碼燈,有大哥指導(dǎo)一下思路嗎?
#include "reg52.h"
#define uint unsigned int
#define uchar unsigned char
#define key P1
#define dmg1 P2
#define dmg2 P3
void delay(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
uchar Keys()
{
uchar Keym;
key=0xf0;
if(key!=0xf0)
{
delay(10);
if(key!=0xf0)
{
key=0xfe;
if(key!=0xfe)
{
Keym=key;
delay(10);
while(key!=0xfe);
return Keym;
}
}
key=0xfd;
if(key!=0xf0)
{
delay(10);
if(key!=0xfd)
{
Keym=key;
delay(10);
while(key!=0xfd);
return Keym;
}
}
key=0xfb;
if(key!=0xfb)
{
delay(10);
if(key!=0xfb)
{
Keym=key;
delay(10);
while(key!=0xfb);
return Keym;
}
}
key=0xf7;
if(key!=0xf7)
{
delay(10);
if(key!=0xf7)
{
Keym=key;
delay(10);
while(key!=0xf7);
return Keym;
}
}
}
return 0xff;
}
uchar Keyz()
{
uchar i;
switch(Keys())
{
case 0x7e:return dmg1;break;
case 0x7d:return dmg1;break;
case 0x7b:return dmg1;break;
case 0x77:return dmg1;break;
case 0xbe:return dmg1;break;
case 0xbd:return dmg1;break;
case 0xbb:return dmg1;break;
case 0xb7:return dmg1;break;
case 0xde:return dmg2;break;
case 0xdd:return dmg2;break;
case 0xdb:return dmg2;break;
case 0xd7:return dmg2;break;
case 0xee:return dmg2;break;
case 0xed:return dmg2;break;
case 0xeb:return dmg2;break;
case 0xe7:return dmg2;break;
}
}
0cd071db22d968bd7e10cc5cdc054d8.png
(68.8 KB, 下載次數(shù): 113)
下載附件
2021-3-11 11:20 上傳
作者:
lovezjf234
時間:
2021-3-11 15:12
矩陣鍵盤巡檢,不知道要問什么問題,
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1