//
k1 k2 k3三个按键分别控制3个不同的led点亮方式,求大神指导,到底哪里错了,在松开按键的时候led7 led6 led5 led4这4个灯会闪亮一下
//
#include<reg51.h>
#include <intrins.h>
sbit k1=P0^0;
sbit k2=P0^1;
sbit k3=P0^2;
unsigned char key_s;
unsigned char key_v;
void proe_key(unsigned char key_v);
unsigned char scan_key();
void delayms(unsigned char ms);
void delayms(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
unsigned char scan_key()
{
unsigned char key_s;
key_s=0x00;
key_s|=k3;
key_s<<=2;
key_s|=k2;
key_s<<=1;
key_s|=k1;
return key_s;
}
void proe_key(unsigned char key_v)
{
if((key_v&0x01)==0)
{
P2=0Xff;
delayms(100);
P2=0x00;
delayms(100);
}
if((key_v&0x02)==0)
{
P2=0X0f;
delayms(100);
P2=0xff;
delayms(100);
}
if((key_v&0x04)==0)
{
P2=0Xf0;
delayms(100);
P2=0x00;
delayms(100);
}
}
void main()
{
key_v=0x07;
P2=0xff;
//P0=0x00;
while(1)
{
key_s=scan_key();
if(key_s!=key_v)
{
delayms(10);
key_s=scan_key();
if(key_s!=key_v)
{
key_v=key_s;
delayms(300);
proe_key(key_v);
}
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>