• 大小: 102KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-17
  • 语言: 其他
  • 标签: 51单片机  串口  

资源简介

实现功能:基于STC12C5A60S2(51)单片机实现四个串口通讯 串口一收到数据封装数据分别2、3、4串口 使用芯片:STC12C5A60S2系列 晶振:11.0592MHZ 波特率:9600(有无校验位 串口一到三有校验位 串口四无校验 停止位:1;) 封装数据格式:可以在串口2,3,4 UartDriver()函数里面看到封装数据格式 编译环境:Keil

资源截图

代码片段和文件信息

/********************************************************************
实现功能:基于STC12C5A60S2单片机实现四个串口通讯  串口一收到数据封装数据分别2、3、4串口
使用芯片:STC12C5A60S2系列
晶振:11.0592MHZ
波特率:9600(有无校验位  串口一到三有校验位  串口四无校验   停止位:1;)
封装数据格式:可以在串口234 UartDriver()函数里面看到封装数据格式
编译环境:Keil     
*********************************************************************/
#include 
#include    //用nop函数延时的头文件
#include“Init_IO.h“ 
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
unsigned char T0RH = 0;  //T0重载值的高字节
unsigned char T0RL = 0;  //T0重载值的低字节
void ConfigTimer0(unsigned int ms);    //配置并启动T0,ms-T0定时时间 


extern void UartDriver1(); //串口驱动函数,监测数据帧的接收,调度功能函数,需在主循环中调用
extern void ConfigUART1(unsigned int baud1); //串口配置函数,baud-通信波特率 
extern void UartRxMonitor1(unsigned char ms1); //串口接收监控,由空闲时间判定帧结束,需在定时中断中调用,ms-定时间隔
extern void UartWrite1(unsigned char *buf1 unsigned char len1); //串口数据写入,即串口发送函数,buf-待发送数据的指针,len-指定的发送长度
extern void UartRead2(unsigned char *buf2 unsigned char len2);
extern void UartRead1(unsigned char *buf1 unsigned char len1);


extern void UartDriver2(); //串口驱动函数,监测数据帧的接收,调度功能函数,需在主循环中调用
extern void ConfigUART2(unsigned int baud2); //串口配置函数,baud-通信波特率 
extern void UartRxMonitor2(unsigned char ms2); //串口接收监控,由空闲时间判定帧结束,需在定时中断中调用,ms-定时间隔
extern void UartWrite2(unsigned char *buf2 unsigned char len2); //串口数据写入,即串口发送函数,buf-待发送数据的指针,len-指定的发送长度

extern void UartDriver3(); //串口驱动函数,监测数据帧的接收,调度功能函数,需在主循环中调用
extern void ConfigUART3(unsigned int baud3); //串口配置函数,baud-通信波特率 
extern void UartRxMonitor3(unsigned char ms3); //串口接收监控,由空闲时间判定帧结束,需在定时中断中调用,ms-定时间隔
extern void UartWrite3(unsigned char *buf3 unsigned char len3); //串口数据写入,即串口发送函数,buf-待发送数据的指针,len-指定的发送长度

extern void UartDriver4(); //串口驱动函数,监测数据帧的接收,调度功能函数,需在主循环中调用
extern void ConfigUART4(unsigned int baud4); //串口配置函数,baud-通信波特率 
extern void UartRxMonitor4(unsigned char ms4); //串口接收监控,由空闲时间判定帧结束,需在定时中断中调用,ms-定时间隔
extern void UartWrite4(unsigned char *buf4 unsigned char len4); //串口数据写入,即串口发送函数,buf-待发送数据的指针,len-指定的发送长度

uchar sdat;


void main()
{
    EA = 1;             //开总中断
    ConfigTimer0(1);    //配置T0定时1ms
    ConfigUART1(9600);  //配置波特率为9600
    ConfigUART2(9600);  //配置波特率为9600 
    ConfigUART3(9600);  //配置波特率为9600     
    ConfigUART4(9600);  //配置波特率为9600 
    
    while (1)
    {
        UartDriver1();  //调用串口驱动
        UartDriver2();  //调用串口驱动
        UartDriver3();  //调用串口驱动 
        UartDriver4();  //调用串口驱动    
    }
}

 
/* 配置并启动T0,ms-T0定时时间 */
void ConfigTimer0(unsigned int ms)
{
    unsigned long tmp;  //临时变量
    
    tmp = 11059200 / 12;      //定时器计数频率
    tmp = (tmp * ms) / 1000;  //计算所需的计数值
    tmp = 65536 - tmp;        //计算定时器重载值
    tmp = tmp + 33;           //补偿中断响应延时造成的误差
    T0RH = (unsigned char)(tmp>>8);  //定时器重载值拆分为高低字节
    T0RL = (unsigned char)tmp;
    TMOD &= 0xF0;   //清零T0的控制位
    TMOD |= 0x01;   //配置T0为模式1
    TH0 = T0RH;     //加载T0重载值
    TL0 = T

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\
     文件         417  2017-03-30 16:58  STC15W4K48S4四串口带485开发板测试程序\Init_IO.h
     文件        4087  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\main.c
     文件        6518  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\main.LST
     文件        9378  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\main.OBJ
     文件          34  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\main.__i
     文件        6376  2012-12-10 10:20  STC15W4K48S4四串口带485开发板测试程序\STARTUP.A51
     文件       14053  2018-05-07 12:01  STC15W4K48S4四串口带485开发板测试程序\STARTUP.LST
     文件         749  2018-05-07 12:01  STC15W4K48S4四串口带485开发板测试程序\STARTUP.OBJ
     文件       12805  2017-02-22 21:02  STC15W4K48S4四串口带485开发板测试程序\STC15W4KXX.H
     文件        4874  2018-05-07 12:01  STC15W4K48S4四串口带485开发板测试程序\UART1.c
     文件        9635  2018-05-07 12:01  STC15W4K48S4四串口带485开发板测试程序\UART1.LST
     文件       11795  2018-05-07 12:01  STC15W4K48S4四串口带485开发板测试程序\UART1.OBJ
     文件        4340  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART2.c
     文件        8515  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART2.LST
     文件       11381  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART2.OBJ
     文件          35  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART2.__i
     文件        4165  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART3.c
     文件        8385  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART3.LST
     文件       11188  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART3.OBJ
     文件          35  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART3.__i
     文件        4330  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART4.c
     文件        8322  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART4.LST
     文件       11380  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\UART4.OBJ
     文件        8464  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\wddz.hex
     文件         119  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\wddz.lnp
     文件       44286  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\wddz.M51
     文件       48655  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\wddz.taobao
     文件           0  2017-01-06 22:13  STC15W4K48S4四串口带485开发板测试程序\wddz.taobao.com
     文件        2240  2018-05-07 16:14  STC15W4K48S4四串口带485开发板测试程序\wddz.taobao.plg
     文件       72702  2017-09-23 16:27  STC15W4K48S4四串口带485开发板测试程序\wddz.taobao.uvgui.Administrator
............此处省略5个文件信息

评论

共有 条评论