单片机远程灯控箱设计

发布者:徽宗古泉最新更新时间:2013-03-12 来源: 51hei关键字:单片机  远程灯控箱  SST89C58 手机看文章 扫描二维码
随时随地手机看文章

电脑是现今信息时代的标志,通过电脑实现远程实时自动化控制是今后发展的一种趋势。在大型商场、饭店、体育场馆及娱乐场所里,通常有许多照明设备。以往的开关控制和电闸控制,常常需要工作人员频繁亲临现场操作,或向控制室拉接较长的220V电线,实时性、安全性都较差。为了实现工作人员在控制室可以对分散在各个房间的远端照明设备进行实时有效的状态控制及状态查询,笔者开发了一种基于单片机的远程灯控箱系统。该系统由一台PC上位机控制多台远端灯控箱,通过RS-485总线串行传送指令,传输距离最远可达1.2km,并增强串行通信协议的制定,降低了噪声干扰。一台灯控箱可对16路灯进行控制。灯控箱中选用SST89C58型单片机,其方便的IAP功能可在线下载Hex文件并进行调试,无需多次使用编程器。
点击浏览下一页
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口、定时器/计数器、串行口及中断等单片机特有的功能部件,功能非常强大。[page]

点击浏览下一页

该系统的软件设计由主程序、中断程序、串行接收子程序、串行发送子程序、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(&temp、);//先连续接收2个字节

ReUART(&templ);点击浏览下一页

//开始标志

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

//连续接收一个命令帧

{for(ii=0;ii<12;ii++)

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

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

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

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

}

Inter_end:;//中断出口

}[page]

4 结论

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

下面还介绍一个  ULN2803A和SST89C58型单片机的远程灯控箱系统

  主要元件:ULN2803A型器件是TI公司生产的单片集成高压、大电流达林顿晶体管阵列。该阵列由8个NPN达林顿管组成。其特点是电流增益高、负载能力强(输出电流可达500mA)、工作电压高(耐压达50V)。
    摘要:以大型场所照明设备的远程控制为目的,介绍基于SST89C58型单片机的远程灯控箱系统的软硬件设计。该系统通过RS-485总线与PC上位机通信,实现远距离、多节点控制。    关键词:单片机;IAP;远程控制;通信协议:SST89C58电脑是现今信息时代的标志,通过电脑实现远程实时自动化控制是今后发展的一种趋势。在大型商场、饭店、体育场馆及娱乐场所里,通常有许多照明设备。以往的开关控制和电闸控制,常常需要工作人员频繁亲临现场操作,或向控制室拉接较长的220V电线,实时性、安全性都较差。为了实现工作人员在控制室可以对分散在各个房间的远端照明设备进行实时有效的状态控制及状态查询,笔者开发了一种基于单片机的远程灯控箱系统。该系统由一台PC上位机控制多台远端灯控箱,通过RS-485总线串行传送指令,传输距离最远可达1.2km,并增强串行通信协议的制定,降低了噪声干扰。一台灯控箱可对16路灯进行控制。灯控箱中选用SST89C58型单片机,其方便的IAP功能可在线下载Hex文件并进行调试,无需多次使用编程器。

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口、定时器/计数器、串行口及中断等单片机特有的功能部件,功能非常强大。该系统的软件设计由主程序、中断程序、串行接收子程序、串行发送子程序、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(&temp、);//先连续接收2个字节ReUART(&templ);//开始标志if((temp==0x00)&&(templ==0xFF))//连续接收一个命令帧{for(ii=0;ii<12;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路灯进行控制.实现了集中管理,分散控制的功能。该系统通过软硬件提高抗干扰性,并具有较好的扩展性,结构简单、投资少,实际应用表明具有较强的实用性。

关键字:单片机  远程灯控箱  SST89C58 引用地址:单片机远程灯控箱设计

上一篇:单片机驱动8×8点阵LED
下一篇:多路开关状态指示器设计

推荐阅读最新更新时间:2024-03-16 13:20

最详尽32位MCU低功耗设计考量与经典范例参考(三)
电源系统的考量   在多电源系统的应用上,必须考虑低功耗 MCU 的内部电源规划或自动切换,以下以市电/备用电池双电源系统及内建 USB 介面,但平常由电池供电的行动装置来举例说明。   市电/备用电池双电源系统:MCU 平常由市电经由交直流转换电路供电,当市电断电时,经由连接在备用电源的独立供电管脚进行供电,同时在 MCU 内部进行电源切割,并提供一个可靠的备用电源自动切换开关,确保市电正常供电时备用电池不会持续被消耗。但仔细考虑,其实有两种状况可能发生,一种是备用电池仅供电给部分低耗电的周边电路,例如 32.768K 晶振、RTC 时钟电路、资料备份寄存器等。当市电来时 MCU 将重新启动。另外一种状况是当市电断电时,有可
[模拟电子]
最详尽32位<font color='red'>MCU</font>低功耗设计考量与经典范例参考(三)
单片机数控云台master 仿真及源程序
源程序: /********************************************* This program was produced by the CodeWizardAVR V1.23.8c Standard Automatic Program Generator ?Copyright 1998-2003 HP InfoTech s.r.l. http://www.hpinfotech.ro e-mail:office@hpinfotech.ro Project : SKYT Version : 0.01 Date : 2006-12-6 Author : hlchen
[单片机]
<font color='red'>单片机</font>数控云台master 仿真及源程序
单片机点灯(点亮、闪烁、流水灯)
一、点亮 工作原理: 如图,二极管阳极连接电阻,二极管阴极连接单片机引脚。D0对应P20,D1对应P21,,,,,,,都通过P2孔进行控制。 二极管: 电源正极连接到二极管阳极,负极连接到阴极,二极管正常工作。所以,原理图中,引脚为低电平,连接的是二极管的阴极,阳极通过与电阻连接,电阻连接的是高电平,所以二极管正常工作。电阻的作用为保护二极管。 程序编写 #include reg52.h sbit LED=P2^0; /*sbit用于定义变量。LED为自定义变量。将P2.0(注意不要写成P2.0,应写为P^0)孔赋给变量LED*/ void main() { while(1) { LED=0;/*由二极管的工作原
[单片机]
基于STM32 MCU的太阳能-LED街灯解决方案
随着化石类能源的日益减少,以及温室气体的过度排放导致全球变暖问题越来越受到重视,人们一方面在积极开发各类可再生新能源,另一方面也在倡导节能减排的绿色环保技术。太阳能作为取之不尽、用之不竭的清洁能源,成为众多可再生能源的重要代表;而在照明领域,寿命长、节能、安全、绿色环保、色彩丰富、微型化的LED固态照明也已被公认为世界一种节能环保的重要途径。太阳能-LED街灯同时整合了这两者的优势,利用清洁能源以及高效率的LED实现绿色照明。 本文介绍的太阳能-LED街灯方案,能自动检测环境光以控制路灯的工作状态,最大功率点追踪(MPPT)保证最大太阳能电池板效率,恒电流控制LED,并带有蓄电池状态输出以及用户可设定LED工作时间等
[电源管理]
基于STM32 <font color='red'>MCU</font>的太阳能-LED街灯解决方案
单片机中的位域操作
在一个工程项目中,有时候我们经常会用到许多状态标志位。很多时候我们会去程序中定义这些变量,而这些变量往往占用了一个字节(byte),然而我们需要的仅仅是一个状态位(bit)。这样去定义变量不仅浪费了存储空间,而且不利于变量管理。下面,介绍一种使用位域的方法定义状态标志的方法: //定义联合体,同时命名别名为function typedef union { u8 flagByte; struct { u8 b0:1; u8 b1:1; u8 b2:1; }bits; }function; function myflag; //定义联合体变量myflag //变量操作 u
[单片机]
CEPARK AVR大学堂----Linglong AVR单片机之SPI通信
#include avr/io.h #include util/delay.h #define DD_SPI DDRB #define DD_MOSI PB5 #define DD_SS PB4 #define DD_SCK PB7 unsigned char DispBuff = {0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; //共阳数码管字库 void SPIMasterInit(void ) //SPI初始代函数 { DD_SPI = (1 DD_MOSI)|(1 DD_SS)|(1 DD_SCK); // MOSI,SS,SCK 设
[单片机]
PIC单片机扩展8255A并口
#include p IC .h __CONFIG(0x3B31); #define A0 RB0 #define A1 RB1 #define CS RB2 #define LE RD0 #define WR RD6 #define RD RD7 const unsigned char tab ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};//0-F-全灭-共阳极 数码管 unsigned char tmp ={0,0,0,0,0,0,0,0}; void delay1ms(unsigned i
[单片机]
紫光新一代车规MCU获功能安全最高认证,携手安谋科技深化车芯市场布局
近日,紫光同芯宣布,其搭载Arm® Cortex®-R52+内核的新一代THA6系列MCU,顺利通过了国际权威认证机构SGS关于功能安全开发流程体系和功能安全产品设计的评估,荣获符合ISO 26262标准的ASIL D等级功能安全流程体系认证、功能安全ASIL D Ready产品认证两项资质。这标志着该款产品成为国内首颗通过ASIL D产品认证的Arm Cortex-R52+内核MCU芯片,达到了功能安全的最高等级要求。作为紫光同芯在汽车电子功能安全领域的最新成果,新一代THA6系列MCU在性能、安全性和可靠性等方面均具有显著优势。目前,该产品已顺利进入流片阶段,将助力国内汽车“新四化”的创新发展。 安谋科技智能物联
[汽车电子]
紫光新一代车规<font color='red'>MCU</font>获功能安全最高认证,携手安谋科技深化车芯市场布局
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved