#include <reg52.h>
#include "./delay/delay.h"
#include "1602.h"
void uart_init()
{
SCON = 0x50; //设置寄存器开接收
//SM0 = 0; SM1 = 1; REN = 1;
TMOD |= 0x20; //设置定时器工作方式2
TH1 = 0xfd; //设置波特率9600
//ET1 = 1; //开中断的允许
TR1 = 1; //开始定时器计数
}
void uart_sendbyte(unsigned char byte)
{
SBUF = byte;
//TI 位自动置1,手动清零
while(!TI); //while(TI != 1);
TI = 0;
}
void uart_sendstr(unsigned char *s)
{
//while(*s != '\0')
//{
SBUF = *s;
//uart_sendbyte(*s);
//s++;
//}
}
unsigned char rcvbuf[50];
void uart_rcv_str()
{
unsigned char temp;
while(1)
{
if(RI)
{
temp = SBUF;
if(temp == ';')
{
rcvbuf[bitnum] = '\0'
break;
}
else
{
rcvbuf[bitnum] = temp;
bitnum++;
if(bitnum == 50)
bitnum = 0;
}
}
}
}
void main()
{
uart_init();
while(1)
{
//uart_sendbyte(0x97);
//delay_ms(50);
if(RI)
{
uart_sendstr("I received is :");
uart_rcv_str();
uart_sendstr("\r\n");
RI = 0;
}
}
}
串口的 初步设置
最新推荐文章于 2024-07-02 11:47:33 发布