串口通讯程序波特率9600程序设计
时间:11-30 11:25 阅读:978次
*温馨提示:点击图片可以放大观看高清大图
简介:实现功能:串口通讯程序波特率9600
使用芯片:STC15F104E
晶振:12MHZ
波特率:9600
编译环境:Keil
/********************************************************************
实现功能:串口通讯程序波特率9600
使用芯片:STC15F104E
晶振:12MHZ
波特率:9600
编译环境:Keil
*********************************************************************/
/********************************************************************/
#include<reg52.h> //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int //宏定义无符号整型
/********************************************************************
初始定义
*********************************************************************/
uchar dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容
/********************************************************************
I/O定义
*********************************************************************/
sbit P33=P3^3; //定义单片机P3口的第3位 (即P3.3)
sbit P3_5=P3^5;
/********************************************************************
延时函数
*********************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/********************************************************************
串口初始化,波特率9600
*********************************************************************/
void UartInit(void) //9600bps@11.0592MHz
{
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //设定定时器1为16位自动重装方式
TL1 = 0xE0; //设定定时初值
TH1 = 0xFE; //设定定时初值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
/********************************************************************
主函数
*********************************************************************/
void main()
{
Init_Com();//串口初始化
while(1)
{
if ( RI ) //扫描判断是否接收到数据,
{
dat = SBUF; //接收数据SBUF赋与dat
RI=0; //RI 清零。
SBUF = dat; //在原样把数据发送回去
}
}
}
/********************************************************************
结束
*********************************************************************/