找回密码
 立即注册

QQ登录

只需一步,快速开始

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

一个协议转换器的程序,大家 看看给提一下意见

[复制链接]
跳转到指定楼层
楼主
ID:237942 发表于 2017-10-17 17:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#include<intrins.h>

typedef unsigned char u8;
typedef unsigned int u16;
u8 code str11[]={0x7E,0x41,0x06,0x0D};     //测试帧,定义点歌系统协议
u8 code str12[]={0x7E,0x41,0x19,0x0D};
u8 code str13[]={0x7E,0x41,0x09,0x0D};
u8 code str14[]={0x7E,0x41,0x03,0x0D};

u8 code str1[]={0x23,0x01,0x04,0x00,0x00,0x00,0x01,0x23};  //测试帧,定义灯光系统协议
u8 code str2[]={0x23,0x01,0x04,0x00,0x00,0x00,0x02,0x23};
u8 code str3[]={0x23,0x01,0x04,0x00,0x00,0x00,0x03,0x23};
u8 code str4[]={0x23,0x01,0x04,0x00,0x00,0x00,0x04,0x23};

******************************************************
void  Uart_init()
{
  SCON=0X50;   //设置为工作方式1,打开接收允许位
  TMOD=0X20;   //设置定时器为工作方式2
  PCON=0X80;   //波特率加倍( PCON &= 0xef;波特率不倍增)
  TH1=0XF4;           //定时器初始值设置,波特率4800
  TL1=0XF4;
  ES=1;                   //打开接收中断
  EA=1;                   //打开总中断
  TR1=1;          //打开定时器1
}

******************************************************
void com_send()            //串口发送函数  
{  
  u8 receive_buffer;
  u16 m;
if(receive_buffer[2]=0x06)
{
  for(m=0;str1[m]!='\0';m++)
  {
   SBUF=str1;
}
}
else if(receive_buffer[2]=0x19)
{
  for(m=0;str2[m]!='\0';m++)
  {
  SBUF=str2;
}
}
else if(receive_buffer[2]=0x09)
{
for(m=0;str3[m]!='\0';m++)
  {
  SBUF=str3;
}
}
else (receive_buffer[2]=0x03)
{
  for(m=0;str4[m]!='\0';m++)
  {
  SBUF=str4;
}
}
  while(!TI);    //T1==0
  TI=0;
}

*******************************************************
void com_receive()  //串口接收
{
u8  receive_buffer[];
if(SBUF='\0')
{
receive_buffer[]=SBUF;
while(!RI);
RI=0;
}
}  
**************************************************
void  main()
{
  Uart_init();
  com_receive();
  com_send();
}

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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