#include<reg51.h>
#include<stdio.h>
#define MDE P0
#define LED1 P1
void delay(int a)
{
while(a--);
}
void main()
{
while(1)
{
int n,i=0x80,a;
int x,k;
MDE=0x7f;
do
{
a=MDE;//没有直接用MED,好像会有问题
x=a%0x10;//就是这里来使步骤减少。有问题???
switch(x)
{
case 0x07:k=1;break;
case 0x0B:k=2;break;
case 0x0D:k=3;break;
case 0x0E:k=4;break;
default:k=0;
}
i/=0x02;
a+=i;
MDE=a;
}while(a<=0xEF&&k==0);
a-=i;
do
{
n-=1;
if(a<=0xEF)
{
a/=0x10;
LED1=a;
delay(10000);
}
LED1=0xFF;
delay(10000);
}while(n>=0);
}
} //本来用了一些定义函数调用,后来还是写在了一起
逐行扫描 4*4的矩阵键盘 想法是按不同的键后面四个灯会熄灭不同和次数不同 可是烧入单片机没有这样。。。求指导,编这个码其实也可以看出我是想偷懒,不然就要写16种结果,。在线等大神。。
相关分类