串口中断通讯

来源:互联网 发布:大数据产业创新峰会 编辑:程序博客网 时间:2024/06/05 20:51
#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);    }}

0 0
原创粉丝点击