当前位置: > 专业技术 >

专业技术

DMX512灯光解码控制系统的开发与改造(6)

发布时间:2012-10-08 文章来源:常熟市广播电视总台电视中心

MCU1接收DMX信号后,从设置的地址码开始读取需要的32路数据,前16路送往MCU2,后16路送往MCU3,解码流程见图10
10   MCU1解码流程图
部分汇编代码如下:
    DMX_Break   BIT     020H.0  ;定义DMX有效数据开始标志
    DMX_Start   BIT     021H.0  ;定义从DIP开关定义的地址开始接收DMX数据标志
    DMX_Add8_L  DATA        022H        ;定义低8位DMX地址码 ok
    DMX_Add1_H  BIT     023H.0  ;定义高1位DMX地址码
    P4          DATA        0E8H        ;定义P4口
    ORG     0000H
    LJMP    START
    ORG     0003H
    LJMP    INT0_Chuanshu
    ORG     0023H           ;RI/TI中断向量
    LJMP    UART
    ORG     0100H           ;程序从100H开始,避开中断向量区
START:
    CLR     DMX_Break       ;置零 清DMX有效数据接收开始标志
    CLR     DMX_Start   ;置零 从DIP开关定义的地址开始接收DMX数据标志
    MOV     P0,#0FFH        ;将P0设置为输入模式
    MOV     A,P0            ;读取P0口8位DMX地址码
    CPL     A           ;ACC取反
    MOV     DMX_Add8_L,A    ;将ACC赋值于dmx_add8_L
    SETB        P3.7            ;将P3.7设置为输入模式
    JNB     P3.7,DMX9_0     ;P3.7为0(DIP9 ON),跳转至DMX9_0
    CLR     DMX_Add1_H  ;P3.7为1(DIP9 OFF),DMX_Add1_H=0
    SJMP    DMX             ;执行跳转至DMX继续
DMX9_0:                 ;判断0-8都为0进入测试模式
    SETB    DMX_Add1_H      ;P3.7为0,DIP9 ON,DMX_Add1_H=1
DMX:                           
    CLR     P3.5            ;-->PWM1-16 P4.1不能产生INT0中断
    CLR     P3.4            ;-->PWM1-16 P4.0数据未准备好标志
    SETB        P1.3            ;-->PWM17-32 P4.2INT3
    CLR     P1.6            ;-->PWM17-32 P4.0数据未准备好标志
    SETB        P3.2            ;INT0输入模式
    MOV     R4,#0FFH        ;LED-Dmx指示灯延时数据
    MOV     R5,#0FFH        ;LED-Run指示灯延时数据
    MOV     R6,#0AH     ;LED-Run指示灯延时数据
    MOV     SP,#0E1H        ;重设堆栈指针于80H
MOV          SCON,#98H     ;设置为串口模式2
MOV            PCON,#00H     ;设置波特率为250Kb
MOV                    IE,#90H             ;允许接收中断
……
〖 浏览次数: