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

📄 2ifinput.asm

📁 tenx radio pll ic tr1002 and radio ic ta2111 and refence code .
💻 ASM
📖 第 1 页 / 共 4 页
字号:
         lda    GlobalTemp2
         jb0    Transmit3
         ;lds    PortAState,0ah
         ;opa    PortAState
         ;lds    PortAState,08h
         call   SetCKAsHigh   ;2005-9-15 11:42
         call   SetDAAsLow     
         jmp    Transmit4
       Transmit3:
         ;lds    PortAState,0bh
         ;opa    PortAState
         ;lds    PortAState,09h
         ;nop  
         call    SetCKAsHigh  ;2005-9-15 11:43
         call    SetDAAsHigh  ;2005-9-15 11:43
       Transmit4:                     	  
      	 dec*   GlobalTemp3
       	 jz     Transmit5
       	 ;opa    PortAState
       	 call   SetCKAsLow    ;2005-9-15 11:42
       	 sr0    GlobalTemp2
      	 jmp    Transmit2                         
       Transmit5:     
         ;opa    PortAState
         call    SetCKAsLow   ;2005-9-15 11:43
         lds    GlobalTemp3,04h
         dec*   GlobalTemp0
      	 jz     Transmit7      	 
      	 lda    RAMROMFlag
      	 jz     Transmit6
      	 lda#   @hl
      	 sta    GlobalTemp2
      	 jmp    Transmit2
       Transmit6:
         ldl*   GlobalTemp2,@hl
         jmp    Transmit2       	  
       Transmit7:      	   
      	 rts   
;==================================
    PeriodEnd:
         ;lds    PortAState,0ch
         ;opa    PortAState
         ;lds    PortAState,08h
         ;opa    PortAState
         call   SetMuteAsHigh
         call   SetCEAsHigh
         nop
         nop
         call   SetCEAsLow
         call   SetCKAsLow
         call   SetDAAsLow
         spa    1fh         
         rts 
;==================================
ReadRadioData:  ;read IF data store address:7bh~7fh
         lds    GlobalTemp0,05h
         lds    GlobalTemp2,00h
         lds    GlobalTemp1,07h
         lds    70h,0bh
         mvl    70h
         mvh    GlobalTemp1
         mvu    FixZero
         spa    1eh       ;DA Pin is set input state
         lds    PortAState,0ah
         lds    GlobalTemp3,01h
      ReadRadioData3:            
         opa    PortAState
         lds    70h,08h
         opa    70h
         nop
         nop   
         ipa    70h
         jb0    ReadRadioData0
         jmp    ReadRadioData1
      ReadRadioData0:
         lda    GlobalTemp3
         or*    GlobalTemp2
      ReadRadioData1:
         sl0    GlobalTemp3
         jnz    ReadRadioData3
      ReadRadioData2:
         lds    GlobalTemp3,01h
         lda    GlobalTemp2
         sta#   @hl
         lds    GlobalTemp2,00h
         dec*   GlobalTemp0
         jnz    ReadRadioData3
         lds    70h,08h  
         opa    70h
         ;spa    1eh
     ;====Highest 4 bits of D1 don't be read====
         opa    PortAState
         nop
         opa    70h
         nop
         opa    PortAState
         nop
         opa    70h
         nop
         opa    PortAState
         nop
         opa    70h
         nop
         opa    PortAState
         nop
         opa    70h
         rts 
;================================
JudgeIfLockDianTai:
         lds    70h,0dh                      
         mvu    FixZero
         mvh    70h
         lda    SysModeFlag
         jz     JudgeIfFM
    JudgeIfAM:
         lda    7fh
         jnz    JudgeIfEnd   
         lds    70h,04h
         mvl    70h
         call   JudgeIfLockDianTai0           
         rts 
    JudgeIfFM:
         lds    71h,02h
         lda    7fh
         eor    71h
         jnz    JudgeIfEnd
         lds    70h,00h
         mvl    70h
         call   JudgeIfLockDianTai0
         rts  
    JudgeIfLockDianTai0:
         ldl    70h,@hl
         sub    7bh
         ldh*   70h,@hl
         sbc    7ch
         ldl    70h,@hl
         sbc    7dh
         ldh*   70h,@hl
         sbc    7eh
         jnc    JudgeIfEnd
         ldl    70h,@hl
         sub    7bh
         ldh*   70h,@hl
         sbc    7ch
         ldl    70h,@hl
         sbc    7dh
         ldh*   70h,@hl
         sbc    7eh                             
         jc     JudgeIfEnd
         lds    AutoScanFlag,01h
JudgeIfEnd: 
         rts 
Delay27ms:
         plc    7fh
         she    10h
         tm2x   101000110b  ;7/2^8=0.02734  2005-8-21 12:37上午
         halt
         rts 
Delay62ms: 
         plc    7fh
         she    10h
         tm2x   101001111b ;16/2^8=0.0625  2005-8-21 12:37上午
         ;tm2x   010000000B ;1Second
         halt  
         rts   
Delay100ms: 
         plc    7fh
         she    10h
         tm2x   101011001b  ;16+8+1+1/2^8=0.10156
         halt
         rts                    
;************************************************************
;************************************************************
;************************************************************
;函数功能:初始化清变量                        		        
InitRAM:
                lds     AddrL,00h
                lds     AddrH,0dh
                lds     PrgCountL,FMBottomPrgCountL
                sta     FMPrgCountL
                lds     PrgCountM,FMBottomPrgCountM
                sta     FMPrgCountM
                lds     PrgCountH,FMBottomPrgCountH
                sta     FMPrgCountH
                lds     PrgCountU,FMBottomPrgCountU
                sta     FMPrgCountU
                lds     Freq0,03h 
                lds     Freq1,05h 
                lds     DispFreqL,FMDispFreqLMin
                sta     FMDispFreqL
                lds     DispFreqM,FMDispFreqMMin
                sta     FMDispFreqM
                lds     DispFreqH,FMDispFreqHMin
                sta     FMDispFreqH
                lds     DispFreqU,FMDispFreqUMin
                sta     FMDispFreqU
                lds     AMPrgCountL,AMBottomPrgCountL
                lds     AMPrgCountM,AMBottomPrgCountM
                lds     AMPrgCountH,AMBottomPrgCountH
                lds     AMPrgCountU,AMBottomPrgCountU
                lds     AMDispFreqL,AMDispFreqLMin
                lds     AMDispFreqM,AMDispFreqMMin
                lds     AMDispFreqH,AMDispFreqHMin
                lds     AMDispFreqU,AMDispFreqUMin
                lds     SysModeFlag,00h             
                lds     Counter1,00h
                lds 	Counter2,00h
	        lds	AutoScanFlag,00h
	        lds	KeyHoldFlag,00h
	        lds     CycScanKeyFlag,00h
	        lds     EverHoldFlag,00h          
	        lds     KeyValue,00h 
	        ;lds     IC24C02Addr1,00h
	        ;lds     IC24C02Addr2,00h
	        ;lds     IC24C02Buff1,00h
	        ;lds     IC24C02Buff2,00h    
	        ;lds     ReceiveData,00h      
	        ;lds     ReceiveTime,00h      
	        ;lds     MemoryNum,00h        
                ;======================
                lds     FixZero,00h 
                lds     RAMROMFlag,00h
                lds     GlobalTemp0,00h
                lds     GlobalTemp1,00h
                lds     GlobalTemp2,00h
                lds     GlobalTemp3,00h 
                ;======================
                lds     WorkReg,00h
	        ;lds     Halt05S,00h 
                lds     HaltPortC,00h
                lds     Halt15ms,00h
                lds     PortAState,00h                
              ;======================
                lds     70h,08h
                lds     71h,00h
                mvl     71h
                mvh     70h
                mvu     71h
                lds     GlobalTemp0,08h
                lds     GlobalTemp1,08h
         Clear80HToffHRAM:         
                mrw#    @hl,71h
                mrw#    @hl,71h
                dec*    GlobalTemp0
                jnz     Clear80HToffHRAM
                lds     GlobalTemp0,08h
                dec*    GlobalTemp1
                jnz     Clear80HToffHRAM
                rts
;==========================================         
InitFMState:
                lds     Freq0,03h 
                lds     Freq1,05h 
                lds     SysModeFlag,00h 
                call    SetBandSwitchAsHigh
                call    SetIO1AsHigh  
                ;;;;;;;;;;;;;;;;;;;;
                lda     PrgCountL
                sta     AMPrgCountL
                lda     PrgCountM
                sta     AMPrgCountM
                lda     PrgCountH
                sta     AMPrgCountH
                lda     PrgCountU
                sta     AMPrgCountU
                lda     DispFreqL
                sta     AMDispFreqL
                lda     DispFreqM
                sta     AMDispFreqM
                lda     DispFreqH
                sta     AMDispFreqH
                lda     DispFreqU
                sta     AMDispFreqU
                ;;;;;;;;;;;;;;;;;;;
                lda     FMPrgCountL
                sta     PrgCountL
                lda     FMPrgCountM
                sta     PrgCountM
                lda     FMPrgCountH
                sta     PrgCountH
                lda     FMPrgCountU
                sta     PrgCountU
                lda     FMDispFreqL
                sta     DispFreqL
                lda     FMDispFreqM
                sta     DispFreqM
                lda     FMDispFreqH
                sta     DispFreqH
                lda     FMDispFreqU
                sta     DispFreqU               
                rts
;==========================================         
InitAMState:               
                lds     Freq0,09h 
                lds     Freq1,04h                 
                lds     SysModeFlag,01h
                call    SetBandSwitchAsLow
                call    SetIO1AsLow 
                ;;;;;;;;;;;;;;;;;;;;
                lda     PrgCountL
                sta     FMPrgCountL
                lda     PrgCountM
                sta     FMPrgCountM
                lda     PrgCountH
                sta     FMPrgCountH
                lda     PrgCountU
                sta     FMPrgCountU
                lda     DispFreqL
                sta     FMDispFreqL
                lda     DispFreqM
                sta     FMDispFreqM
                lda     DispFreqH
                sta     FMDispFreqH
                lda     DispFreqU
                sta     FMDispFreqU
                ;;;;;;;;;;;;;;;;;;;
                lda     AMPrgCountL
                sta     PrgCountL
                lda     AMPrgCountM
                sta     PrgCountM
                lda     AMPrgCountH
                sta     PrgCountH
                lda     AMPrgCountU
                sta     PrgCountU
                lda     AMDispFreqL
                sta     DispFreqL
                lda     AMDispFreqM
                sta     DispFreqM
                lda     AMDispFreqH
                sta     DispFreqH
                lda     AMDispFreqU
                sta     DispFreqU
                rts                                                                                              
;===========================================
AMBottomCountToCountRAM:
                lds        PrgCountU,AMBottomPrgCountU
                lds        PrgCountH,AMBottomPrgCountH
                lds        PrgCountM,AMBottomPrgCountM
                lds        PrgCountL,AMBottomPrgCountL
                rts                                            	   	                       
;===========================================
;函数功能:将最小显示值87.5送工作寄存器
AMDispFreqMinToWork:
                lds        WorkReg+3,AMDispFreqUMin
	        lds        WorkReg+2,AMDispFreqHMin
	        lds        WorkReg+1,AMDispFreqMMin
	        lds        WorkReg+0,AMDispFreqLMin
     	        rts
;函数功能:将最大显示值108.0送工作寄存器     	        
AMDispFreqMaxToWork:
                lds        WorkReg+3,AMDispFreqUMax
	        lds        WorkReg+2,AMDispFreqHMax
	        lds        WorkReg+1,AMDispFreqMMax
	        lds        WorkReg+0,AMDispFreqLMax
     	        rts
;函数功能:将最小频率4452h送工作寄存器     	        	        
AMCountRAMMinToWork:
                lds        WorkReg+3,AMBottomPrgCountU
	        lds        WorkReg+2,AMBottomPrgCountH
	        lds        WorkReg+1,AMBottomPrgCountM
	        lds        WorkReg+0,AMBottomPrgCountL
     	        rts
;函数功能:将最大频率5456h送工作寄存器        	        
AMCountRAMMaxToWork:
                lds        WorkReg+3,AMTopPrgCountU
	        lds        WorkReg+2,AMTopPrgCountH
	        lds        WorkReg+1,AMTopPrgCountM
	        lds        WorkReg+0,AMTopPrgCountL
     	        rts
;函数功能:将显示RAM送工作寄存器     	        	 	        	        
DispRAMToWork:
     	        mrw        WorkReg+3,DispFreqU  
                mrw        WorkReg+2,DispFreqH  
                mrw        WorkReg+1,DispFreqM 
                mrw        WorkReg+0,DispFreqL 
                rts
;函数功能:将工作寄存器送显示RAM                  
WorkToDispRAM:
                mwr        DispFreqU,WorkReg+3
	        mwr        DispFreqH,WorkReg+2
	        mwr        DispFreqM,WorkReg+1
	        mwr        DispFreqL,WorkReg+0	
	        rts   
;函数功能:AM频率单步加30H         
AMCountRAMAddOneStep:
                call       CountRAMToWork
                addi*	   WorkReg+0,AMOneStepCountL
                adci*      WorkReg+1,AMOneStepCountM
                adci*      WorkReg+2,AMOneStepCountH
                adci*      WorkReg+3,AMOneStepCountU 
                call       WorkToCountRAM
                rts  
;函数功能:FM频率单步加14H         
FMCountRAMAddOneStep:

⌨️ 快捷键说明

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