求做单片机课程设计:4×4 键盘在LCD显示屏上的应用
这是C语言写的:
#include<reg51.h>
#include<intrins.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define led P0
sbit c1=P2^0;
sbit c2=P2^1;
uchar j,b;
uchar num;
uchar code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
///////////////////////////////////////////delay
void delay(unsigned int c)
{
while (c!=0)
{
unsigned int i;
for(i=0;i<100;i++);
c--;
}
}
////////////////////////////////////////////
uchar checkkey()
{
uchar i,j;
j=0x0f;
P3=j;
i=P3;
if(i==j) return(0);
else return (1);
}
//////////////////////////////////////
uchar scan()
{
uchar scancode,codevalue;
uchar i,j;
uchar m=0;
uchar k,x;
if(checkkey()==1)
{
delay(100);
if(checkkey()==1)//key_presss
{
scancode=0xfe;
m=0x00;
for(i=1;i<=4;i++)//line_scan
{
k=0x10;
P3=scancode;
x=P3;
for(j=1;j<=4;j++)//row_scan
{
if((x&k)==0)
{
codevalue=m+j;
while(checkkey()!=0);
return (codevalue);
}
else k=k<<1;
}
m=m+4;
scancode=~scancode;
scancode=scancode<<1;
scancode=~scancode;
}
}
}
}
//////////////////////////////////////////////////////////
void display(uchar num)
{
if(num<10)
{
c1=0;
c2=1;
led=a[num];
delay(800);
}
else
{
for(j=0;j<10;j++)
{
c2=0;
c1=1;
led=a[num/10];
delay(400);
c1=0;
c2=1;
led=a[num%10];
delay(40);
c2=0;
c1=0;
}
}
}
///////////////////////////////////////////////////////
void main()
{
uchar d;
while(1)
{
if(checkkey()==1)
{
d=scan();
delay(100);
display(d);
}
}
}
你有空看看他给人回答的问题,哪有好好答的,不是装X就是冷嘲热讽的,这就是做人就有问题。
人类不需要你这样的,你配做人么?一天BB的,你是不是觉得自己可美了?
这种人,LZ别跟他一般见识,信我的,他在这么造孽,明天他母亲就出车祸了。
要求还不少
呵呵
分是真没有 哥不玩百度这玩意 钱哥有的是 就是不乐意给你这种吃软饭的
对你这种人无话可说 只能说 呵呵
对你这种伸手的乞丐,哥就是不给你
连这个都写不出来,最多是个在大学里面天天泡网吧的穷矮撮,还装