#include <REGX52.H>
sbit s7=P3^0;
sbit s6=P3^1;
sbit s5=P3^2;
sbit s4=P3^3;
#define delay 1000
unsigned i=0,j=0;
unsigned char code SMG_duanma[10]=
{0xc0,0Xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};//ÊýÂë¹ÜÏÔʾ0~9
void Delay(unsigned int m)//ÑÓʱº¯Êý
{
unsigned int i=0,j=0;
for(i=0;i<m;i++)
{
for(j=0;j<120;j++);
}
}
void InitHC138(unsigned char n)//Ñ¡ÔñÒëÂëÆ÷¿ª¹Ø
{
switch(n)
{
case 4:
P2=(P2&0X1F)|0X80;
break;
case 5:
P2=(P2&0X1F)|0Xa0;
break;
case 6:
P2=(P2&0X1F)|0Xc0;
break;
case 7:
P2=(P2&0X1F)|0Xe0;
break;
}
}
void ShowSWG(unsigned char dat,unsigned char pot)
{
InitHC138(6);//ÊýÂë¹ÜÏÔʾλÖÃ
P0=0X01<<pot;
InitHC138(7);//ÊýÂë¹ÜÏÔʾÄÚÈÝ
P0=SMG_duanma[dat];
}
void ScanKeys_Alone()
{
if(s7==0){
Delay(100);
if(s7==0){
if(i==0){
if(i==0){
ShowSWG(7,0);//ÏÔʾ
i=1;
}else if(i==1){
ShowSWG(0,0);//ÏÔʾ
i=0;
}
i=1;
}else if(i==1){
ShowSWG(0,0);//ÏÔʾ
i=0;
}
while(s7==0);
}
}
if(s6==0){
Delay(100);
if(s6==0){
if(i==0){
ShowSWG(6,0);//ÏÔʾ
i=1;
}else if(i==1){
ShowSWG(0,0);//ÏÔʾ
i=0;
}
while(s6==0);
}
}
if(s5==0){
Delay(100);
if(s5==0){
if(i==0){
ShowSWG(5,0);//ÏÔʾ
i=1;
}else if(i==1){
ShowSWG(0,0);//ÏÔʾ
i=0;
}
while(s5==0);
}
}
if(s4==0){
Delay(100);
if(s4==0){
if(i==0){
ShowSWG(4,0);//ÏÔʾ
i=1;
}else if(i==1){
ShowSWG(0,0);//ÏÔʾ
i=0;
}
while(s4==0);
}
}
}
void main()//Ö÷º¯Êý
{
while(1)
{
ScanKeys_Alone();
}
}
独立按键
最新推荐文章于 2024-06-18 09:54:07 发布