X25045在舞台灯光换色器设计中的应用

作者: 佚名   发布日期:2006-02-12 10:40   查看数:25   出自:互联网

四、软件原理

系统程序包括主程序和串口通信断服务程序。主程序首先从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

第1页第2页
相关文章(最新&最热)