您的位置:首页 > 其它

串口中断通讯

2016-01-28 19:57 302 查看
#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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: