,
中国IEEE
关于我们 | 会员登陆 | 收藏本站 | 留 言 薄
 

 | 网站首页 | 电子知识 | 单片机知识 | 电路设计 | 微电子技术 | SCADA系统 | 资源下载 | 给我留言 | 谷歌商城 | 视频教程 | ieee | 
热门搜索关键字: 单片机教程 | 三极管微电子 |  C语言汇编语言SCADA元器件IEEE |
cnieee.com baidu
栏目导航  
栏目更新推荐  
·抗震救灾人人有责爱心捐助共度难关
·推荐给大家单片机的入门书籍
·至广大电子爱好者
·2008世界通信大会 IEEE ICC2008
·一个老电子工程师的建议
·你是合格的电子工程师吗?
·学习单片机最简单容易的方法
·工程师的发展
点击TOP(10)  
·抗震救灾人人有责爱心捐助共度难关
·推荐给大家单片机的入门书籍
·至广大电子爱好者
·2008世界通信大会 IEEE ICC2008
·一个老电子工程师的建议
·你是合格的电子工程师吗?
·学习单片机最简单容易的方法
·工程师的发展
·什么是电动势它和电压有什么区别
·功率放大器两种实现方法的比较
图片文章  

抗震救灾人人有责爱

推荐给大家单片机的

乙类放大电路的优化

形成交越失真的原理
 
您现在的位置: 中国IEEE中国电气电子工程师网 >> 电子知识 >> 行业动态 >> 正文

