您的位置 首页 IC

根据SST89C58型单片机的长途灯控箱体系

摘要:以大型场所照明设备的远程控制为目的,介绍基于SST89C58型单片机的远程灯控箱系统的软硬件设计。该系统通过RS-485总线与PC上位机通信,实现远距离、多节点控制。 关键词:单片机;IAP;

摘要:以大型场所照明设备的长途操控为意图,介绍根据SST89C58型单片机的长途灯控箱体系的软硬件规划。该体系经过RS-485总线与PC上位机通讯,完成远间隔、多节点操控。 关键词:单片机;IAP;长途操控;通讯协议:SST89C58 电脑是如今信息时代的标志,经过电脑完成长途实时主动化操控是往后开展的一种趋势。在大型商场、饭馆、体育场馆及娱乐场所里,一般有许多照明设备。以往的开关操控和电闸操控,常常需求作业人员频频亲临现场操作,或向操控室拉接较长的220V电线,实时性、安全性都较差。为了完成作业人员在操控室能够对涣散在各个房间的远端照明设备进行实时有用的状况操控及状况查询,笔者开发了一种根据单片机的长途灯控箱体系。该体系由一台PC上位机操控多台远端灯控箱,经过RS-485总线串行传送指令,传输间隔最远可达1.2km,并增强串行通讯协议的拟定,降低了噪声搅扰。一台灯控箱可对16路灯进行操控。灯控箱中选用SST89C58型单片机,其便利的IAP功用可在线下载Hex文件并进行调试,无需屡次运用编程器。

1.png

1 体系结构及功用 长途灯控箱体系的结构如图l所示,其间,PC上位机放在操控室里,各灯箱就近放置在照明设备邻近。由PC上位机发送操控指令,经过RS-485总线将指令串行传送给各远端灯控箱,这样就可在操控室里实时开关操控,查询各个灯的状况。从传输间隔和性价比方面考虑选用RS-485总线。RS-485为平衡线路,可完成远间隔、多节点操控。本规划的重点是灯控箱。下面将以一台灯控箱为例介绍体系的软件和硬件规划。 2 硬件规划 2.1首要元件 规划体系选用Silicon Storage。Technology公司推出的具有IAP(In-Application Programming)功用的SST89C58型单片机。它在指令体系、硬件结构和片内资源上与规范8052型单片机彻底兼容,一同增大了内部程序存储 Flash的容量,可达36KB。并添加了与Flash编程相关的6个特别功用寄存器和2个与看门狗复位有关的特别功用寄存器。对SST89C58的 IAP功用选用一个通用程序编写[1],选用Keil公司的μVision仿真软件进行编程仿真。将生成的Hex文件直接经过RS-232串口从PC下载到单片机上运转调试,运用十分便利,缩短了开发周期。ULN2803A型器材是TI公司出产的单片集成高压、大电流达林顿晶体管阵列。该阵列由8个NPN 达林顿管组成。其特色是电流增益高、负载能力强(输出电流可达500mA)、作业电压高(耐压达50V)。选用的:X5045型器材为4K SPI电可擦除存储器,用于掉电后保存从机站号。Maxim公司的MAX485型器材是通用半双工收发器,传输速度为9.6Kb/s时,传输间隔可达 1.2km.可完成上位机与单片机之间的串口异步通讯。 图2 2.2体系中心硬件 长途灯控箱体系的中心硬件图如图2所示,以SST89C58型单片机为中心,用P0口和P2口进行信号操控,留意P0口要加上拉电阻器。经过2个 ULN2803进行电流扩大,可驱动16路继电器。因为片内带有共阴极箝位二极管,可习惯理性负载,故输出端可省去许多二极管。SST89C58驱动16 路继电器,可操控16路灯信号。若要添加操控信号,可添加8255型器材扩展并行接口。用X5045保存RS-485网络从机站号。SST89C58单片机的P1.2引脚用来模仿X5045的时钟输入信号SCK,CS=0时,串行输出SO在时钟信号下降沿有用,串行输入SI在上升沿有用(WP=1)。详细操作还需求写入状况字。串口部分选用MAX485。其间,RE与DE接在一同由单片机的RD(P3.7)操控。拉低为接纳有用,拉高为发送有用。该体系还具有上电主动复位和通电指示功用。规划PCB时应留意合理布线,对单片机电源进行滤波整流,并远离搅扰源。 3 体系软件规划 用C言语编译器开发单片机具有运用便利、编程效率高及仿真调试简略等杰出特色。C51的版别许多,本体系软件选用德国Keil Software公司的Keil C51编译器开发。该编译器根据Windows渠道集成开发环境,可修改、编译和调试汇编言语程序及C51程序,还可模仿仿真I/O口、定时器/计数器、串行口及中止等单片机特有的功用部件,功用十分强壮。

2.png

该体系的软件规划由主程序、中止程序、串行接纳子程序、串行发送子程序、X5045读写子程序及若干功用完成子程序。其间,:X5045读写子程序需对时钟进行准确操作,用汇编言语编写,其他均用C言语编写。 3.1主程序规划 在主程序中,先将SST89C58及X5045初始化,然后等候新指令。当NewData=1时,标明已接纳到一个有用的指令帧,不然持续等候。接着判别是否是本机地址,若是则判别操控指令,不然持续等候。上位机发送指定的字符串,别离标明开灯、关灯、查询、设置等指令。经过字符串比较,判别出指令指令,跳到相应的进口子程序中;操作成功后,经过串口发送子程序回来相应的提示符,其详细流程如图3所示。在本体系中,上位机的人机交互界面由 C++Builder开发,限于篇幅,在此从略。 3.2串口中止程序规划 为了增强抗搅扰性,有用地区别噪声和数据便于操作,串口中止程序加强了通讯协议的拟定[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(%26;amp;temp、);//先接连接纳2个字节 ReUART(%26;amp;templ);

3.png

//开端标志 if((temp==0x00)%26;amp;%26;amp;(templ==0xFF)) //接连接纳一个指令帧 {for(ii=0;ii12;ii++) {if(ReUART(%26;amp;buff[ii])==0) goto Inter._end;}//跳出中止 if((buf[10]==0x0D)%26;amp;%26;amp;(buf[ll]==0x0A)),/完毕标志 NewData=l; //新指令标志有用 } Inter_end:;//中止出口 } 4 定论 根据SST89C58的长途灯控箱体系可完成一台PC上位机最多操控256个灯控箱,传输间隔最远可达1.2km,每台灯控箱可对16路灯进行操控.完成了会集办理,涣散操控的功用。该体系经过软硬件进步抗搅扰性,并具有较好的扩展性,结构简略、出资少,实践使用标明具有较强的实用性。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/292250.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部