📄 2ifinput.asm
字号:
call CountRAMToWork
addi* WorkReg+0,FMOneStepCountL
adci* WorkReg+1,FMOneStepCountM
adci* WorkReg+2,FMOneStepCountH
adci* WorkReg+3,FMOneStepCountU
call WorkToCountRAM
rts
;函数功能:AM频率单步减30H
AMCountRAMSubOneStep:
call CountRAMToWork
subi* WorkReg+0,AMOneStepCountL
sbci* WorkReg+1,AMOneStepCountM
sbci* WorkReg+2,AMOneStepCountH
sbci* WorkReg+3,AMOneStepCountU
call WorkToCountRAM
rts
;函数功能:FM频率单步减14H
FMCountRAMSubOneStep:
call CountRAMToWork
subi* WorkReg+0,FMOneStepCountL
sbci* WorkReg+1,FMOneStepCountM
sbci* WorkReg+2,FMOneStepCountH
sbci* WorkReg+3,FMOneStepCountU
call WorkToCountRAM
rts
;函数功能:频率送工作寄存器
CountRAMToWork:
mrw WorkReg+3,PrgCountU
mrw WorkReg+2,PrgCountH
mrw WorkReg+1,PrgCountM
mrw WorkReg+0,PrgCountL
rts
WorkToCountRAM:
mwr PrgCountU,WorkReg+3
mwr PrgCountH,WorkReg+2
mwr PrgCountM,WorkReg+1
mwr PrgCountL,WorkReg+0
rts
;************************************************************
;************************* 显示程式 **************************
;************************************************************
; - - - -
; | | | | | | | |
; - - - -
; | | | | | | | |
; - - - . -
;SentRAM(4B) DispFreqU DispFreqH DispFreqM DispFreqL
Display:
lds WorkReg+0,00h
mvu WorkReg+0
lds WorkReg+1,0eh
ClearDisplayBuffer:
mvl WorkReg+0
mvh WorkReg+1
lds WorkReg+3,00h
sta @hl
addi* WorkReg+0,01h
adci* WorkReg+1,00h
or WorkReg+0
jnz ClearDisplayBuffer
;**************************
mrw WorkReg+0,DispFreqU ;DiplayMode
jnz DisplayLct
jmp DisplayLct1
DisplayLct:
mrw WorkReg+0,DispFreqU
call DecodeLowNibble
lds WorkReg+2,00h
call DisplayLowNibble
mrw WorkReg+0,DispFreqU
call DecodeHighNibble
lds WorkReg+2,00h
call DisplayHighNibble
DisplayLct1:
;=========================
mrw WorkReg+0,DispFreqH
call DecodeLowNibble
lds WorkReg+2,01h
call DisplayLowNibble
mrw WorkReg+0,DispFreqH
call DecodeHighNibble
lds WorkReg+2,01h
call DisplayHighNibble ;Display Mode
;===========================
mrw WorkReg+0,DispFreqM
call DecodeLowNibble
lds WorkReg+2,02h
call DisplayLowNibble
mrw WorkReg+0,DispFreqM
call DecodeHighNibble
lds WorkReg+2,02h
call DisplayHighNibble ;Display Mode
;===========================
mrw WorkReg+0,DispFreqL
call DecodeLowNibble
lds WorkReg+2,03h
call DisplayLowNibble
mrw WorkReg+0,DispFreqL
call DecodeHighNibble
lds WorkReg+2,03h
call DisplayHighNibble ;Display Mode
;**********************固定显示部分************************
lds WorkReg+0,00h
call DecodeLowNibble
lda SysModeFlag
jz DisplayFM
lds WorkReg+2,05h ;AM/./KHz
jmp DisplayNextStep
DisplayFM:
lds WorkReg+2,04h ;FM/./MHz
DisplayNextStep:
call DisplayLowNibble
DisplayBaseOnBuffer:
lds WorkReg+0,00h
mvl WorkReg+0
mvu WorkReg+0
lds WorkReg+0,0eh
mvh WorkReg+0
lda# @hl
lcp 00h,@hl
lda# @hl
lda# @hl
lcp 01h,@hl
lda# @hl
lda# @hl
lcp 02h,@hl
lda# @hl
lda# @hl
lcp 03h,@hl
lda# @hl
lda# @hl
lcp 04h,@hl
lda# @hl
lda# @hl
lcp 05h,@hl
lda# @hl
lda# @hl
lcp 06h,@hl
lda# @hl
lda# @hl
lcp 07h,@hl
lda# @hl
lda# @hl
lcp 08h,@hl
lda# @hl
lda# @hl
lcp 09h,@hl
lda# @hl
lda# @hl
lcp 0Ah,@hl
lda# @hl
lda# @hl
lcp 0Bh,@hl
lda# @hl
lda# @hl
lcp 0Ch,@hl
lda# @hl
lda# @hl
lcp 0Dh,@hl
lda# @hl
lda# @hl
lcp 0Eh,@hl
lda# @hl
lda# @hl
lcp 0Fh,@hl
rts
;****************************************************************************
;Input: WorkReg+0 "binary(bitmap) data to Display "
; WorkReg+2 "logic address of Display"
;****************************************************************************
DisplayHighNibble:
lds WorkReg+3,00 ;offset of Logic Display address
mvu WorkReg+3
lds WorkReg+1,08h
jmp DisplayNextBit
DisplayLowNibble:
lds WorkReg+3,00 ;offset of Logic Display address
mvu WorkReg+3
lds WorkReg+1,00h
DisplayNextBit:
mvl WorkReg+1
mvh WorkReg+2
ldl WorkReg+4,@hl
ldh* WorkReg+5,@hl
ldl WorkReg+6,@hl
mvl WorkReg+4
mvh WorkReg+5
;there is a defult condition that is HL=0XXh
lda WorkReg+6
and* @hl
andi WorkReg+0,0001B
jz PrepareNextBit
eori* WorkReg+6,0fh
or* @hl
PrepareNextBit:
sr0 WorkReg+0
addi* WorkReg+1,02h
andi WorkReg+1,0111B
jnz DisplayNextBit
rts
;****************************************************************************
;****************************************************************************
DecodeLowNibble:
mvl WorkReg+0
lds WorkReg+0,00h
mvu WorkReg+0
lds WorkReg+0,0fh
mvh WorkReg+0
ldl WorkReg+0,@hl
rts
DecodeHighNibble:
mvl WorkReg+0
lds WorkReg+0,00h
mvu WorkReg+0
lds WorkReg+0,0fh
mvh WorkReg+0
ldh WorkReg+0,@hl
rts
;****************************************************************************
.ENDC
;****************************************************************************
.TABLE
Data 000h,None ;Digital 0 , SegmentA
Data 001h,None
Data 002h,SEG11 ;Digital 0 , SegmentB
Data 003h,COM3
Data 004h,None ;Digital 0 , SegmentC
Data 005h,None
Data 006h,None ;Digital 0 , SegmentD
Data 007h,None
Data 008h,None ;Digital 0 , SegmentE
Data 009h,None
Data 00ah,None ;Digital 0 , SegmentF
Data 00bh,None
Data 00ch,None ;Digital 0 , SegmentG
Data 00dh,None
Data 00eh,None ;Digital 0 , SegmentH
Data 00fh,None
Data 010h,SEG9 ;Digital 1 , SegmentA
Data 011h,COM3
Data 012h,SEG8 ;Digital 1 , SegmentB
Data 013h,COM3
Data 014h,SEG8 ;Digital 1 , SegmentC
Data 015h,COM2
Data 016h,SEG9 ;Digital 1 , SegmentD
Data 017h,COM1
Data 018h,SEG10 ;Digital 1 , SegmentE
Data 019h,COM2
Data 01ah,SEG10 ;Digital 1 , SegmentF
Data 01bh,COM3
Data 01ch,SEG9 ;Digital 1 , SegmentG
Data 01dh,COM2
Data 01eh,None ;Digital 1 , SegmentH
Data 01fh,None
Data 020h,SEG6 ;Digital 2 , SegmentA
Data 021h,COM3
Data 022h,SEG5 ;Digital 2 , SegmentB
Data 023h,COM3
Data 024h,SEG5 ;Digital 2 , SegmentC
Data 025h,COM2
Data 026h,SEG6 ;Digital 2 , SegmentD
Data 027h,COM1
Data 028h,SEG7 ;Digital 2 , SegmentE
Data 029h,COM2
Data 02ah,SEG7 ;Digital 2 , SegmentF
Data 02bh,COM3
Data 02ch,SEG6 ;Digital 2 , SegmentG
Data 02dh,COM2
Data 02eh,None ;Digital 2 , SegmentH
Data 02fh,None
Data 030h,SEG3 ;Digital 3 , SegmentA
Data 031h,COM3
Data 032h,SEG2 ;Digital 3 , SegmentB
Data 033h,COM3
Data 034h,SEG2 ;Digital 3 , SegmentC
Data 035h,COM2
Data 036h,SEG3 ;Digital 3 , SegmentD
Data 037h,COM1
Data 038h,SEG4 ;Digital 3 , SegmentE
Data 039h,COM2
Data 03ah,SEG4 ;Digital 3 , SegmentF
Data 03bh,COM3
Data 03ch,SEG3 ;Digital 3 , SegmentG
Data 03dh,COM2
Data 03eh,None ;Digital 3 , SegmentH
Data 03fh,None
Data 040h,SEG4 ;Freq Symbol , Point
Data 041h,COM1
Data 042h,SEG1 ;Freq Symbol , MHz
Data 043h,COM2
Data 044h,SEG11 ;Freq Symbo , FM
Data 045h,COM1
Data 046h,None ;Time Symbol ,
Data 047h,None
Data 048h,None ;Time Symbol ,
Data 049h,None
Data 04ah,None ;Time Symbol ,
Data 04bh,None
Data 04ch,None ;Time Symbol ,
Data 04dh,None
Data 04eh,None ;Time Symbol ,
Data 04fh,None
Data 050h,SEG8 ;Freq Symbol , AM
Data 051h,COM1
Data 052h,SEG1 ;Freq Symbol , KHz
Data 053h,COM1
Data 054h,None ;Freq Symbo ,
Data 055h,None
Data 056h,None ;Time Symbol ,
Data 057h,None
Data 058h,None ;Time Symbol ,
Data 059h,None
Data 05ah,None ;Time Symbol ,
Data 05bh,None
Data 05ch,None ;Time Symbol ,
Data 05dh,None
Data 05eh,None ;Time Symbol ,
Data 05fh,None
;************************************
Data a0h,02h ;radio D2H and D1H data
Data a1h,0dh
Data a2h,0ah
Data a3h,00h
Data a4h,01h ;IFIN1 Input
Data a5h,02h
Data a6h,00h ;00h
Data a7h,00h
Data a8h,01h
Data a9h,0dh
;;;;;;;;;;;;;;;;;;;;;
Data b0h,02h ;radio D2H and D1H data
Data b1h,0dh
Data b2h,02h
Data b3h,01h
Data b4h,01h ;IFIN2 Input
Data b5h,04h
Data b6h,00h ;00h
Data b7h,00h
Data b8h,01h
Data b9h,0dh
;****************************
Data d0h,00h ;fm: 5370h~53c0h
Data d1h,9ch ;(10.7M)*16MS=29CC0h
Data d2h,50h
Data d3h,9Dh
Data d4h,10h ;am: 1c1bh~1c27h
Data d5h,1ch ;450*16=1c20
Data d6h,30h
Data d7h,1ch
;****************************
Data 0f0h,00111111B ;digit display decode table
Data 0f1h,00000110B
Data 0f2h,01011011B
Data 0f3h,01001111B
Data 0f4h,01100110B
Data 0f5h,01101101B
Data 0f6h,01111101B
Data 0f7h,00000111B
Data 0f8h,01111111B
Data 0f9h,01101111B
Data 0fah,01110111B
Data 0fbh,01111100B
Data 0fch,00111001B
Data 0fdh,01011110B
Data 0feh,01111001B
Data 0ffh,01110001B
.ENDT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -