📄 main.c
字号:
#include <reg51.h>
void delay(unsigned int i);
void send(unsigned char n );
void serial_init(void);
void sendstr(unsigned char *str);
main()
{
unsigned char k,a[]="hello world!\n";
serial_init();
delay(500);
sendstr(a);
sendstr("hello hello world!\n");
while(1)
{
P1=0xff;P2=0xff;P3=0xff;P0=0xff;
k=P1&P2&P3&P0;
while(k!=0xff)
{
switch(k)
{
case 0xfe: if(P2!=0xff)sendstr("01");if(P3!=0xff)send(0x41);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41); break;
case 0xfd: if(P2!=0xff)sendstr("02");if(P3!=0xff)send(0x42);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41); break;
case 0xfb: if(P2!=0xff)sendstr("03");if(P3!=0xff)send(0x43);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41); break;
case 0xf7: if(P2!=0xff)send(0x34);if(P3!=0xff)send(0x44);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41); break;
case 0xef: if(P2!=0xff)send(0x35);if(P3!=0xff)send(0x45);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41); break;
case 0xdf: if(P2!=0xff)send(0x36);if(P3!=0xff)send(0x46);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41); break;
case 0xbf: if(P2!=0xff)send(0x37);if(P3!=0xff)send(0x47);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41); break;
case 0x7f: if(P2!=0xff)send(0x38);if(P3!=0xff)send(0x48);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41); break;
default: break;
}
while(k==P1||k==P2||k==P3||k==P0);
break;
}
}
}
void send(unsigned char n )
{
SBUF=n;
while(!TI);
TI=0;
}
void sendstr(unsigned char *str)
{
while(1)
{
if(*str=='\0')
{send('\r');
send('\n');
break;
}
send(*str++);delay(10000);
}
}
void delay(unsigned int i )
{
while(i--);
}
void serial_init(void)
{
TMOD = 0x20; //MOV 89H,#20H ;timer 1 mode 2: 8-Bit reload(定时器T1 模式2: 8位自动初值重装)
TH1 = 0xfa; //MOV 8DH,#0E8H
TL1 = 0xfa; //MOV 8BH,#0E8H ;1200bps, 11.059
TR1 = 1; //SETB 8EH ;启动定时器1
SCON = 0x58; // mode 1: 10-bit UART, enable receiver(模式1: 10位异步发送/接收, 使能接收允许位)
PCON=0x80; /*串口波特率设置*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -