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
    +关注

    关注

    35

    文章

    219

    浏览量

    68654
收藏 人收藏

    评论

    相关推荐

    STC12C5A60S2接1602不显示怎么办???

    我的程序在51的板上显示没有问题。但是换到了STC12C5A60S2上就不显示了,这是怎回事??求大神知道,小弟刚玩STC12C5A60S2
    发表于 09-26 22:25

    STC12C5A60S2

    STC12C5A60S2使用手册
    发表于 05-21 16:38

    stc12c5a60s2STC89C51在延时上面的区别?

    我是新手,所以对于stc12c5a60s2STC89C51的区别不是很了解。想请各位帮忙分析一下,是不是STC89C51是12个周期运行一次,st
    发表于 07-29 15:59

    STC12C5A60S2的EEPROM程序测试

    STC12C5A60S2的EEPROM程序测试希望对新手有帮助
    发表于 07-30 00:13

    kile 怎样添加stc12c5a60s2的头文件?使得可以编程stc12c5a60s2

    kile 怎样添加stc12c5a60s2的头文件?使得可以编程stc12c5a60s2
    发表于 03-28 11:29

    谁用过STC12C5A60S2的?

    大家给STC12C5A60S2芯片烧程序都是怎么烧的求大神指点我用USB转TTL模块给STC12C5A60S2程序,一直提示给MCU上电换一块芯片
    发表于 07-05 20:07

    STC12C2052AD与STC12C5A60S2的区别?

    STC12C2052AD与STC12C5A60S2的区别??
    发表于 05-31 13:14

    EEPROM使用与验证在STC12C5A60S2

    EEPROM使用与验证在STC12C5A60S2串口输出方便调试
    发表于 09-05 16:01

    STC12C5A60S2 的PWM程序与硬件

    目标:使用2个按键控制PWM输出,控制LED的亮度,一键增加亮度,一键减少亮度。硬件:STC12C5A60S2 1个,微动开关2个问题:1 PWM的引脚号是多少?。STC12C5A60S2
    发表于 01-01 21:09

    跪求,stc12c5a60s2串口2输出不了怎么办?

    ,也是没输出,我是某宝买的stc12c5a60s2的最小系统开发板,买了两块都是一样,串口2串口调试助手看,完全没有输出,不知道怎么回事,求大神用过的解答一下。小白小弟跪求了!!!!
    发表于 11-19 22:25

    stc12c5a60s2

    stc12c5a60s2来控制两电机的小车,前后左右,要什么硬件电路,和程序,谢谢各位的解答!
    发表于 11-02 23:54

    STC12C5A60S2免掉电自动下载

    STC12C5A60S2免掉电自动下载调试更方便,有了它载程序是不用再去按开关可以按复位键来载程序或通过串口来下载DOWNLOAD.H (2.16 KB )
    发表于 04-08 09:34

    STC12C5A60S2单片机串口通信的相关资料推荐

    STC12C5A60S2单片机双串口通信,互相发送STC12C5A60S2单片机拥有两个全双工串行通信接口,串口1的功能及操作与传统51单片机串行相同;特殊的是
    发表于 11-26 07:07

    STC12C5A60S2的相关资料分享

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

    基于STC12C5A60S2的51个系统板

    描述最低 51 个系统板该板基于STC12C5A60S2芯片,集成CH330串口,晶体振荡器和上电复位电路。尺寸为宽21mm,长52.3mm,并可插入 DIP40 芯片座和面包板。PCB+原理图
    发表于 08-15 06:49