2019-07-15 12:58发布
@曲终人散@ 发表于 2016-10-4 16:27 把你想显示的那三个字符串的编码变成三个数组,记住按下的次数,依次显示就ok了,很简单
白日依山尽111 发表于 2016-10-4 19:57 编了 但是按下按键有显示但是松手就只有最后一个字母了,求大神帮解决
王栋春 发表于 2016-10-4 20:29 楼主上传你的程序看看
最多设置5个标签!
编了 但是按下按键有显示但是松手就只有最后一个字母了,求大神帮解决
有两种可能,一种是按键发生了抖动,第二种是你按键状态没有记录OK,配套的程序也出了问题。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit s1=P3^4;
sbit s2=P3^5;
uchar code u1[]={0x5e,0x38,0x37,0x3e};
uchar code u2[]={0x76,0x78,0x76,0x6e};
uchar code u3[]={0x5e,0x5b,0x76,0x76};
uchar code u4[]={0xfb,0xf7,0xef,0xdf};
uint i,j,x;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void display()
{ if(x==1)
{
for(i=0;i<4;i++)
{
wela=1;
P0=0xff;
wela=0;
wela=1;
P0=u4;
wela=0;
dula=1;
P0=u1;
dula=0;
delay(5);
}
}
if(x==2)
{ for(i=0;i<4;i++)
{ wela=1;
P0=0xff;
wela=0;
wela=1;
P0=u4;
wela=0;
dula=1;
P0=u2;
dula=0;
delay(5);
}
}
if(x==3)
{ for(i=0;i<4;i++)
{ wela=1;
P0=0xff;
wela=0;
wela=1;
P0=u4;
wela=0;
dula=1;
P0=u3;
dula=0;
delay(5);
}
}
if(x==4)
{
x=1;
}
}
void main()
{ x=1;
while(1)
{
if(s1==0)
{ delay(10);
if(s1==0)
{ while(!s1)
display();
x++;
}
}
if(s2==0)
{ delay(10);
if(s2==0)
{ while(!s2)
wela=1;
P0=0xff;
wela=0;
}
}
}
}
一周热门 更多>