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

📄 2ifinput.asm

📁 tenx radio pll ic tr1002 and radio ic ta2111 and refence code .
💻 ASM
📖 第 1 页 / 共 4 页
字号:
            AutoSearchAgain1:
                lds        AutoScanFlag,00h 
                ;call       Delay62ms  
                call       Delay100ms       
                call       TransDataControlByD2  
                lda        AutoScanFlag
                jnz        DetectHighReally
                sf2        1h    ;开启reload功能/enable timer2                 
                lds        AutoScanFlag,01h  ;2005-8-23 13:33
                jmp        MainHalt  
            DetectHighReally:   
                ;call       Delay27ms
                ;call       TransDataControlByD2
                opa        FixZero      ;prevent mute
                lda        KeyHoldFlag
                jz         VoutHighAndKeyUp
                call       ClrCountRAM
                sf2        1h    ;开启reload功能/enable timer2                  
                lds        EverHoldFlag,01h 
                jmp        MainHalt
            ;自动侦测到反馈信号为高,同时键弹起,则停止自动收台。    
            VoutHighAndKeyUp:  
                rf2        01h     ;关闭reload功能 2005-3-11 18:06                
                lds        AutoScanFlag,00h
                jmp        MainHalt                   
;************************ 按键处理 ***************************                 
HaltPortCPro:			
                plc        01h             ;Clear ioc Halt release request flag HRF1
                andi*      HaltPortC,1101b ;clear ioc Halt release flag
                sca        10h  
                nop
                nop   
                nop
                nop
                nop  
                ;lcp        1fh,00h 
                ipc        KeyValue
                jz         KeyUpRelease
      KeyDownRelease:               
                sta        KeySave
                call       ClrCountRAM
                sf2        1h    ;开启reload功能/enable timer2
                jmp        MainHalt 
      KeyUpRelease:  
                lda        KeyHoldFlag
	        jz         KeyUpDealWith1
	        ;常按键键弹起处理
                lds        KeyHoldFlag,00h
                sf2        1
                lds        AutoScanFlag,01h
                jmp        MainHalt
                ;单次按键键弹起处理   
             KeyUpDealWith1: 
                lda        EverHoldFlag
                jnz        NoKeyPress   ;经过常按键自动侦测马上键弹起后不作处理
                lda        KeySave
                jb0        KeyModeChangePro
                jb1        KeyPowerPressPro
                jb2        KeyAddPressPro
                jb3        KeySubPressPro
             NoKeyPress:
                lds        KeySave,00h
                lds        EverHoldFlag,00h
                call       ClrCountRAM
                jmp        MainHalt
       ;===================================         
       ClrCountRAM:
                lds        Counter1,00h
                lds        Counter2,00h 
                lds        CycScanKeyFlag,00h
                lds        KeyHoldFlag,00h
                lds        AutoScanFlag,00h
                lds        EverHoldFlag,00h
                rts                            
;********************************************************* 
;*********************************************************       
;*********************************************************
KeyModeChangePro:
                lda        PortBState
                jb0        GoToKeyModeChangePro
                jmp        MainHalt
            GoToKeyModeChangePro:    
                call       KeyModeChange
                jmp        MainHalt
KeyPowerPressPro:
                call       KeyPowerPress
                jmp        MainHalt                  
KeyAddPressPro:   
                lda        PortBState
                jb0        GoToKeyAddPressPro
                jmp        MainHalt
            GoToKeyAddPressPro:    
                call       KeyAddPress
                jmp        MainHalt
KeySubPressPro:
                lda        PortBState
                jb0        GoToKeySubPressPro
                jmp        MainHalt
            GoToKeySubPressPro:    
                call       KeySubPress                
                jmp        MainHalt  
;=================ModeChangeKey处理程式==============                
KeyModeChange:
                lda        SysModeFlag 
                jz         GoToChangeAMMode
                call       InitFMState   
                jmp        FreqUpDownKeyExit 
             GoToChangeAMMode:
                call       InitAMState
                jmp        FreqUpDownKeyExit              
;=================PowerKey处理程式===================                
KeyPowerPress:
                lda        PortBState 
                jb0        GoToSetPowerAsLow
                call       SetPowerAsHigh
                lda        DispSaveL
                sta        DispFreqL
                lda        DispSaveM
                sta        DispFreqM
                lda        DispSaveH
                sta        DispFreqH
                lda        DispSaveU
                sta        DispFreqU
                jmp        FreqUpDownKeyExit 
              GoToSetPowerAsLow: 
                call       SetPowerAsLow
                lda        DispFreqL
                sta        DispSaveL
                lda        DispFreqM
                sta        DispSaveM
                lda        DispFreqH
                sta        DispSaveH
                lda        DispFreqU
                sta        DispSaveU
                lds        DispFreqL,00h
                lds        DispFreqM,00h
                lds        DispFreqH,00h
                lds        DispFreqU,00h
                jmp        FreqUpDownKeyExit                  
;===============AddKey处理程式=============== 
KeyAddPress:                                 
                lda        SysModeFlag
                jz         GoToFMAddPro
                ;;;;;;;;;;;AM模式;;;;;;;;;;;;
                lds        70h,AMDispFreqUMax 
                eor        DispFreqU
                jnz        GoToAMAddOneStep
                lds        70h,AMDispFreqHMax 
                eor        DispFreqH
                jnz        GoToAMAddOneStep
                lds        70h,AMDispFreqMMax 
                eor        DispFreqM
                jnz        GoToAMAddOneStep
                lds        70h,AMDispFreqLMax 
                eor        DispFreqL
                jnz        GoToAMAddOneStep                
	        ;加到1710K时,将522K送显示BUFFER
	        ;将最小发射频率送FREQCOUNT
	        lds        PrgCountL,AMBottomPrgCountL
                lds    	   PrgCountM,AMBottomPrgCountM
                lds        PrgCountH,AMBottomPrgCountH
                lds        PrgCountU,AMBottomPrgCountU
                lds        DispFreqL,AMDispFreqLMin
                lds        DispFreqM,AMDispFreqMMin
                lds        DispFreqH,AMDispFreqHMin
                lds        DispFreqU,AMDispFreqUMin
	        jmp        FreqUpDownKeyExit
	  GoToAMAddOneStep:     
	        call       DispRAMToWork
                addi*	   WorkReg+0,9
	        daa*	   WorkReg+0
	        adci*	   WorkReg+1,0
	        daa*	   WorkReg+1
	        adci*	   WorkReg+2,0
	        daa*	   WorkReg+2
	        adci*	   WorkReg+3,0	
	        call       WorkToDispRAM   
	        call       AMCountRAMAddOneStep      
 	        jmp        FreqUpDownKeyExit 
 	  GoToFMAddPro:
 	        ;;;;;;;;;;;FM模式;;;;;;;;;;;;
                lds        70h,FMDispFreqUMax 
                eor        DispFreqU
                jnz        GoToFMAddOneStep
                lds        70h,FMDispFreqHMax 
                eor        DispFreqH
                jnz        GoToFMAddOneStep
                lds        70h,FMDispFreqMMax 
                eor        DispFreqM
                jnz        GoToFMAddOneStep
                lds        70h,FMDispFreqLMax 
                eor        DispFreqL
                jnz        GoToFMAddOneStep                
	        ;加到108.0M时,87.0M送显示BUFFER
	        ;将最小发射频率送FREQCOUNT
	        lds        PrgCountL,FMBottomPrgCountL
                lds    	   PrgCountM,FMBottomPrgCountM
                lds        PrgCountH,FMBottomPrgCountH
                lds        PrgCountU,FMBottomPrgCountU
                lds        DispFreqL,FMDispFreqLMin
                lds        DispFreqM,FMDispFreqMMin
                lds        DispFreqH,FMDispFreqHMin
                lds        DispFreqU,FMDispFreqUMin
	        jmp        FreqUpDownKeyExit
	  GoToFMAddOneStep:     
	        call       DispRAMToWork
                addi*	   WorkReg+0,1
	        daa*	   WorkReg+0
	        adci*	   WorkReg+1,0
	        daa*	   WorkReg+1
	        adci*	   WorkReg+2,0
	        daa*	   WorkReg+2
	        adci*	   WorkReg+3,0	
	        call       WorkToDispRAM   
	        call       FMCountRAMAddOneStep      
 	        jmp        FreqUpDownKeyExit                
;===============SubKey处理程式=============== 
KeySubPress:   
                lda        SysModeFlag
                jz         GoToFMSubPro
                ;;;;;;;;;;;AM模式;;;;;;;;;;;;
                lds        70h,AMDispFreqUMin
                eor        DispFreqU
                jnz        GoToAMSubOneStep
                lds        70h,AMDispFreqHMin
                eor        DispFreqH
                jnz        GoToAMSubOneStep
                lds        70h,AMDispFreqMMin 
                eor        DispFreqM
                jnz        GoToAMSubOneStep
                lds        70h,AMDispFreqLMin
                eor        DispFreqL
                jnz        GoToAMSubOneStep                
	        ;减到552K时,将1710K送显示BUFFER
	        ;将最小发射频率送FREQCOUNT
	        lds        PrgCountL,AMTopPrgCountL
                lds    	   PrgCountM,AMTopPrgCountM
                lds        PrgCountH,AMTopPrgCountH
                lds        PrgCountU,AMTopPrgCountU
                lds        DispFreqL,AMDispFreqLMax
                lds        DispFreqM,AMDispFreqMMax
                lds        DispFreqH,AMDispFreqHMax
                lds        DispFreqU,AMDispFreqUMax
	        jmp        FreqUpDownKeyExit
	  GoToAMSubOneStep:     
	        call       DispRAMToWork
                subi*	   WorkReg+0,9  
	        das*	   WorkReg+0
	        sbci*	   WorkReg+1,0
	        das*	   WorkReg+1
	        sbci*	   WorkReg+2,0
	        das*	   WorkReg+2  
	        sbci*	   WorkReg+3,0
	        das*	   WorkReg+3   
	        call       WorkToDispRAM   
	        call       AMCountRAMSubOneStep      
 	        jmp        FreqUpDownKeyExit 
 	  GoToFMSubPro:
 	        ;;;;;;;;;;;FM模式;;;;;;;;;;;;
                lds        70h,FMDispFreqUMin
                eor        DispFreqU
                jnz        GoToFMSubOneStep
                lds        70h,FMDispFreqHMin 
                eor        DispFreqH
                jnz        GoToFMSubOneStep
                lds        70h,FMDispFreqMMin
                eor        DispFreqM
                jnz        GoToFMSubOneStep
                lds        70h,FMDispFreqLMin
                eor        DispFreqL
                jnz        GoToFMSubOneStep                
	        ;减到87.0M时,将108.0M送显示BUFFER
	        ;将最小发射频率送FREQCOUNT
	        lds        PrgCountL,FMTopPrgCountL
                lds    	   PrgCountM,FMTopPrgCountM
                lds        PrgCountH,FMTopPrgCountH
                lds        PrgCountU,FMTopPrgCountU
                lds        DispFreqL,FMDispFreqLMax
                lds        DispFreqM,FMDispFreqMMax
                lds        DispFreqH,FMDispFreqHMax
                lds        DispFreqU,FMDispFreqUMax
	        jmp        FreqUpDownKeyExit
	  GoToFMSubOneStep:     
	        call       DispRAMToWork
                subi*	   WorkReg+0,1  
	        das*	   WorkReg+0
	        sbci*	   WorkReg+1,0
	        das*	   WorkReg+1
	        sbci*	   WorkReg+2,0
	        das*	   WorkReg+2  
	        sbci*	   WorkReg+3,0
	        das*	   WorkReg+3   
	        call       WorkToDispRAM   
	        call       FMCountRAMSubOneStep      
 	        jmp        FreqUpDownKeyExit            
;==========================================         
  FreqUpDownKeyExit:
                sf	   02H		;SET BCF=1
                fast
                call       Display
                call       TransDataControlByD0                
                slow
                rf	   02H		;SET BCF=0   
 	        rts  
;**********************************************************  
;**********************数据发射程式*************************   
;**********************************************************
TransDataControlByD0:
         mvl    FixZero         ;D0H
         mvh    FixZero
         mvu    FixZero
         lda#   @hl
         sta    GlobalTemp2
         spa    1fh
         ;lds    PortAState,08h 
         ;opa    PortAState
         call   SetMuteAsHigh ;2005-9-15 11:07
         call   SetCEAsLow    ;2005-9-15 11:08
         call   SetCKAsLow    ;2005-9-15 11:08
         call   SetDAAsLow    ;2005-9-15 11:08
         
         lds    GlobalTemp0,08h
         lds    GlobalTemp3,04h
         lds    RAMROMFlag,01h
      	 call   TransferData
      	 call   PeriodEnd
      	 lda    AutoScanFlag
      	 jnz    GoToEnd
      	 call   Delay100ms
      	 opa    FixZero         ;prevent mute
      GoToEnd:	 
         rts 
         ;=================== 
TransDataControlByD2:
         sf	02H		;SET BCF=1
         fast
         lds    RAMROMFlag,00h  ;D2H
         lds    GlobalTemp0,08h
         lda    SysModeFlag
         jz     IFInputFromIFIN1
    IFInputFromIFIN2:
         lds    GlobalTemp1,0bh
         jmp    TransDataControlByD2_1
    IFInputFromIFIN1:
         lds    GlobalTemp1,0ah 
    TransDataControlByD2_1:      
         mvl    FixZero  
         mvh    GlobalTemp1
         mvu    FixZero
         ldl*   GlobalTemp2,@hl 
         call   TransferData
         call   PeriodEnd
         call   Delay27ms 
         ;call   Delay27ms
         ldl*   GlobalTemp2,@hl  ;D1H
         lds    GlobalTemp0,02h
         call   TransferData        	    
      	 call   ReadRadioData
      	 call   PeriodEnd
      	 call   JudgeIfLockDianTai
      	 slow
         rf	02H		 ;SET BCF=0   
         rts                                           
    TransferData:   
         ;lds    PortAState,0ch
         ;opa    PortAState
         call   SetCEAsHigh      ;2005-9-15 11:25
       	 lda    GlobalTemp2
       	 jb0    Transmit0
       	 ;lds    PortAState,0eh
       	 ;opa    PortAState
       	 ;lds    PortAState,0ch
       	 ;opa    PortAState
       	 ;lds    PortAState,08h
       	 ;opa    PortAState  
       	 call   SetCKAsHigh     ;2005-9-15 11:26
         call   SetCKAsLow      ;2005-9-15 11:26
         call   SetCEAsLow      ;2005-9-15 11:26  	 
       	 jmp    Transmit1
       Transmit0:
       	 ;lds    PortAState,0fh
       	 ;opa    PortAState
       	 ;lds    PortAState,0dh
       	 ;opa    PortAState
       	 ;lds    PortAState,09h
       	 ;opa    PortAState
       	 call    SetCKAsHigh   ;2005-9-15 11:41
       	 call    SetDAAsHigh   ;2005-9-15 11:41
       	 call    SetCKAsLow    ;2005-9-15 11:41 
       	 call    SetCEAsLow    ;2005-9-15 11:41
       Transmit1:
         dec*   GlobalTemp3
      	 sr0    GlobalTemp2
       Transmit2:

⌨️ 快捷键说明

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