📄 uart.c
字号:
#include <reg51.h>
#include <string.h>
#include <uart.h>
#include <ST_MR_08S.h>
void init_uart( char Baud )
{
SCON = 0x50 ; //SCON: serail mode 1, 8-bit UART, enable ucvr //UART为模式1,8位数据,允许接收
TMOD |= 0x20 ; //TMOD: timer 1, mode 2, 8-bit reload //定时器1为模式2,8位自动重装
PCON |= 0x80 ; //SMOD=1;
if(Baud==B2400)TH1 = 0xE6;
else TH1 = 0xF3; //Baud:4800 fosc=12MHz BAUND_RATE=2*FOSC/(32*12*(256-TH)) FOSC=晶振频率,TH=初值
IE |= 0x90 ; //Enable Serial Interrupt
TR1 = 1 ; // timer 1 run
TI=0;
}
////////////////////////////////////////////////////
//向串口发送一个字符串
void Uart_Send_String (unsigned char *str, unsigned int strlen)
{
unsigned char m = 0;
do
{
SBUF = *(str + m);
while(!TI);
TI = 0;
m ++;
}while (m < strlen);
}
//向串口发送一个字符
void Uart_Send_Char(unsigned char chr)
{
SBUF=chr;
while(!TI);
TI = 0;
}
//串口接收中断函数
void uart_receive() interrupt 4 using 3
{
unsigned char chr;
if (RI) {
RI = 0 ;
chr=SBUF;
Uart_Send_Char(chr); //echo
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -