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

📄 timecnt.lst

📁 DALI系统主控制器的软件代码
💻 LST
📖 第 1 页 / 共 3 页
字号:
                      00196         endm
                      00197 ; *****************************************************************************
                      00198 
                      00199 ; *****************************************************************************
                      00200 movff   macro   HERE, THERE
                      00201         movf    HERE, W
                      00202         movwf   THERE
                      00203         endm
                      00204 ; *****************************************************************************
                      00205 
                      00206 ; *****************************************************************************
                      00207 movlf   macro   DAT, THERE
                      00208         movlw   DAT
                      00209         movwf   THERE
                      00210         endm
                      00211 ; *****************************************************************************
                      00212 
                      00213 ; *** Add Literal to File *****************************************************
                      00214 addlf   macro   LIT1, FILE1, DIR
                      00215         movlw   LIT1
                      00216         addwf   FILE1, DIR
                      00217         endm    
                      00218 ; *****************************************************************************
                      00219 
                      00220 ; *** Subtract Literal from File **********************************************
                      00221 sublf   macro   LIT1, FILE1, DIR
                      00222         movlw   LIT1
                      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 
MPASM  5.20                       TIMECNT.ASM   11-3-2008  15:53:52         PAGE  6

Event Timer ...
LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00248 
                      00016 #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
                      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
MPASM  5.20                       TIMECNT.ASM   11-3-2008  15:53:52         PAGE  7

Event Timer ...
LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      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
                      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 
                      00017 ; *****************************************************************************
                      00018 
                      00019 
                      00020 ; *****************************************************************************
  0000                00021         EXTERN  MILLISECONDS, OVER_LOAD_CNT, COUNTER_L, BRIDGE_STATUS
  0000                00022         EXTERN  STATUS_COPY, W_COPY
                      00023 ; *****************************************************************************
                      00024 
                      00025 
                      00026 ; *****************************************************************************
                      00027 TIME_COUNT      CODE    
                      00028 ; *****************************************************************************
0000                  00029 TimeCounter
0000   1283 1303      00030         banksel PORTA                           ; *** Select Bank 0 ***
                      00031         
                      00032         sublf   0xC6, TMR0, F                   ; Prime for 200us overflow (4MHz clock)
0002   30C6               M         movlw   0xC6
0003   0281               M         subwf   TMR0,  F
MPASM  5.20                       TIMECNT.ASM   11-3-2008  15:53:52         PAGE  8

Event Timer ...
LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00033         
0004   0A??           00034         incf    COUNTER_L, F                    ; Count up to 1ms
                      00035         cflbis  COUNTER_L, 0x05, Jp1    
0005   3005               M         movlw   0x05
0006   02??               M         subwf   COUNTER_L, W
0007   1C03               M         btfss   STATUS, C
0008   2???               M         goto    Jp1
0009   01??           00036         clrf    COUNTER_L                       ; Reset counter
                      00037 
000A   0A??           00038         incf    MILLISECONDS, F                 ; Update the event timer
                      00039 
                      00040         brset   BRIDGE_STATUS, 2, Jp1           ; Skip if in overload shutdown
000B   1900               M         btfsc   BRIDGE_STATUS, 2
000C   2???               M         goto    Jp1
                      00041 
000D   1F1F           00042         btfss   CMCON, C1OUT                    ; Overload counter
000E   0A??           00043         incf    OVER_LOAD_CNT, F         
000F   1B1F           00044         btfsc   CMCON, C1OUT
0010   03??           00045         decf    OVER_LOAD_CNT, F
                      00046 
0011   08??           00047         movf    OVER_LOAD_CNT, W                ; Hold above 0
0012   1903           00048         btfsc   STATUS, Z
0013   1400           00049         bsf     OVER_LOAD_CNT, 0
                      00050 
0014   09??           00051         comf    OVER_LOAD_CNT, W                ; Determine if OL for more than 255ms
0015   1903           00052         btfsc   STATUS, Z
0016   2???           00053         goto    OverLoad
                      00054 
0017   110B           00055 Jp1     bcf     INTCON, T0IF                    ; Clear the int flag
                      00056 
0018   0E??           00057         swapf   STATUS_COPY, W                  ; Restore data
0019   0083           00058         movwf   STATUS          
001A   0E??           00059         swapf   W_COPY, F
001B   0E??           00060         swapf   W_COPY, W
                      00061 
001C   0009           00062         retfie                                  ; End of ISR
                      00063 
001D                  00064 OverLoad
001D   1500           00065         bsf     BRIDGE_STATUS, 2
                      00066 
                      00067         movlf   0x37, CMCON                     ; Release the regulator
001E   3037               M         movlw   0x37
001F   009F               M         movwf   CMCON
0020   1205           00068         bcf     PORTA, 4
                      00069 
0021   110B           00070         bcf     INTCON, T0IF                    ; Clear the int flag
                      00071 
0022   0E??           00072         swapf   STATUS_COPY, W                  ; Restore data
0023   0083           00073         movwf   STATUS          
0024   0E??           00074         swapf   W_COPY, F
0025   0E??           00075         swapf   W_COPY, W
                      00076 
0026   0009           00077         retfie
MPASM  5.20                       TIMECNT.ASM   11-3-2008  15:53:52         PAGE  9

Event Timer ...
LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00078 
  0000                00079         GLOBAL  TimeCounter
                      00080 ; *****************************************************************************
                      00081 
                      00082         END
MPASM  5.20                       TIMECNT.ASM   11-3-2008  15:53:52         PAGE 10

Event Timer ...

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -