📄 发送机.c
字号:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void dlms(void);
uchar kbscan(void);
uchar change(uchar);
void main(void)
{ TMOD=0x20;
TH1=0xe6;
TR1=1;
SCON=0x40;
while(1)
{
SBUF=change(kbscan());/*键盘扫描函数,返回键码送key保存*/
while(!TI);
TI=0;
}
}
void dlms(void)
{
uchar i;
for(i=200;i>0;i--){}/*延时函数*/
}
uchar kbscan(void)/*键盘扫描函数*/
{
uchar sccode,recode;
P1=0xf0;
if((P1&0xf0)!=0xf0)/*如P1口高4位不全为1,有键按下*/
{
dlms(); /*延时去掉抖动*/
if((P1&0xf0)!=0xf0)/*重读输入值*/
{
sccode=0xfe;/*最低位置0*/
while((sccode&0x10)!=0)/*不到最后一行*/
{
P1=sccode;/*P1口输出扫描码*/
if((P1&0xf0)!=0xf0)
{
recode=P1&0xf0;
sccode=sccode&0x0f;
return(sccode+recode);
}//if
else
sccode=(sccode<<1)|0x01;/*如该行无键按下,查下一行,行扫描值左移一位*/
}//while
}//if
}//if
return(0);/*无键按下,返回值为0*/
}
uchar change(uchar i){
uchar j;
if(i==0){
j=0;
}
if(i==0xee){
j=0x3f;
}
if(i==0xde){
j=0x06;
}
if(i==0xbe){
j=0x5b;
}
if(i==0x7e){
j=0x4f;
}
if(i==0xed){
j=0x66;
}
if(i==0xdd){
j=0x6d;
}
if(i==0xbd){
j=0x7d;
}
if(i==0x7d){
j=0x07;
}
if(i==0xeb){
j=0x7f;
}
if(i==0xdb){
j=0x6f;
}
if(i==0xbb){
j=0x77;
}
if(i==0x7b){
j=0x7c;
}
if(i==0xe7){
j=0x39;
}
if(i==0xd7){
j=0x5e;
}
if(i==0xb7){
j=0x79;
}
if(i==0x77){
j=0x71;
}
return(j);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -