找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1134|回复: 0
打印 上一主题 下一主题
收起左侧

51双串口程序

[复制链接]
跳转到指定楼层
楼主
ID:442818 发表于 2018-12-9 20:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "stc12c5a60s2.h"
#include "intrins.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
unsigned char DATA=0;
#define FOSC 24000000L      //System frequency
#define BAUD 9600         //UART baudrate
#define S2RI  0x01          //S2CON.0
#define S2TI  0x02          //S2CON.1
#define S2RB8 0x04          //S2CON.2
#define S2TB8 0x08          //S2CON.3
bit busy;
void SendData(BYTE dat);
void SendString(char *s);
void main()
{
    S2CON = 0x50;           //8-bit variable UART
    BRT = -(FOSC/32/BAUD);  //Set auto-reload vaule of baudrate generator
    AUXR = 0x14;            //Baudrate generator work in 1T mode
    IE2 = 0x01;             //Enable UART2 interrupt
    EA = 1;                 //Open master interrupt switch
    SendString("STC12C5A60S2\r\nUart2 Test !\r\n");
    while(1)
  {
  SendData(DATA);
  }
}
/*----------------------------
UART2 interrupt service routine
----------------------------*/
void Uart2() interrupt 8
{
    if (S2CON & S2RI)
    {
        S2CON &= ~S2RI;     //Clear receive interrupt flag
     DATA=S2BUF;
    }
    if (S2CON & S2TI)
    {
        S2CON &= ~S2TI;     //Clear transmit interrupt flag
        busy = 0;           //Clear transmit busy flag
    }
}
/*----------------------------
Send a byte data to UART
Input: dat (data to be sent)
Output:None
----------------------------*/
void SendData(BYTE dat)
{
    while (busy);           //Wait for the completion of the previous data is sent
    S2BUF = dat;            //Send data to UART2 buffer
    busy = 1;   
}
/*----------------------------
Send a string to UART
Input: s (address of string)
Output:None
----------------------------*/
void SendString(char *s)
{
    while (*s)              //Check the end of the string
    {
        SendData(*s++);     //Send current char and increment string ptr
    }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表