首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
嵌入式技术
» 单片机远程灯控箱设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
单片机远程灯控箱设计
发短消息
加为好友
samwalton
当前离线
UID
872238
帖子
6518
精华
0
积分
3259
阅读权限
90
在线时间
309 小时
注册时间
2012-3-1
最后登录
2014-7-5
论坛元老
UID
872238
1
#
打印
字体大小:
t
T
samwalton
发表于 2012-8-26 14:29
|
只看该作者
单片机远程灯控箱设计
工作人员
,
设计
,
RS-485
,
照明设备
摘要:
以大型场所照明设备的远程控制为目的,介绍基于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:;//中断出口
}
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议