0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STC12C5A60S2串口演示程序(C语言版)

算法&编程学院 来源:网络整理 2018-02-03 03:10 次阅读

#include"reg51.h"

#defineFOSC18432000L
#defineBAUD115200
#defineNONE_PARITY0//无校验位
#defineODD_PARITY1//奇校验

#defineEVEN_PARITY2//偶校验
#defineMARK_PARITY3//标记校验
#defineSPACE_PARITY4//空校验

#definePARITYBITEVEN_PARITY

#defineS2RI0x01
#defineS2TI0x02
#defineS2RB80x04
#defineS2TB80x08

sfrAUXR=0x8e;
sfrS2CON=0x9a;
sfrS2BUF=0x9b;
sfrBRT=0x9c;
sfrIE2=0xaf;

bitbusy;

voidSendData(chardat);
voidSendString(char*s);

voidmain()
{
#if(PARITYBIT==NONE_PARITY)
S2CON=0x5a;//8位可变波特率(无校验位)
#elif(PARITYBIT==ODD_PARITY)||(PARITYBIT==EVEN_PARITY)||(PARITYBIT==MARK_PARITY)
S2CON=0xda;//9位可变波特率,校验位初始为1
#elif(PARITYBIT==SPACE_PARITY)
S2CON=0xd5;//9位可变波特率,校验位初始为0
#endif

BRT=-(FOSC/32/BAUD);//设置独立波特率发生器的重载初值
AUXR=0x14;//独立波特率发生器工作在1T模式
IE2=0x01;//使能串口2中断
EA=1;//开总中断

SendString("STC12C5A60S2\r\nUART2Test!\r\n");
while(1);
}

voidUart2()interrupt8using1
{
if(S2CON&S2RI)
{
S2CON&=~S2RI;//清除接收完成标志
P0=S2BUF;//P0显示串口数据
P2=(S2CON&S2RB8);//P2.2显示校验位
}
if(S2CON&S2TI)
{
S2CON&=~S2TI;//清除发送完成标志
busy=0;
}
}

voidSendData(chardat)
{
while(busy);//等待上个数据发送完成
ACC=dat;//取得偶校验位P
if(P)//根据P来设置串口数据的校验位
{
#if(PARITYBIT==ODD_PARITY)
S2CON&=~S2TB8;//置校验位为0
#elif(PARITYBIT==EVEN_PARITY)
S2CON|=S2TB8;//置校验位为1
#endif
}
else
{
#if(PARITYBIT==ODD_PARITY)
S2CON|=S2TB8;//置校验位为1
#elif(PARITYBIT==EVEN_PARITY)
S2CON&=~S2TB8;//置校验位为0
#endif
}
busy=1;
S2BUF=ACC;//发送数据
}

voidSendString(char*s)
{
while(*s)//判断字符串结束标志
{
SendData(*s++);//发送字符
}
}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STC12C5A60S2
    +关注

    关注

    36

    文章

    219

    浏览量

    70007
收藏 人收藏

    评论

    相关推荐

    STC12C5A60S2的相关资料分享

    STC12C5A60S2串口通信(使用独立波特率发生器)STC12C5A60S2独立PWMSTC12C5A60S2在LCD1602基本显示程序
    发表于 02-18 07:25

    STC12C5A60S2/STC12C5201AD系列单片机

    STC12C5A60S2/STC12C5201AD系列单片机器件手册
    发表于 09-23 23:33 176次下载

    STC12C5A60S2资料

    STC12C5A60S2的全部中文资料,单片机的器件使用手册。
    发表于 04-11 15:18 73次下载

    STC12C5A60S2

    STC12C5A60S2中文资料全面实用 适合学习。
    发表于 05-13 16:40 29次下载

    stc12c5a60s2中文资料_引脚定义图及最小系统

    本文给出了关于stc12c5a60s2中文详细资料,stc12c5a60s2引脚图及引脚定义详细说明,stc12c5a60s2内部结构图及特点,stc12c5a60s2最小系统原理图,
    发表于 10-20 09:40 15.8w次阅读
    <b class='flag-5'>stc12c5a60s2</b>中文资料_引脚定义图及最小系统

    stc12c5a60s2串口程序

    用过stc12C5A60S2单片机的朋友都知道,该单片机有两个串口可用,看到官网的程序注释的也是比较多,所以自己写了个串口2使用的
    发表于 10-23 09:31 5873次阅读

    STC12C5A60S2精简开发板介绍

    STC12C5A60S2精简开发板有具有电源指示;所有I/O已引出;可以实现与电脑串口通信;可以实现RS485通讯等等特点
    发表于 01-25 10:23 6720次阅读
    <b class='flag-5'>STC12C5A60S2</b>精简开发板介绍

    STC12C5A60S2单片机不同波特率串口12通讯演示程序和工程文件

    本文档的主要内容详细介绍的是STC12C5A60S2单片机不同波特率串口12通讯演示程序和工程文件免费下载。
    发表于 08-12 08:00 10次下载
    <b class='flag-5'>STC12C5A60S2</b>单片机不同波特率<b class='flag-5'>串口</b><b class='flag-5'>12</b>通讯<b class='flag-5'>演示</b>的<b class='flag-5'>程序</b>和工程文件

    STC12C5A60S2串口演示9位数据的程序和工程文件免费下载

    本文档的主要内容详细介绍的是STC12C5A60S2串口演示9位数据的程序和工程文件免费下载。
    发表于 08-12 08:00 5次下载
    <b class='flag-5'>STC12C5A60S2</b><b class='flag-5'>串口</b><b class='flag-5'>演示</b>9位数据的<b class='flag-5'>程序</b>和工程文件免费下载

    STC12C5A60S2单片机11.0592晶振实现115200波特率串口通信

    /////////STC12C5A60S2单片机11.0592晶振实现115200波特率串口通/////////////////////////////////STC12C5A60S2或者
    发表于 11-18 11:51 48次下载
    <b class='flag-5'>STC12C5A60S2</b>单片机11.0592晶振实现115200波特率<b class='flag-5'>串口</b>通信

    STC12C5A60S2单片机双串口通信,互相发送

    STC12C5A60S2单片机双串口通信,互相发送STC12C5A60S2单片机拥有两个全双工串行通信接口,串口1的功能及操作与传统51单片机串行相同;特殊的是
    发表于 11-18 12:06 28次下载
    <b class='flag-5'>STC12C5A60S2</b>单片机双<b class='flag-5'>串口</b>通信,互相发送

    STC12C5A60S2串口1测试(BRT-500Kbps)源代码

    STC12C5A60S2-串口1测试(BRT-500Kbps)源代码
    发表于 05-17 15:18 1次下载

    STC12C5A60S2串口1-串口2测试程序asm源代码

    STC12C5A60S2-串口1-串口2-测试程序asm源代码
    发表于 05-17 15:17 0次下载

    STC12C5A60S2串口1-串口2测试程序源代码

    STC12C5A60S2-串口1-串口2-测试程序源代码
    发表于 05-17 15:16 1次下载

    STC12C5A60S2串口1读ID例程源代码

    STC12C5A60S2-串口1读ID例程源代码
    发表于 05-17 15:15 1次下载