采用AT89C2051单片机设计的新型换色器
文章来源:本站整理 点击数: 更新时间:2008-5-13 【字体:
(欢迎光临中国IEEE,希望本文能对您有所帮助http://www.cnieee.com)


相关文章:

没有相关文章

  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
    关于〖采用AT89C2051单片机设计的新型换色器〗的最新评论:

    关于AT89C2051的应用,下面的文章希望对您有帮助。

    摘要:灯光换色器是舞台上常用的灯光设备。本文详细介绍一种采用AT89C2051单片机设计的新型换色器。首先,简述换色器的工作原理及基使用的DMX512通信协议。然后,详细介绍E2PROM芯片X25045的使用。最后,给出X25045的接口设计。

    舞台灯光效果设计是舞台场景设计的重要组成部分。目前国内使用的各种新型灯光设备,如换色器、调光器、电脑灯等大多是从国外进口,国内几乎没有生产。为此,我们应国内某舞台灯不设备厂的要求设计了一种以AT89C2051单片机为控制器的新型舞台灯光换色器HSQ-1A。该换色器可变换8种色彩,换色精度高,工作可靠。使用时,舞台上所有的换色器和总控制台根据RS-485协议连成总线网络;总控制台作为主机通过总线发布命令,控制所有换色器的工作。以下介绍换色器的工作原理及设计方案。

    一、系统结构和工作原理

    换色器由一个中空的框架、两根卷轴以及各色透光薄膜组成。制作时,首先将不同颜色的透光膜连接成条幅,并在条幅的两端安上卷轴。然后用卷轴将条幅卷起,以活动的方式把卷轴安装在框架的两侧。使用时,把换色器放在白色光源前方,转动两根卷切换不同颜色的透光膜,从而产生不同颜色的灯光效果。这种不换光源只换透光膜的换色方案,与更换不同颜色光源的方案相比,虽然换色速度较慢,但成本低,可靠性高。因此,换色器在换色频度低的场合中应用很广。

    在换色器的设计中,重点在于卷轴的驱动和定位机构的设计。过去,采用的交流电机和光电码盘实现方式,运行噪声大、定位精度差,在实际使用中效果不理想。现在,在新换色器中选用步进电机作为驱动和定位机构,彻底解决了以上问题。换色器工作时运行平稳、噪声小、定位精度高,完全达到了设计要求。 总控制台与换色器之间的通信使用DMX512数据传输协议。DMX512协议是美国舞台灯光协会(USITT)于1990年发布的一种灯光控制器与灯具设备进行数据传输的标准。这包括电气特性、数据协议、数据格式等各方面的内容。

    DMX512电气特性与RS-485完全兼容,包括驱动器/接收器的选择、线路负载和多站配置等方面的要求都是一致的。

    DMX512数据协议规定使用250Kbps的波特率。在进行正常数据传输之前,发送1个复位信号,声明数据传输的开始。随后的第1帧数据称为起始代码,其中包含设备类型码,以指明后续数据的接收设备的类型。最后,按设备编号的顺序给每个设备发送1帧数据,依次为:1#设备数据帧、2#设备数据帧,直至最后一个设备。设备总数最多可达512个,数据帧间隔为高电平,最长不超过1s。

    DMX512数据格式规定,1帧数据长度为11位。按传送顺序说明如下:

    第1位——起始位,低电平(SPACE);

    第2~9位——数据位,从最低位到最高位(LSB~MSB),正逻辑;

    第10、11位——停止位,高电平(MARK);

    奇偶校验位——不传送。

    二、硬件电路

    换色器硬件电路如图1所示:

    ULN2003A是内含7个达林顿管的驱动芯片,输入电压与TTL电平兼容。每个上达林顿管的集电极可吸收最大500mA的电流,耐压30V,因此可以用来驱动四相步进电机。

    74LS125三态门用于控制电机的工作方式。电机正常工作时,74LS125处于导通状态,两个电机可以同方向、同步转动;电机复位时,三态门阻断,只有一个电机可以转动。

    MAX1487用于驱动/接收RS-485信号。其接收器的输入阻抗只有1/4个单位负载,最多可连接128个通信设备。另外,MAX1487的传输信号变化沿没有限制斜率,所以最高数据传输可达2.5Mbps。

    三、X25045介绍

    在采用DMX512协议通信时,换色器的编号用于从总控制台发送的数据包中选择发给本设备的数据帧。正常工作时,编号数据不会掉电丢失,而且必要时编号还可修改。因此采用XICOR公司的串行E2PROM器件X25045对编号数据进行存储。

    X25045是带有串行E2PROM的CPU监控器。下面将各引脚功能描述如下:

    CS/WDI:片选输入/看门狗复位输入;

    SO:串行输出;

    WP:写保护输入;

    Vss:地;

    Vcc:电源;

    RESET:复位输出;

    SCK:同步时钟输入;

    SI:串行输入。

    X25045的状态寄存器描述器件的当前状态,各位意义如表1所列。

    表1

    7

    6

    5

    4

    3

    2

    1

    0

    0

    0

    WD1

    WD0

    BL1

    BL0

    WEL

    WIP

    其中,WD1、WD0是看门狗定时时间设置位;BL1、BL0是存储单元写保护区设置位;WEL是只读标志,1表明写使能开关打开;WIP也是只读标志,1代表芯片内部正处于写周期。电复位时,各位都被清零。

    X25045芯片功能包括以下4种:

    (1)上电复位控制。在对X25045通电时,ERSET引脚输出有效的复位信号,并保持至少200ms,使CPU有效复位。

    (2)电源电压监控。当检测到电源电压低于内部门槛电压VTRIP时,RESET输出复位信号,直至电源电压高于VTRIP并保持至少200ms,复位信号才被撤消。VTRIP的出厂值根据芯片型号不同共有5个级别的电压范围。对于需要电源电压精确监控的应用,用户可以搭建编程电路,对芯片内VTRIP电压进行微调。

    (3)看门狗定时器。芯片内部状态寄存器的WD1、WD0是看门狗定时设置位,通过状态寄存器写指令WRSR修改这2个标志位,就能在3种定时间隔中进行选择或关闭定时器。对看门狗的复位由CS输入电平的下降沿完成。表2是WD1、WD0组合的含义。

    表2

    WD1

    WD0

    看门狗定时值

    0

    0

    1.4s

    0

    1

    600ms

    1

    0

    200ms

    1

    1

    禁止看门狗工作

    (4)串行E2PROM。芯片内含512字节存储单元,10万次可靠写,数据保持时间100年。XICOR设计了3种保护方式防止误写。包括:WP写保护引脚,当引脚被拉低时,内部存储单元状态寄存器都禁止写入;存储区域写保护模式,通过对状态寄存器的BL1、BL0位的设置,可以选择对不同的存储区域进行写保护;在进行任何写操作前都必须打开写使能开关,而且在上电初始化写操作完成时,写使能开关自动关闭。显然,在几方面的保护之下,产生误写的可能性极小,表3是BL1、BL0组合的含义。

    表3 

    BL1

    BL0

    写保护的单元地址

    0

    0

    没有保护

    0

    1

    180H~1FFH

    1

    0

    100H~1FFH

    1

    1

    000H~1FFH

    对X25045的操作是通过4根口线CS、SCK、SI和SO进行同步串行通信来完成的。SCK是外部输入的同步时钟信号。在对芯片定改指令或数据时,时钟前沿将SI引脚信号输入;在读邮数据时,时钟后沿将数据位输出到SO引脚上。数据的输入/输出都是高位在先。

    芯片内部共有6条指令,如表4所列。

    表4

    命令名称

    命令格式

    内  容

    WREN

    0000 0110

    打开写使能开关

    WRDI

    0000 0100

    关闭写使能开关

    RDSR

    0000 0101

    读状态寄存器

    WRSR

    0000 0001

    写状态寄存器

    READ

    0000 A8011

    读存储单元

    WRITE

    0000 A8010

    写存储单元

    (1)WREN和WRDI是写使能开关的开/关指令。它们都是单字节指令。

    (2)RDSR和WRSR是状态寄存器的读/写指令。在从SI输入指令后,RDSR的执行结果,即状态寄存器内容须从SO读出;而WRSR需要紧接着输入修改数据。

    (3)READ和WEITE是存储单元的读/写指令。输入指令后(指令码第三代表存储单元地址的最高位),接着输入低八位地址,最后就可以连续读出或写入数据。其中,读指针和写指针的工作方式完全不同,读指针的全部8位用来计数,0FFH溢出后变成00H;写指针只用最低两位计数,XXXXXX11B溢出后变成XXXX XX00B,所以连续写的实际结果是在4个单元中反复写入。另外,由于E2PROM的写入时间长,所以在连续两条写指令之间应读取WIP状态,只有内部写周期结束时才可输入下一条写指令。

    AT89C2051内部没有SPI接口硬件,因此本系统利用了单片机的4根口线和软件模拟读写时序的方式与X25045通信。软件包在文末给出。

    四、软件原理

    系统程序包括主程序和串口通信断服务程序。主程序首先从X25045中取出本设备编号备用,然后进入循环。特环程序的主要任务包括:①检测换色标志,当换色标志有效时,则调用步进电机驱动程序控制转抽,将换色器切换到新颜色;②帧间隔1s延时,当时间到时,中断程序将复位串口接收程序;③定时复位X25045的看门狗。

    通信中断服务程序用于检测RS-485总线发送的复位信号和起始代码。当两者同时有效时开始对后续接收的数据帧进行帧计数。当计数值与设备编号相同时,说明当前帧是给本设备的数据,于是根据该数据设置换色标志,由主程序执行换色动作。

    X25045的通信接口软件:

    CS BIT P3.2

    SCK BIT P3.3

    SI BIT P3.4

    SO BIT P3.5

    (1)X25045数据写入程序

    功能:将缓冲区数据写入指定地址开始的单元。

    入口:F0、R3是E2PROM单元地址最高位低八位;R0是缓冲区首地址;R2是缓冲区长度。

    WRITEX:LCALL STAX ;指令启动

    MOV A,#06H ;输出WREN

    LCALL BYTE_OUT

    LCALL STAX ;下一指令启动

    MOV A,#02H ;输出WRITE

    MOV C,F0 ;插入单元地址最高位

    MOV ACC.3,C

    LCALL BYTE_OUT

    MOV A,R3 ;输出单元地址低八位

    LCALL BYTE_OUT

    BYWR:MOV A,@R0 ;从缓冲区取数输出

    LCALL BYTE_OUT

    INC R0 ;指针加1

    DJNZ R2,BYWR ;缓冲区未空则继续输出

    LCALL ENDX ;指令结束

    LCALL WIP_CHK ;等待WIP=0

    RET

    (2)X25045数据读出程序

    功能:把指定地址开始的单元数据读出并放入缓冲区

    入口:与写入程序相同。

    READX:LCALL STAX

    MOV A,#03H ;输出READ

    MOV C,F0

    MOV ACC.3,C

    LCALL BYTE_OUT

    MOV A,R3 ;输出低八位地址

    LCALL BYTE_OUT

    BYRD:LCALL BYTE_IN ;输入数据送入缓冲区

    MOV @R0,A

    INC R0 ;指针加1

    DJNZ R2,BYRD ;缓冲区未满则继续输入

    LCALL ENDX

    RET

    (3)X25045状态寄存器写入程序

    功能:对状态寄存器进行设置。

    入口:ACC是修改值。

    WRSR:LCALL STAX

    PUSH ACC

    MOV A,#06H ;输出WREN

    LCALL BYTE_OUT

    LCALL STAX

    MOV A,#01H ;输出WRSR

    LCALL BYTE_OUT

    POP ACC ;输出设置值

    LCALL BYTE_OUT

    LCALL ENDX

    LCALL WIP_CHK ;等待WIP=0

    RET

    (4)X25045状态寄存器读出程序

    功能:读出状态寄存器当前值。

    出口:ACC是当前值。

    RDSR:LCALL STAX

    MOV A,#05H

    LCALL BYTE_OUT

    LCALL BYTE_IN

    LCAL ENDX

    RET

    (5)其他子程序

    WIP_CHK:LCALL RDSR ;等待X25045结束内部写周期

    JB ACC.0,WIP_CHK

    RET

    STAX:SETB CS ;启动X25045指令

    NOP ;先拉高CS,再拉你SCK,最后拉低CS

    CLR SCK

    NOP

    CLR CS

    NOP

    RET

    ENDX:CLR SCK ;结束X25045指令

    SETB CS ;先拉低SCK后拉高CS

    NOP

    NOP

    RET

    BYTE_OUT:MOV R4,#08H ;向X25045写入一字节数据

    BOUT1:CLR SCK

    RLC A

    MOV SI,C

    SETB SCK

    NOP

    NOP

    DJNZ R4,BOUT1

    RET

    BYTE_IN:MOV R4,#08H ;从X25045读出一字节数据

    BIN1:CLR SCK

    MOV C,SO

    RLC A

    SETB SCK

    NOP

    NOP

    DJNZ R4,BIN1

    RET

    RST_DOG:SETB CS ;复位看门狗定时器

    NOP

    CLR CS

    NOP

    SETB CS

    RET





    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明网站地图 | 名站导航 | 管理登录 | 
    本站资源部分来自互联网,如侵犯您的权利,我们将予以删除  鲁ICP备08006092号
    本站欢迎同类网站做友情链接,QQ留言
    中国IEEE 中国电气电子工程师网 版权所有