中科因仑“3+1”工程特种兵精英论坛

标题: 010、STC12C5A60S2单片机之串口简单收发 [打印本页]

作者: 张衍波    时间: 2015-5-5 16:40
标题: 010、STC12C5A60S2单片机之串口简单收发
/********************************************************************
                            汇诚科技

实现功能:STC12C5A60S2单片机之串口一简单收发
使用芯片:STC12C5A60S2
晶振:11.0592MHZ
波特率:9600
编译环境:Keil
作者:zhangxinchun
网站:www.ourhc.cn
淘宝店:
汇诚科技 http://ourhc.taobao.com
郑兴电子直销部 http://shop68451856.taobao.com
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     
功能    :接收串口发送的数据再返回原值。
其他    :采用查询方式发送稳定,但是接收数据极不稳定由于
官方资料使用的是中断方式,所以建议使用中断方式收发数据。
注意    :下载完程序后请复位系统后运行!(切记!!)
*********************************************************************/
#include "STC12C5A60S2.h"  //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
/********************************************************************
                            初始定义
*********************************************************************/
uchar dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容

/********************************************************************
             功能:串口初始化,波特率9600,方式1
*********************************************************************/        
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/********************************************************************
                            主函数
*********************************************************************/
void main()
{
Init_Com();//串口初始化

while(1)
{
if(RI) //扫描判断是否接收到数据,
{
dat=SBUF; //接收数据SBUF赋与dat
RI=0; //RI 清零。
SBUF=dat; //在原样把数据发送回去
}
}
}
       
/********************************************************************
                              结束
*********************************************************************/
[attach]2689[/attach]







欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4