📄 txdali.lst
字号:
00003
00004
00005 ; *****************************************************************************
00006 txdali macro MYREGH, MYREGL
00007 movff MYREGH, DALI_H
00008 movff MYREGL, DALI_L
MPASM 5.20 TXDALI.ASM 11-3-2008 15:53:53 PAGE 6
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00009 call SendData
00010 endm
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
MPASM 5.20 TXDALI.ASM 11-3-2008 15:53:53 PAGE 7
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00062 ; goto $ + 1
00063 endm
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
00007 ; *****************************************************************************
00008
00009
00010 ; *****************************************************************************
0000 00011 EXTERN DALI_H, DALI_L
0000 00012 EXTERN DelayCyclesT1
0000 00013 EXTERN TX_EDGE_DELAY_H, TX_EDGE_DELAY_L, TX_STOP_DELAY_H, TX_STOP_DELAY_L
0000 00014 EXTERN TX_REG_DELAY_H, TX_REG_DELAY_L
00015 ; *****************************************************************************
00016
00017
00018 ; *****************************************************************************
00019 TX_DALI CODE
0000 00020 SendData
0000 1F1F 00021 btfss CMCON, C1OUT ; Don't transmit if overload
0001 3401 00022 retlw 0x01
00023
0002 138B 00024 bcf INTCON, GIE ; Disable Interrupts
00025
00026 movlf 0x37, CMCON ; Release the regulator
0003 3037 M movlw 0x37
0004 009F M movwf CMCON
0005 1205 00027 bcf PORTA, 4
00028
0006 2??? 00029 call XmitOne ; Send Start Bit
00030
0007 1B80 00031 btfsc DALI_H, 7
0008 2??? 00032 call XmitOne
MPASM 5.20 TXDALI.ASM 11-3-2008 15:53:53 PAGE 8
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
0009 1F80 00033 btfss DALI_H, 7
000A 2??? 00034 call XmitZero
000B 1B00 00035 btfsc DALI_H, 6
000C 2??? 00036 call XmitOne
000D 1F00 00037 btfss DALI_H, 6
000E 2??? 00038 call XmitZero
000F 1A80 00039 btfsc DALI_H, 5
0010 2??? 00040 call XmitOne
0011 1E80 00041 btfss DALI_H, 5
0012 2??? 00042 call XmitZero
0013 1A00 00043 btfsc DALI_H, 4
0014 2??? 00044 call XmitOne
0015 1E00 00045 btfss DALI_H, 4
0016 2??? 00046 call XmitZero
0017 1980 00047 btfsc DALI_H, 3
0018 2??? 00048 call XmitOne
0019 1D80 00049 btfss DALI_H, 3
001A 2??? 00050 call XmitZero
001B 1900 00051 btfsc DALI_H, 2
001C 2??? 00052 call XmitOne
001D 1D00 00053 btfss DALI_H, 2
001E 2??? 00054 call XmitZero
001F 1880 00055 btfsc DALI_H, 1
0020 2??? 00056 call XmitOne
0021 1C80 00057 btfss DALI_H, 1
0022 2??? 00058 call XmitZero
0023 1800 00059 btfsc DALI_H, 0
0024 2??? 00060 call XmitOne
0025 1C00 00061 btfss DALI_H, 0
0026 2??? 00062 call XmitZero
00063
0027 1B80 00064 btfsc DALI_L, 7
0028 2??? 00065 call XmitOne
0029 1F80 00066 btfss DALI_L, 7
002A 2??? 00067 call XmitZero
002B 1B00 00068 btfsc DALI_L, 6
002C 2??? 00069 call XmitOne
002D 1F00 00070 btfss DALI_L, 6
002E 2??? 00071 call XmitZero
002F 1A80 00072 btfsc DALI_L, 5
0030 2??? 00073 call XmitOne
0031 1E80 00074 btfss DALI_L, 5
0032 2??? 00075 call XmitZero
0033 1A00 00076 btfsc DALI_L, 4
0034 2??? 00077 call XmitOne
0035 1E00 00078 btfss DALI_L, 4
0036 2??? 00079 call XmitZero
0037 1980 00080 btfsc DALI_L, 3
0038 2??? 00081 call XmitOne
0039 1D80 00082 btfss DALI_L, 3
003A 2??? 00083 call XmitZero
003B 1900 00084 btfsc DALI_L, 2
003C 2??? 00085 call XmitOne
MPASM 5.20 TXDALI.ASM 11-3-2008 15:53:53 PAGE 9
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
003D 1D00 00086 btfss DALI_L, 2
003E 2??? 00087 call XmitZero
003F 1880 00088 btfsc DALI_L, 1
0040 2??? 00089 call XmitOne
0041 1C80 00090 btfss DALI_L, 1
0042 2??? 00091 call XmitZero
0043 1800 00092 btfsc DALI_L, 0
0044 2??? 00093 call XmitOne
0045 1C00 00094 btfss DALI_L, 0
0046 2??? 00095 call XmitZero
00096
00097 outhi ; Send stop bits
0047 1206 M bcf PORTB, 4 ; Turn off clamp
0048 2??? M goto $ + 1
0049 1686 M bsf PORTB, 5 ; Turn on output
M ; goto $ + 1
M ; goto $ + 1
00098 delayf TX_STOP_DELAY_H, TX_STOP_DELAY_L
M movff TX_STOP_DELAY_H, TMR1H
004A 08?? M movf TX_STOP_DELAY_H, W
004B 008F M movwf TMR1H
M movff TX_STOP_DELAY_L, TMR1L
004C 08?? M movf TX_STOP_DELAY_L, W
004D 008E M movwf TMR1L
004E 2??? M call DelayCyclesT1
00099 ; delay 0xF9E3 ; idle for 4 * 416us - 100us
00100
004F 1605 00101 bsf PORTA, 4 ; Engage the regulator
00102 movlf 0x36, CMCON
0050 3036 M movlw 0x36
0051 009F M movwf CMCON
00103
00104 delayf TX_REG_DELAY_H, TX_REG_DELAY_L
M movff TX_REG_DELAY_H, TMR1H
0052 08?? M movf TX_REG_DELAY_H, W
0053 008F M movwf TMR1H
M movff TX_REG_DELAY_L, TMR1L
0054 08?? M movf TX_REG_DELAY_L, W
0055 008E M movwf TMR1L
0056 2??? M call DelayCyclesT1
00105 ; delay 0xFF9B ; Wait for regulator to come up, 100us
00106
0057 1206 00107 bcf PORTB, 4 ; Disable driving output
0058 1286 00108 bcf PORTB, 5
00109
0059 178B 00110 bsf INTCON, GIE ; Enable interrupts
00111
005A 3400 00112 retlw 0x00
00113
0000 00114 GLOBAL SendData
00115 ; *****************************************************************************
00116
00117
MPASM 5.20 TXDALI.ASM 11-3-2008 15:53:53 PAGE 10
LOC OBJECT CODE LINE SOURCE TEXT
VALUE
00118 ; *****************************************************************************
005B 00119 XmitOne
00120 outlo
005B 1286 M bcf PORTB, 5 ; Turn off output driver
005C 2??? M goto $ + 1 ; Wait a little for gate discharge
005D 1606 M bsf PORTB, 4 ; Turn on clamp
M ; goto $ + 1
00121 ; delay 0xFE76
00122 delayf TX_EDGE_DELAY_H, TX_EDGE_DELAY_L
M movff TX_EDGE_DELAY_H, TMR1H
005E 08?? M movf TX_EDGE_DELAY_H, W
005F 008F M movwf TMR1H
M movff TX_EDGE_DELAY_L, TMR1L
0060 08?? M movf TX_EDGE_DELAY_L, W
0061 008E M movwf TMR1L
0062 2??? M call DelayCyclesT1
00123 outhi
0063 1206 M bcf PORTB, 4 ; Turn off clamp
0064 2??? M goto $ + 1
0065 1686 M bsf PORTB, 5 ; Turn on output
M ; goto $ + 1
M ; goto $ + 1
00124 ; delay 0xFE76
00125 delayf TX_EDGE_DELAY_H, TX_EDGE_DELAY_L
M movff TX_EDGE_DELAY_H, TMR1H
0066 08?? M movf TX_EDGE_DELAY_H, W
0067 008F M movwf TMR1H
M movff TX_EDGE_DELAY_L, TMR1L
0068 08?? M movf TX_EDGE_DELAY_L, W
0069 008E M movwf TMR1L
006A 2??? M call DelayCyclesT1
006B 0008 00126 return
00127 ; *****************************************************************************
00128
00129
00130 ; *****************************************************************************
006C 00131 XmitZero
00132 outhi
006C 1206 M bcf PORTB, 4 ; Turn off clamp
006D 2??? M goto $ + 1
006E 1686 M bsf PORTB, 5 ; Turn on output
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -