Слияние кода завершено, страница обновится автоматически
#include "stc12c5a60s2.h"
#include "uart.h"
typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;
/****************串口2程序******************/
void Uart2_Init(void) //9600bps@11.0592MHz
{
// AUXR &= 0xF7; //波特率不倍速
// S2CON = 0x50; //8位数据,可变波特率
// AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T
// BRT = 0xDC; //设定独立波特率发生器重装值
// AUXR |= 0x10; //启动独立波特率发生器
EA = 1;
//115200bps@11.0592MHz
AUXR &= 0xF7; //波特率不倍速
S2CON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //独立波特率发生器时钟为Fosc,即1T
BRT = 0xFD; //设定独立波特率发生器重装值
AUXR |= 0x10; //启动独立波特率发生器
}
//串口2发送字节函数
void Uart2_Send_Byte(u8 dat)
{
// SBUF = dat;
// while(!TI); //发送完为1
// TI = 0;
S2BUF = dat;
while(!(S2CON & 0x02)); //发送完为1
S2CON &= ~0x02;
}
//串口2接收字节函数
u8 Uart2_Receive_Byte(void)
{
// unsigned char dat;
// while(!RI); //接收完为1
// RI = 0;
// dat = SBUF;
// return (dat);
u8 dat;
while(!(S2CON & 0x01)); //接收完为1
S2CON &= ~0x01;
dat = S2BUF;
return (dat);
}
//void Uart_Send_String(u8 *p)
//{
// while(*p != '\0')
// {
// Uart2_Send_Byte(*p);
// p++;
// }
//}
//void Uart2_Send_End(void)
//{
// Uart2_Send_Byte(0xff);
// Uart2_Send_Byte(0xff);
// Uart2_Send_Byte(0xff);
//}
/****************串口1程序******************/
void Uart1_Init(void) //115200bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
//串口1发送字节函数
void Uart1_Send_Byte(u8 dat)
{
SBUF = dat;
while(!TI); //发送完为1
TI = 0;
}
//串口1发送字符串函数
void Uart1_Send_String(u8 *str, u8 length)
{
u8 i;
for(i=0;i<length;i++)
{
Uart1_Send_Byte(*str++);
}
}
//串口1接收字节函数
u8 Uart1_Receive_Byte(void)
{
u8 dat;
while(!RI); //接收完为1
RI = 0;
dat = SBUF;
return (dat);
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )