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

📄 hcs635.lst

📁 source for the microchip transponder for LF 125KHz.
💻 LST
📖 第 1 页 / 共 5 页
字号:
0000                  00346         ORG     000H
                      00347 
                      00348 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                      00349 ;
                      00350 ; FUNCTION      : RESET ()                              
                      00351 ;
                      00352 ; DESCRIPTION   : PROGRAM RESET ROUTINE
                      00353 ;
                      00354 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
0000                  00355 RESET
0000   3007           00356         MOVLW   b'00000111'             ; disable analog sections-->move to all digitial
0001   0099           00357         movwf   CMCON0  
0002   0185           00358         clrf    PORTA
0003   1407           00359         bsf     LED                     ; turn off LED
0004   018E           00360         clrf    TMR1L
0005   018F           00361         clrf    TMR1H
0006   3031           00362         movlw   b'00110001'
0007   0090           00363         movwf   T1CON 
0008   1683           00364         bsf     STATUS,RP0              ; bank0--> RP0 = RP1 = 0
0009   303F           00365         movlw   RA_TRIS                 ; Setup port A
000A   0085           00366         movwf   TRISA                   ; 
                      00367 IFNDEF P12F635
000B   300C           00368         movlw   RC_TRIS                 ; Setup port C
000C   0087           00369         movwf   TRISC                   ;
                      00370 ENDIF
000D   3061           00371         movlw   b'01100001'             ; internal 4 MHz
000E   008F           00372         movwf   OSCCON
                      00373 ;       movlw   b'00000000'             
                      00374 ;       movwf   OSCTUNE
000F   3046           00375         MOVLW   b'01000110'             ; SET UP FOR TMR0'S PRESCALER VALUE TO 128
                      00376                                         ; (RAPU, bit7) = 0 to enable weak pull-up for 3 also 
0010   0081           00377         MOVWF   OPTION_REG              ; this is used for Delay loop only
0011   303F           00378         movlw   b'00111111'             ; 
0012   0097           00379         movwf   WDA                     ; pull-up selection register
                      00380 IFDEF pullup
0013   303F           00381         movlw   b'00111111'             ; 
                      00382 ELSE
                      00383         movlw   b'00000000'
                      00384 ENDIF
0014   0095           00385         movwf   WPUDA                   ; pull-up direction register
0015   30FF           00386         movlw   b'11111111'             ; 
0016   0096           00387         movwf   IOCA                    ; enable all RA port individual pin interupt 
0017   1283           00388         bcf     STATUS,RP0
0018   30AB           00389         movlw   0xAB                    ; initialse user variables
0019   00F1           00390         movwf   UserDefined
001A   30CD           00391         movlw   0xCD
001B   00F2           00392         movwf   UserDefined+1
                      00393 
                      00394 IFDEF P16F639
MPASM  5.16                        HCS635.ASM   4-16-2008  14:39:21         PAGE 10


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

001C                  00395 Init_AFE
001C   01A0           00396         clrf    AFEflags
001D   1487           00397         bsf     AFECS                   ; CS pin high
001E   1020           00398         bcf     AFEOK                   ; assume AFE will not initialise
001F   2376           00399         call    Set_up_AFE_Registers
0020   3800           00400         iorlw   0x00
0021   1903           00401         btfsc   STATUS,Z                ; any registers fail to initialse
0022   1420           00402         bsf     AFEOK                   ; AFE initialised OK
                      00403 ;       call    Dump_AFE_Registers
                      00404 ;       iorlw   0x00
                      00405 ;       btfsc   STATUS,Z                ; any registers fail to initialse
                      00406 ;       bsf     AFEOK                   ; AFE initialised OK
0023   1683           00407         bsf     STATUS,RP0
0024   0807           00408         movfw   TRISC
0025   380C           00409         iorlw   b'00001100'             ; Reset LFDATA,ALERT as input.  CS as output 
0026   0087           00410         movwf   TRISC                   ; 
0027   1283           00411         bcf     STATUS,RP0
0028   1487           00412         bsf     AFECS
0029   1107           00413         bcf     SCK             
002A   1487           00414         bsf     AFECS                   ; make sure cs pin high
                      00415 ENDIF
002B                  00416 NEWBUTTON:
                      00417 
                      00418 ; ****** LOAD SYSTEM CONIGURATION FROM EEPROM *********************************
                      00419 
002B   2A4C           00420         GOTO    DEBOUNCER       ; DEBOUNCE BUTTONS AND READ EEPROM OPTIONS
                      00421 
                      00422 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
                      00423 ;
                      00424 ; FUNCTION      : RFOUT_OFF()
                      00425 ;
                      00426 ; DESCRIPTION   : SWITCH RF OUT OFF AND CONTINUE TO WAIT FOR ONE RF Te
                      00427 ;
                      00428 ; PAGE          : 0
                      00429 ;
                      00430 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
002C                  00431 RFOUT_OFF
002C   0AED           00432         INCF    COMP,F          ; SHORTEN PULSE WIDTH
002D                  00433 RFOUT_OFF3
002D   1287           00434         BCF     RFOUT   ; SET RF OUTPUT LOW
002E   2833           00435         GOTO    TE_DELAY        ; DO TE DELAY TIME
                      00436 
                      00437 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
                      00438 ;
                      00439 ; FUNCTION      : RFOUT_ON()
                      00440 ;
                      00441 ; DESCRIPTION   : SWITCH RF OUT ON AND CONTINUE TO WAIT FOR ONE RF Te
                      00442 ;
                      00443 ; PAGE          : 0
                      00444 ;
                      00445 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
002F                  00446 RFOUT_ON
002F   0AED           00447         INCF    COMP,F          ; SHORTEN PULSE WIDTH
MPASM  5.16                        HCS635.ASM   4-16-2008  14:39:21         PAGE 11


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0030                  00448 RFOUT_ON3
0030   1687           00449         BSF     RFOUT   ; SET RF OUTPUT HIGH
0031   2833           00450         GOTO    TE_DELAY        ; DO TE DELAY TIME
                      00451 
                      00452 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
                      00453 ;
                      00454 ; FUNCTION      : TE_DELAY ()
                      00455 ;                 
                      00456 ; PARAMETER     : CNT2 EQUAL TO NUMBER OF 5US STEPS TO REMOVE FROM DELAY
                      00457 ;
                      00458 ; DESCRIPTION   : WAIT FOR 1 TE CYCLE AND FLASH LED AS REQUIRED
                      00459 ;
                      00460 ; RETURN        : SET ZERO FLAG IF ALL BUTTON RELEASED
                      00461 ;
                      00462 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
0032                  00463 TE_DELAYL
0032   0AED           00464         INCF    COMP,F          ; REMOVE 4 US COMPENSATION TIME
0033                  00465 TE_DELAY
0033   2070           00466         CALL    TST_CLK         ; UPDATE 50MS CLOCK
0034                  00467 TE_DEL03
0034   205A           00468         CALL    TST_LED         ; CHANGE LED PIN IF REQUIRED, RETURNS BAUD RATE AND C=0
0035                  00469 TE_DEL05
0035   0000           00470         nop
0036   0000           00471         nop
0037   00DF           00472         MOVWF   CNT2            ; STORE BAUD RATE
0038   1A60           00473         BTFSC   BSL0            ; CHECK IF BSL0 BIT IS SET
0039   07DF           00474         ADDWF   CNT2,F          ; ... YES, THEN MULTIPLY BY 2
                      00475 
003A   300E           00476         MOVLW   D'14'           ; MINIMUM COMPENSATION
003B   076D           00477         ADDWF   COMP,W          ; ADD COMPENSATION FOR CALCULATION OVERHEAD
003C   02DF           00478         SUBWF   CNT2,F          ; SHORTEN BIT WIDTH BY COMPENSATION AMOUNT
                      00479 
003D   1C03           00480         BTFSS   STATUS,C        ; CHECK IF COMPENSATION IS MORE THAN LOOP COUNTER
003E   3400           00481         RETLW   0H              ; ... YES, THEN SKIP TE DELAY LOOP
003F   01ED           00482         CLRF    COMP            ; CLEAR FOR NEXT BIT
0040                  00483 TE_DEL10
0040   0000           00484         nop
0041   0000           00485         nop
0042   0BDF           00486         DECFSZ  CNT2,F          ; [2/1] MORE LOOPS TO DO?
0043   2840           00487         GOTO    TE_DEL10        ; [0/2] ... YES
                      00488 
                      00489 ; ***** CHECK BUTTONS ******************
                      00490 
0044                  00491 TE_DEL30
                      00492 IFDEF pullup
0044   0905           00493         comf    PORTA,w
                      00494 ELSE
                      00495         MOVFW   PORTA           ; [1/1] READ GENERAL I/O PORT
                      00496 ENDIF
0045   0563           00497         ANDWF   B_MASK,W        ; [1/1] MASK OUT THE BUTTON BITS
0046   00EF           00498         movwf   ButtonImage
0047   1903           00499         BTFSC   STATUS,Z        ; [2/1] CHECK ALL BUTTONS RELEASED ??
0048   0BEB           00500         DECFSZ  CSR5,F          ; DEBOUNCE FALLING BUTTON EDGE
MPASM  5.16                        HCS635.ASM   4-16-2008  14:39:21         PAGE 12


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0049   284B           00501         GOTO    TE_DEL90
004A   14D8           00502         BSF     FLAGS,BUT_REL   ; [0/1] ... YES, THEN SET BUTTON RELEASED BIT
004B                  00503 TE_DEL90
004B   095A           00504         COMF    BUTTON,W        ; [1] INVERT BUTTON CODE
004C   056F           00505         ANDWF   ButtonImage,W   ; [1] AND WITH WHATS ON THE PORT
004D   18D8           00506         BTFSC   FLAGS,BUT_REL   ; [2/1] CHECK IF BUTTON WAS RELEASED
                      00507 IFDEF pullup
004E   0905           00508         comf    PORTA,w
                      00509 ELSE
                      00510         MOVFW   PORTA           ; [1/1] READ GENERAL I/O PORT
                      00511 ENDIF
004F   0563           00512         ANDWF   B_MASK,W        ; [1/1] MASK OUT THE BUTTON BITS
0050   00EF           00513         movwf   ButtonImage
0051   1903           00514         BTFSC   STATUS,Z        ; IF NO BUTTON WAS ADDED
0052   3400           00515         RETLW   0H              ; ... THEN RETURN
0053   065A           00516         XORWF   BUTTON,W        ; COMPARE THE NEW BUTTON PRESSED TO PREVIOUS ONE
0054   0563           00517         ANDWF   B_MASK,W        ; ELIMINATE EXTRA BITS
0055   1903           00518         BTFSC   STATUS,Z        ; IF IT WAS THE SAME
0056   17DA           00519         BSF     BUTTON,7        ; ... THEN SET THE DOUBLE BUTTON PRESS FLAG
0057   1D03           00520         BTFSS   STATUS,Z        ; OTHERWISE
0058   282B           00521         goto    NEWBUTTON
                      00522 
                      00523 ;T      GOTO    MAIN            ; ... RESTART WITH NEW TRANSMISSION
0059                  00524 VLOW_DELAY
0059   3401           00525         RETLW   1H
                      00526 
                      00527 ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
                      00528 ;
                      00529 ; FUNCTION      : TST_LED ()

⌨️ 快捷键说明

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