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

📄 rfcode40old.asm

📁 dsp tmslf2407a 汇编,c的原代码,包括i2c,scitimer,fir等的很多程序.
💻 ASM
📖 第 1 页 / 共 5 页
字号:
           .copy  "LF2407.h"  
           .copy  "set.asm"  
        ;   .copy  "vectors.asm"   
           .def   _sendISOCmd,_GISR4,_CAP3_ISR            
           .def	_feedWatchDog 
           .ref   _viccdata,_ISOMode,_labeldata       
           .text                          
H_TBL:     .word   0,05feh,0cedh,1363h,17f6h,199dh 
           .word   17f6h,1363h,0cedh,05feh,0   
DIGITAL_R:
          .word     00,00,19,23,26,28,32,35,37,39,41,43,45
          .word     47,49,52,54,56,58,60,61,62,64,66,68,69
          .word     71,72,74,76,78,80,82,83,85,87,89,91,94,96,97
********************************************           
_sendISOCmd:POPD         *+            ;与C语言兼容的代码
            SAR          AR0,*+  
            SAR          AR2,*+ 
            SAR          AR3,*+
            SAR          AR4,*+  
            SAR          AR5,*+
            SAR          AR6,*+
            SAR          AR7,*+  
            SAR          AR1,*              
            ldp          #5h
            SAR          AR1,SAVE_AR1
************************    
;            CALL         SCI_INIT
             CALL         CAP3_INIT
           ; CALL         RAM_INIT                    	
            CALL	 CS_FLASH_1  
            call         CS_RAM_0
           ; CALL         LED_OPT_INIT 
            CLRC         INTM
******************************************           
          ; CALL      WRITE_SINGLE_H  
          ;  CALL      GET_SYSINF_L    
          ; CALL       RESET_TO_RDY_H 
          ; CALL	   GET_SYSINF_H
***********************************************************           
EMULATE:  	LDP          #0
            SPLK         #0,MODIFY
            SPLK         #0,MCOUNTER
            LAR          AR3,#_viccdata
            MAR          *,AR3       
            LACL         *  
            SUB          #01H      
            LDP          #4
            SACL         CODEN_NUMBERS  
            LACC         #_viccdata
            ADD          #01H
            SACL         ADR_CODEN                  
;************ADD_0802ZYB******ASK_OR_FSK******** 
            LAR          AR3,#_ISOMode
            MAR          *,AR3
            LACL         *    
            AND          #20H        ;ISOMODE.5,	ASK or FSK
            BCND         ASK,EQ
            NOP
            NOP
            CALL         FSK         
            B            ISOCMD_OUT
;*****************************************************              
ASK:        LAR          AR3, #_viccdata
            ADRK         #01H    ;指向标志单元
            LACL         *    
            AND          #02H   
            LDP          #5
            SACL         TXD_RATE
            SUB          #02H    
            BCND         H_SPEED,EQ
            NOP
            NOP                  ;返回信号为低速
            CALL         PARA_LOW_SPEED                    
            B            PPPP 
H_SPEED:    NOP
            NOP                  ;返回信号为高速  
            CALL         PARA_HIGH_SPEED      
PPPP:       LAR          AR3,#_viccdata
            MAR          *,AR3   
            ADRK         #02H    ;指向命令单元
            LACL         *       
            SUB          #01H
            BCND         INVENTOY_CMD,EQ
            NOP
            NOP                  ;一般的ISO命令 
            LAR          AR3,#_ISOMode	;ISOMODE.0	,1/256 or 1/4
            MAR          *,AR3   
            LACL         *     
            AND          #0001H
            BCND         FSAT_SEND,NEQ
            NOP
            NOP                   ;低速发送  
            CALL         SOF
            CALL         DATACODEN
            CALL         ENDF              
            B            JUDGE_RD_WR  
FSAT_SEND:  CALL         SOFQ     ;高速发送
            CALL         DATA_CODING    
            CALL         ENDF              
JUDGE_RD_WR:LAR          AR3,#_ISOMode	;isomode.4	,read or write
            MAR          *,AR3
            LACL         *     
            AND          #0010H
            BCND         WR_CMD,NEQ
            NOP
            NOP                  ; 读命令            
            CALL         DELAY250;延时       
            B            RECEIVE_BACKDATA
WR_CMD:     LAR          AR3,#_ISOMode ;写命令
            MAR          *,AR3
            LACL         *     
            AND          #0004H
            BCND         ISO_TAG,NEQ
            NOP
            NOP                       ;I_CODE TAG
            CALL         DELAY_10MS              
            CALL         DELAY250
            B            RECEIVE_BACKDATA   
