您的位置 首页 IC

STC12C5A16S2双串口的运用

stc双串口的使用:MCU:STC15C5A16S2时钟:11.0592S2SMOD=1,BRTX12=1;串口波特率:9600#includestc12c5as2.h>#defineuint8

stc双串口的运用:

MCU:STC15C5A16S2

时钟:11.0592

S2SMOD=1,BRTX12=1;

串口波特率:9600

#include
#define uint8 unsigned char
#define uint16 unsigned int

#define Fclk 11059200UL /*运用22.1184M晶体*/
#define BitRate 9600UL /*波特率界说为9600*/
#define RELOAD_COUNT 0Xb8

volatile uint8 Buf[4]={0x00,0x00,0x00,0x00};//
volatile uint8 BufBack[4]={0x00,0x00,0x00,0x00};
uint8 Num=4;

void UartInit()
{
SCON=0X50;//8位可变波特率,无奇偶校验
TMOD=0X21; //设置定时器1,主动重装数
TH1=256-Fclk/(BitRate*12*16); //核算定时器重装值
TL1=256-Fclk/(BitRate*12*16);
PCON|=0X80; //波特率加倍
TR1=1; //开定时器1
REN=1; //答应接纳
ES=1; //答应串口1中止
EA=1; //开总中止
}
void UartSendByte(unsigned char i)
{
ES=0;
TI=0;
SBUF=i;
while(TI==0);
TI=0;
ES=1;
}

/********************************************************************
函数功用:串口中止处理。
进口参数:无。
返 回:无。
备 注:无。
********************************************************************/
void UartISR(void) interrupt 4
{
if(RI) //收到数据
{
if(Num>0)
{
Buf[4-Num]=SBUF;
Num–;
}
RI=0; //清中止请求
}
}

/********************以上为串口1收发程序***********************/
/********************以下为串口2收发程序***********************/
void UartInit2()
{
S2CON=0X50; //8位可变波特率,无奇偶校验
BRT=RELOAD_COUNT;//波特率发生器装载
AUXR=0X1c;

IE2=0X01; //答应串口2中止
EA=1;
}

void UartSendByte2(unsigned char i)
{
uint8 temp=0;
IE2=0X00;
S2CON=S2CON&0XFD;
S2BUF=i;
do{
temp=S2CON;
temp=temp&0x02;
}while(temp==0);
S2CON=S2CON&0XFD;
IE2=0X01;
}

void UartISR2(void) interrupt 8
{
unsigned char k=0;
k=S2CON;
k=k&0X01;
if(k==1)
{
S2CON=S2CON&0XFE;
if(Num>0)
{
BufBack[4-Num]=S2BUF;//
Num–;
}
}
else
{
S2CON=S2CON&0XFD;
}
}

void main()
{
UartInit();
UartInit2();
//接纳电脑发来的数组
while(Num>0);
//把接纳到的数组发给从机

UartSendByte2(Buf[0]);
UartSendByte2(Buf[1]);
UartSendByte2(Buf[2]);
UartSendByte2(Buf[3]);

//接纳从机回来的数据
Num=4;
while(Num>0);
//把从机回来的数据发回给电脑
UartSendByte(BufBack[0]);
UartSendByte(BufBack[1]);
UartSendByte(BufBack[2]);
UartSendByte(BufBack[3]);
while(1);
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/266138.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部