从郭天祥的那本书上看的一个关于独立按键的程序,可是自己写的在板子上按下按键没有任何反应,求高手指教,程序如下,谢谢了!!!
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit du=P2^6;
sbit we=P2^7;
uchar code duan[16]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,
0X7F,0X6F,0X77,0X7C,0X39,0X5E,0X79,0X71};
void delay(uint);
void play();
void key();
void zd();
uchar n,m;
void main()
{
zd();
while(1)
{
key();
play();
}
}
void play(uchar n)
{
uchar shi,ge;
shi=n/10;
ge=n%10;
du=1;
P0=duan[shi];
du=0;
P0=0xff;
we=1;
P0=0xfe;
we=0;
delay(10);
du=1;
P0=duan[ge];
du=0;
P0=0xff;
we=1;
P0=0xfd;
we=0;
delay(10);
}
void delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void zd()
{
TMOD=0x01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
}
void key()
{
if(key1==0)
{
delay(10);
if(key1==0)
{
n++;
if(n==60)
n=0;
while(!key1);
}
}
if(key2==0)
{
delay(10);
if(key2==0)
{
if(n==0)
n=60;
n--;
while(!key2);
}
}
if(key3==0)
{
delay(10);
if(key3==0)
n=0;
while(!key3);
}
if(key4==0)
{
delay(10);
if(key4==0)
{
while(!key4);
TR0=~TR0;
}
}
}
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
m++;
if(m==20)
{
m=0;
n++;
if(n==60)
n=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>