ISO_TAG:    CALL         DELAY_10MS  ; ISO TAG 			
            CALL         WENDF       ;发送附加的结束信号            
            CALL         DELAY250
RECEIVE_BACKDATA:
            CALL         JUDGE_LEVEL ;读取标签的返回信号         
   ;         CALL         CAPDATA_TXD   ;;;;;;;;;;
            LDP          #04H
            LACL         RESPONCE_FLAG
            SUB          #01H
            BCND         SUCCESS,EQ
            NOP
            NOP
            LACL         #00H                         
            B            ISOCMD_OUT  
SUCCESS:    CALL         SAVE_DATA
            LACL         #01H                         
            B            ISOCMD_OUT                           
INVENTOY_CMD: 		    	;寻卡命令
;******************************************************
            LAR          AR3,#_ISOMode	;ISOMODE.7	,SLOT_0 or SLOT_N(1-15)
            MAR          *,AR3   
            LACL         *     
            AND          #0080H
            BCND         SLOT_N_INV,NEQ
			NOP
			NOP
            LAR          AR3,#_ISOMode	;ISOMODE.0	,1/256 or 1/4
            MAR          *,AR3   
            LACL         *     
            AND          #0001H
            BCND         FSEND_INV,NEQ
            NOP
            NOP                   ;低速发送  
            CALL         SOF
            CALL         DATACODEN
            CALL         ENDF              
            B            RECEIVE_INV  
FSEND_INV:  CALL         SOFQ     ;高速发送
            CALL         DATA_CODING    
            CALL         ENDF      
RECEIVE_INV:CALL         DELAY250
            LDP          #04H
            SPLK         #0,RESPONCE_FLAG 
            CALL         JUDGE_LEVEL ;读取标签的返回信号       
            B		     ISOCMD_OUTCOM
SLOT_N_INV: CALL         WENDF     
            CALL         DELAY250
		    LDP          #04H
            SPLK         #0,RESPONCE_FLAG
            CALL         JUDGE_LEVEL ;读取标签的返回信号  
ISOCMD_OUTCOM:
            LDP          #04H
            LACL         RESPONCE_FLAG   
            SUB          #01H
            BCND         INV_SAVE_DATA,EQ
            NOP
            NOP
            LDP          #4
            LACL         RESPONCE_FLAG
            B            ISOCMD_OUT
INV_SAVE_DATA:              
            CALL         SAVE_DATA  
			LDP          #4
            LACL         RESPONCE_FLAG
;******************************************************
;            LAR          AR3,#_ISOMode ;寻卡命令
;            MAR          *,AR3
;            LACL         *     
;            AND          #0008H     
;            BCND         NEW_READ,NEQ
;            NOP
;            NOP                 ;读取区域内的全部标签
;            CALL         RESET_TO_READY             
;            CALL         INV_QUIET             
;            B            ISOCMD_TXD   
;NEW_READ:   CALL         INV_QUIET ;读取区域内新出现的标签 
;*************            
;ISOCMD_TXD: 
;            LDP          #4
;            LACL         CARD_ALL
;            BCND         SUCCESS_INV,GT
;            NOP 
;            NOP             
;            LACL         #0
;            B            ISOCMD_OUT  
;SUCCESS_INV: LACL         #1
;*********************             
ISOCMD_OUT: NOP  
            NOP                              
            ldp          #5h
            LAR          AR1,SAVE_AR1
            MAR          *,AR1   
            SBRK         #01H
            LAR          AR7,*-  
            LAR          AR6,*-   
            LAR          AR5,*-  
            LAR          AR4,*-
            LAR          AR3,*-
            LAR          AR2,*- 
            LAR          AR0,*-    
            PSHD         *         ;弹出返回地址,并压入硬件堆栈 
     ;       CALL        CS_RAM_1 
            RET          
***********************************************************
FSK:       LAR          AR3,#_viccdata
            MAR          *,AR3   
            ADRK         #02H    ;指向命令单元
            LACL         *       
            SUB          #01H
            BCND         INVENTOY_CMD_FSK,EQ
            NOP
            NOP                  ;一般的ISO命令 
            LAR          AR3,#_ISOMode
            MAR          *,AR3   
            LACL         *     
            AND          #0001H
            BCND         FSAT_SENDF,NEQ              
            NOP
            NOP                   ;低速发送  
            CALL         SOF
            CALL         DATACODEN
            CALL         ENDF               
            B            JF_RD_WR 
