微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于51型单片机的远程灯控箱系统

基于51型单片机的远程灯控箱系统

时间:12-30 来源:互联网 点击:

分噪声和数据便于操作,串口中断程序加强了通讯协议的制定[2],具体实现方法是加开始标志和结束标志。噪声是以随机字节出现的,通过测试和实验,发现在本系统中0x00后跟0xFF时噪声不容易发生。因此,设置开始标志为0x000xFF,结束标志为回车换行符0x0D0x0A。如果接收命令帧成功,则置NewData=1,表示新命令有效。考虑到纠检错,数据采用短包方式。中间采用延时,以保证起始位可靠。串口中断程序流程如图4所示。部分程序清单如下。

//串行接子函数

INT8U ReUART(INT8U*ch)

{INTl6U delay=6000;

while(--delay) //延时

{if(RI),/串行接收中断标志

{RI=0;//接收中断标志软件复位

、 *ch=SBU F=//读数据缓冲器

return 1;}//成功返回l

}

return(0);//接收失败返回0

)

//串行中断处理程序

void UART_Inter(void)interrupt 4

{INT8U ii;

INT8U temp,templ;

ReUART(temp、);//先连续接收2个字节

ReUART(templ);

//开始标志

if((temp==0x00)(templ==0xFF))

//连续接收一个命令帧

{for(ii=0;ii12;ii++)

{if(ReUART(buff[ii])==0)

goto Inter._end;}//跳出中断

if((buf[10]==0x0D)(buf[ll]==0x0A)),/结束标志

NewData=l; //新命令标志有效

}

Inter_end:;//中断出口

}

4 结论

基于SST89C58的远程灯控箱系统可实现一台PC上位机最多控制256个灯控箱,传输距离最远可达1.2km,每台灯控箱可对16路灯进行控制.实现了集中管理,分散控制的功能。该系统通过软硬件提高抗干扰性,并具有较好的扩展性,结构简单、投资少,实际应用表明具有较强的实用性。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top