📄 send.c
字号:
#include <at89x52.h>
unsigned char a[]={0x3f,0x06,0x5b,0x4f,0x66 ,0x6d ,0x7d ,0x07 ,0x7f ,0x6f ,0x77 ,0x7c};
unsigned char keyvalue;
void delay(unsigned char j)
{
unsigned char m,k;
for(m=0;m<j;m++)
for(k=0;k<255;k++);
}
void Serialinit(void)
{
TMOD = (TMOD & 0x0F) | 0x20; //T1工作方式
TH1 = -6; //波特率初始值 注意用倍频方式
PCON |= 0x00; //SMOD = 1
TR1 = 1;
SCON = 0x40; //REN = 1
ES = 1;
EA = 1; }
void RS232_intr( void ) interrupt 4 //注意RI和TI任一位变为1都中断
{
if( TI == 1 ){ TI=0;SBUF=keyvalue;
while(TI==0);TI=0; }
}
/*void Key()
{
unsigned char x,y,key;
P2=0xf0;
x=P2;
x=x&0xf0;
P2=0x0f;
y=P2;
y=y&0x0e;
key=x|y;
if(key==254) return;
delay(1);
switch(key)
{
case 236: keyvalue=3; break;
case 234: keyvalue=2; break;
case 230: keyvalue=1; break;
case 220: keyvalue=6; break;
case 218: keyvalue=5; break;
case 214: keyvalue=4; break;
case 188: keyvalue=9; break;
case 186: keyvalue=8; break;
case 182: keyvalue=7; break;
case 124: keyvalue=0; break;
case 122: keyvalue=11; break;
case 118: keyvalue=10; break;
}
P0=a[keyvalue];
TI=1;
}*/
unsigned char KeyDriver()
{ unsigned char x,y,key;
P2=0x0f; //低四位输入1,高四位输出0
x=P2;
//x=x&0x0f; //P2输入后,清高四位,作为X值
P2=0xf0; //高四位输入1,低四位输出0
y=P2;
//y=y&0xf0; //P2输入后移位到低四位,并清低四位,作为Y值
key=x|y;
key=key&0xfe;
return key;
}
unsigned char Key()
{
unsigned char Keyok;
Keyok=KeyDriver();
if(Keyok==0xfe)
{//keyvalue=111;
return (keyvalue);
}
else
{
switch(Keyok)
{
case 0x0ec: keyvalue=3; return(keyvalue);
case 0x0ea: keyvalue=2; return(keyvalue);
case 0x0e6: keyvalue=1; return(keyvalue);
case 220: keyvalue=6; return(keyvalue);
case 218: keyvalue=5; return(keyvalue);
case 0x0d6: keyvalue=4; return(keyvalue);
case 188: keyvalue=9; return(keyvalue);
case 186: keyvalue=8; return(keyvalue);
case 182: keyvalue=7; return(keyvalue);
case 124: keyvalue=11; return(keyvalue);
case 122: keyvalue=0; return(keyvalue);
case 118: keyvalue=10; return(keyvalue);
}
P0=a[keyvalue];
TI=1;
}
}
void main( void )
{
Serialinit();
while(1)
{ Key();
delay(25);}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -