⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 txdali.lst

📁 DALI系统主控制器的软件代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
                      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 + -