FSAT_SENDF: CALL         SOFQ     ;高速发送
            CALL         DATA_CODING    
            CALL         ENDF                           
JF_RD_WR:   LAR          AR3,#_ISOMode
            MAR          *,AR3
            LACL         *     
            AND          #0010H
            BCND         WR_CMDF,NEQ      
            NOP
            NOP                  ; 读命令  
            RPT          #06H
            NOP               
            CALL         DELAY_300US;延时       
            B            RECEIVE_FSKDATA
WR_CMDF:    LAR          AR3,#_ISOMode ;写命令
            MAR          *,AR3
            LACL         *     
            AND          #0004H
            BCND         ISO_TAGF,NEQ             
            NOP
            NOP                       ;I_CODE TAG
            CALL         DELAY_10MS 
            CALL         DELAY_300US
            B            RECEIVE_BACKDATA   
ISO_TAGF:   NOP
            NOP             
            NOP
            NOP
            CALL         DELAY_10MS  ; ISO TAG
            CALL         WENDF       ;发送附加的结束信号
            CALL         DELAY_300US
RECEIVE_FSKDATA:                      ;-->20
            LAR          AR3, #_viccdata
            ADRK         #01H    ;指向标志单元
            LACL         *    
            AND          #02H         
            SUB          #02H    
            BCND         H_SPEEDF,EQ               
            NOP
            NOP                           ;-->29
            CALL         FSK_LOW_CAPTURE ;返回信号为低速 
            B            FSK_END
H_SPEEDF:   CALL         FSK_CAPTURE_HIGH ;返回信号为高速
FSK_END:   ; CALL         RESULT_ZHISHI
            LDP          #04H
            LACL         RESPONCE_FLAG
            SUB          #01H
            BCND         SUCCESSF,EQ             
            NOP
            NOP
            LACL         #00H                         
            B            FSK_OUT  
SUCCESSF:   CALL         SAVE_DATA
            LACL         #01H                         
            B            FSK_OUT                           
INVENTOY_CMD_FSK:                ;寻卡命令
;**********************************************
            LAR          AR3,#_ISOMode	;ISOMODE.7	,SLOT_0 or SLOT_N(1-15)
            MAR          *,AR3   
            LACL         *     
            AND          #0080H
            BCND         SLOT_N_INVF0,NEQ
			NOP
			NOP
            LAR          AR3,#_ISOMode
            MAR          *,AR3   
            LACL         *     
            AND          #0001H
            BCND         FSAT_SENDF_INV,NEQ              
            NOP
            NOP                   ;低速发送  
            CALL         SOF
            CALL         DATACODEN
            CALL         ENDF               
            B            JF_INVF 
SLOT_N_INVF0:CALL        WENDF
             B           SLOT_N_INVF
FSAT_SENDF_INV: CALL         SOFQ     ;高速发送
            CALL         DATA_CODING    
            CALL         ENDF               
JF_INVF:   
            LAR          AR3, #_viccdata
            ADRK         #01H    ;指向标志单元
            LACL         *    
            AND          #02H    
            LDP          #5
            SACL         TIMES
SLOT_N_INVF:CALL         DELAY_300US;延时 
            RPT          #10H
            NOP
            LDP          #5
            LACL         TIMES     
            SUB          #02H    
            BCND         H_SPEEDF_INV,EQ               
            NOP
            NOP                           ;-->29
            CALL         FSK_LOW_CAPTURE ;返回信号为低速 
            B            FSK_END_INV
H_SPEEDF_INV:  CALL         FSK_CAPTURE_HIGH ;返回信号为高速
FSK_END_INV:  
            LDP          #04H
            LACL         RESPONCE_FLAG
            SUB          #01H
            BCND         SUCCESSF_INV,EQ             
            NOP
            NOP
            LDP          #04H
            LACL         RESPONCE_FLAG                     
            B            FSK_OUT  
SUCCESSF_INV: CALL         SAVE_DATA
            LACL         #01H                         
            B            FSK_OUT                           
;            LAR          AR3,#_ISOMode ;寻卡命令
;            MAR          *,AR3
;            LACL         *     
;            AND          #0008H     
;            BCND         NEW_READF,NEQ             
;            NOP
;            NOP                 ;读取区域内的全部标签
;            CALL         RESET_TO_READY
;            CALL         INV_QUIET
;            B            ISOCMD_TXDF   
;NEW_READF:  CALL         INV_QUIET ;读取区域内新出现的标签 
;*************            
;ISOCMD_TXDF: 
;            LDP          #4

⌨️ 快捷键说明

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