#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
//uchar trdata[]={'B','i','g','B','i','g',0x0d,0x0a,0x00};
uchar code trdata[]={'R','I','C','H','M','C','U',0x0d,0x0a,0x00};
sbit K1=P3^2;
void uart_init()
{
SCON=0x50;
PCON=0x80;
TMOD=0x20;
TH1=0xf3; //4800bps, fosc=12MHz
TL1=0xf3;
ES=1;
TR1=1;
EA=1;
}
void delay1ms(uint i)
{
uchar j;
while(i--)
{
for(j=0;j<115;j++);
}
}
void uart_sendchar(uchar dat)
{
SBUF=dat;
while(!TI);
TI=0;
}
void uart_sendstring()
{
uchar i=0;
while(trdata[i]!=0x00)
{
SBUF=trdata[i];
while(!TI);
TI=0;
i++;
}
}
void main()
{
uart_init();
while(1)
{
if(K1==0)
{
delay1ms(20);
if(K1==0)
{
uart_sendstring();
while(!K1);
}
}
}
}
void int_uartrcv()interrupt 4
{
uchar rcv=0;
if(RI)
{
RI=0;
rcv=SBUF;
P2=SBUF;
uart_sendchar(rcv);
}
}
串口中断通讯
最新推荐文章于 2024-03-21 11:01:47 发布