📄 cmd4.lst
字号:
00223 subwf FILE1, DIR
00224 endm
00225 ; *****************************************************************************
00226
00227 ; *** Branch if Carry *********************************************************
00228 brc macro WHERE
00229 btfsc STATUS, C
00230 goto WHERE
00231 endm
00232 ; *****************************************************************************
00233
00234 ; *** Branch if No Carry ******************************************************
00235 brnc macro WHERE
00236 btfss STATUS, C
00237 goto WHERE
00238 endm
00239 ; *****************************************************************************
00240
00241 ; *** OR file w/ file *********************************************************
00242 iorff macro FILE1, FILE2, DIR
00243 movf FILE2, W
00244 iorwf FILE1, DIR
00245 endm
00246 ; *****************************************************************************
00247
00248
00004 #include user_mac.inc ; Bring in application specific instructions
00001 #define dvron bsf PORTB, 3
00002 #define dvroff bcf PORTB, 3
00003
00004
00005 ; *****************************************************************************
00006 txdali macro MYREGH, MYREGL
00007 movff MYREGH, DALI_H
00008 movff MYREGL, DALI_L
00009 call SendData
00010 endm
MPASM 5.20 CMD4.ASM 11-3-2008 15:53:44 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00011 ; *****************************************************************************
00012
00013
00014 ; *****************************************************************************
00015 rxdali macro
00016 call RecvData
00017 endm
00018 ; *****************************************************************************
00019
00020
00021 ; *****************************************************************************
00022 tx macro MYREG
00023 movff MYREG, TXREG
00024 endm
00025 ; *****************************************************************************
00026
00027
00028 ; *****************************************************************************
00029 delay macro MYLIT
00030 movlf high MYLIT, TMR1H
00031 movlf low MYLIT, TMR1L
00032 call DelayCyclesT1
00033 endm
00034 ; *****************************************************************************
00035
00036
00037 ; *****************************************************************************
00038 delayf macro MYFILE_H, MYFILE_L
00039 movff MYFILE_H, TMR1H
00040 movff MYFILE_L, TMR1L
00041 call DelayCyclesT1
00042 endm
00043 ; *****************************************************************************
00044
00045
00046 ; *** Set DALI Bus High *******************************************************
00047 outhi macro
00048 bcf PORTB, 4 ; Turn off clamp
00049 goto $ + 1
00050 bsf PORTB, 5 ; Turn on output
00051 ; goto $ + 1
00052 ; goto $ + 1
00053 endm
00054 ; *****************************************************************************
00055
00056
00057 ; *** Set DALI Bus Low ********************************************************
00058 outlo macro
00059 bcf PORTB, 5 ; Turn off output driver
00060 goto $ + 1 ; Wait a little for gate discharge
00061 bsf PORTB, 4 ; Turn on clamp
00062 ; goto $ + 1
00063 endm
MPASM 5.20 CMD4.ASM 11-3-2008 15:53:44 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00064 ; *****************************************************************************
00065
00066
00067 ; *** Emergency Shutdown ******************************************************
00068 esdwn macro WHERE
00069 bcf PORTB, 3 ; Turn off output driver
00070 goto WHERE
00071 endm
00072 ; *****************************************************************************
00073
00074
00075 ; *****************************************************************************
00076 wrtee macro MYREG
00077 banksel EEADR
00078 movwf EEDATA ; Init the first values
00079 movlw TX_EDGE_DELAY_H
00080 sublw MYREG
00081 movwf EEADR
00082 call WriteEEData
00083 endm
00084 ; *****************************************************************************
00085
00086
00005 ; *****************************************************************************
00006
00007
00008 ; *****************************************************************************
0000 00009 EXTERN SendData
0000 00010 EXTERN RecvData
0000 00011 EXTERN DelayCyclesT1
00012
0000 00013 EXTERN Main
0000 00014 EXTERN WREG1, DALI_H, DALI_L
0000 00015 EXTERN MILLISECONDS
0000 00016 EXTERN BRIDGE_STATUS
00017
0000 00018 EXTERN WREG2, WREG3, WREG4, WREG5, WREG6
0000 00019 EXTERN SEARCH_H, SEARCH_M, SEARCH_L
00020 ; *****************************************************************************
00021
00022
00023 ; *****************************************************************************
00024 SETUP_DALI CODE
00025 ; *****************************************************************************
0000 00026 AutoFind
0000 1900 00027 btfsc BRIDGE_STATUS, 2 ; Prevent transmission if overload
0001 2??? 00028 goto Main
00029
00030 movlf 0x80, SEARCH_H
0002 3080 M movlw 0x80
0003 00?? M movwf SEARCH_H
0004 01?? 00031 clrf SEARCH_M
0005 01?? 00032 clrf SEARCH_L
MPASM 5.20 CMD4.ASM 11-3-2008 15:53:44 PAGE 8
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00033
0006 01?? 00034 clrf WREG5
0007 01?? 00035 clrf WREG4
0008 01?? 00036 clrf WREG3
00037
00038 Lp1 movlf b'10110001', DALI_H ; Transmit search address
0009 30B1 M movlw b'10110001'
000A 00?? M movwf DALI_H
00039 iorff WREG5, SEARCH_H, W
000B 08?? M movf SEARCH_H, W
000C 04?? M iorwf WREG5, W
000D 00?? 00040 movwf DALI_L
00041 ; txdali DALI_H, DALI_L
00042 ; delay 0xD8EF
00043
00044 movlf b'10110011', DALI_H
000E 30B3 M movlw b'10110011'
000F 00?? M movwf DALI_H
00045 iorff WREG4, SEARCH_M, W
0010 08?? M movf SEARCH_M, W
0011 04?? M iorwf WREG4, W
0012 00?? 00046 movwf DALI_L
00047 ; txdali DALI_H, DALI_L
00048 ; delay 0xD8EF
00049
00050 movlf b'10110111', DALI_H
0013 30B7 M movlw b'10110111'
0014 00?? M movwf DALI_H
00051 iorff WREG3, SEARCH_L, W
0015 08?? M movf SEARCH_L, W
0016 04?? M iorwf WREG3, W
0017 00?? 00052 movwf DALI_L
00053 ; txdali DALI_H, DALI_L
00054 ; delay 0xD8EF
00055
00056 movlf b'10101001', DALI_H ; Compare search with random
0018 30A9 M movlw b'10101001'
0019 00?? M movwf DALI_H
001A 01?? 00057 clrf DALI_L
00058 ; txdali DALI_H, DALI_L
00059
00060 ; rxdali ; Receive data from DALI bus
00061
001B 08?? 00062 movf DALI_L, W
00063 brnz Jp3 ; Jump if Search => Rand
001C 1D03 M skifz
001D 2??? M goto Jp3
00064
001E 1003 00065 bcf STATUS, C ; if Search < Rand
001F 0D?? 00066 rlf SEARCH_L, F
0020 0D?? 00067 rlf SEARCH_M, F
0021 0D?? 00068 rlf SEARCH_H, F
00069
MPASM 5.20 CMD4.ASM 11-3-2008 15:53:44 PAGE 9
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0022 2??? 00070 goto Lp1
00071
0023 1003 00072 Jp3 bcf STATUS, C ; If Search => Rand
0024 0C?? 00073 rrf SEARCH_H, F
0025 0C?? 00074 rrf SEARCH_M, F
0026 0C?? 00075 rrf SEARCH_L, F
00076
00077 iorff WREG5, SEARCH_H, F
0027 08?? M movf SEARCH_H, W
0028 04?? M iorwf WREG5, F
00078 iorff WREG4, SEARCH_M, F
0029 08?? M movf SEARCH_M, W
002A 04?? M iorwf WREG4, F
00079 iorff WREG3, SEARCH_L, F
002B 08?? M movf SEARCH_L, W
002C 04?? M iorwf WREG3, F
00080
002D 01?? 00081 clrf SEARCH_H
002E 01?? 00082 clrf SEARCH_M
00083 movlf 0x01, SEARCH_L
002F 3001 M movlw 0x01
0030 00?? M movwf SEARCH_L
00084
0031 2??? 00085 goto Lp1
00086
00087 Jp4 movff WREG5, SEARCH_H
0032 08?? M movf WREG5, W
0033 00?? M movwf SEARCH_H
00088 movff WREG4, SEARCH_M
0034 08?? M movf WREG4, W
0035 00?? M movwf SEARCH_M
00089 movff WREG3, SEARCH_L
0036 08?? M movf WREG3, W
0037 00?? M movwf SEARCH_L
00090
0038 0008 00091 return
00092 ; *****************************************************************************
00093
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -