#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delayms(uint xms);
int keyscan();
void in
ti();
uchar temp,a,flag;
uint num,num1;
void delayms(uint xms)
{
uint x,y;
for(x=xms;x>0;x--)
for(y=110;y>0;y--);
}
void inti()
{
TMOD=0x20;
TH1=253;
TL1==253;
SCON=0x50;
PCON=0x80;
ES=1;
TR1=1;
EA=1;
}
int keyscan()
{
P3=0xfd;
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
delayms(5);
temp=P3;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:num=1;break;
case 0xdd:num=2;break;
case 0xbd:num=3;break;
case 0x7d:num=4;break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
}
}
}
return num;
}
void main()
{
P3=0xff;//硬件初始化
inti();
while(1)
{
// P1=keyscan();
num1=keyscan();
if(flag==1)
{
ES=0;
flag=0;
SBUF=num1;
while(!TI);
TI=0;
ES=1;
}
}
}
void ser() interrupt 4
{
RI=0;
P1=SBUF;
a=SBUF;
flag=1;
}
我试过单独的把键盘程序,和串口收发程序的测试过可以的,但是放一起就不行,计算机串口助手只能在上电的时候接收到00 00,今天调了很久,求助大神。 最佳答案
一周热门 更多>