;******************************************************************************
;
; R T X
F M 1 4 4 M h z
Y T 3 M V M A T J A Z V I D M A R
;
;******************************************************************************
; Menu' # 1 = CH ->
Canali da 0 a 255. Il CH 0 disabilita la funzione dell'encoder
; Menu' # 2 = F xxx.xxx -> Step da 25 Khz.
Dopo 40 step continui, gli steps diventano da 1 Mhz
; Menu' # 3
= S xxx.xxx -> Step da 5 Khz
; Menu' # 4 = t xxx.xxx -> Frequenza di
trasmissione a step di 5 Khz. Dopo 10 steps continui, gli steps diventano da
100 Khz
; Menu' # 5 = VOLUME -> Regolazione volume
; Menu' # 6 = SQELCH
-> Regolazione squelch
;******************************************************************************
; I1KFH Sergio
Brovero - 13100 Vercelli
;******************************************************************************
ORG 0
JP INIT_PRG
DEFM ' *** RTX
FM 144 Mhz YT3MV Matjaz Vidmar ***'
DEFM '
Software modificato da I1KFH Sergio Brovero ***'
INIT_PRG: LD
SP,3FFFH
; init 8255
LD
A,81H
LD
(PIO_CNT),A
LD
A,(0007)
LD
(PORT_A),A
LD
A,00
LD
(PORT_B),A
LD
A,00
LD
(PORT_C),A
; init CTC
8253
LD
A,36H ;counter 0,R/L
tutto,square wave gen.,binary
LD
(CTC_CNT),A
LD
A,54H ;counter 1,R/L last
sign. byte only,rate gen.,binary
LD
(CTC_CNT),A
LD
A,94H ;counter 2,R/L last
sign. byte only,rate gen.,binary
LD
(CTC_CNT),A
; 2500000/1000 = 2500 Hz (riferimento PLL)
LD A,0E8H ;lsb
LD
(CTR0),A
LD
A,03 ;msb
LD
(CTR0),A
XOR
A
LD
(ENC_FLG),A
LD
(DIS_COUNT),A
LD
(KEY_COUNT),A
LD
IX,DIS_BUF ;display buffer
pointer
LD
IY,3800H
PUSH IX
LD B,08
; scrittura in DIS_BUF di tutti -_
LOOP_I: LD
(IX+00),92H
INC
IX
DJNZ LOOP_I
POP
IX ;IX -> DIS_BUF
LD
HL,1500
LD
(DELAY_KEY),HL
DEL_FUN_IN: LD
A,(PORT_C)
AND
06 ;mask pulsanti
CP
06 ;function ?
JP
NZ,INIT_WARM
LD
B,08
L_D1: CALL DISPLAY
DJNZ L_D1
LD
BC,0000
LD
HL,(DELAY_KEY)
DEC
HL
LD
(DELAY_KEY),HL
AND A
SBC HL,BC ;timer iniz. per tenere premuto il tasto function
JR NZ,DEL_FUN_IN
; setup
LD
(IX+00),00
LD
(IX+01),0DAH ;S
LD
(IX+02),0F2H ;E
LD (IX+03),0F0H ;T
LD (IX+04),00
LD (IX+05),0E2H ;F
LD
(IX+06),0A0H ;R
LD
(IX+07),00
LD
(IX+10H),01 ;init canale # 0
LD
(IX+11H),03 ;init volume = 3
LD
(IX+12H),05 ;init squelch = 0
LD
(IX+13H),00
LD
HL,1000
LD
(DELAY_KEY),HL
LD
(IX+15H),00
; scrittura iniziale dei canali con 145 Mhz.
; scittura per 1024 volte da 3800H a 3BFFH con
48H,71H,48H,71H,......
; ogni canale occupa 4 byte : 2 in rx e 2 in tx. Ogni canale
viene scritto
; con 7148H=29000d: questo perche' ogni Mhz corrisponde a
200d: quindi
; 200 * 145
= 29000 = 7148H.
LD B,00
LD
DE,0004
PUSH IY
WR_145: PUSH BC
LD
B,08
L_D2: CALL DISPLAY
DJNZ L_D2
POP BC
LD
(IY+00),048H ;canale in rx
LD
(IY+01),71H
LD (IY+02),048H ;canale in tx
LD (IY+03),71H
ADD
IY,DE
DJNZ
WR_145
POP
IY ;IY = 3800H
INIT_WARM: LD
A,(IX+15H)
; main loop
MAIN_LOOP: CALL
WHAT_FUNCT ;what function
LD
A,(IX+15H)
INC
A
CP
10H
JR
C,INC_FUNC
LD
A,00
INC_FUNC: LD
(IX+15H),A
JR
MAIN_LOOP
;=============================================================================
; routine:
U S C I T A F R E Q U E N Z A P E R
P L L
;=============================================================================
; Sull'input SI (pin 14 del PLL) c'e' una frequenza di
riferimanto di
; 2500 Hz che e' data dall'oscillatore a quarzo.
; Si deve fare in modo che sull'input CI (pin 3 del PLL) ci
sia la stessa
; frequenza (2500 Hz) usando un divisore interno
programmabile
OUT_F_PLL: PUSH BC
LD BC,0C000H
ADD HL,BC ;HL-> freq. relativa al canale selez. -4000H
LD
A,L
LD
L,H
SUB
H
JR
NC,L_8FH
DEC
H
DEC
L
INC
A
JR
Z,L_93H
L_8FH: CP
80H ;80H -> 1.6 Mhz
JR
C,L_96H
L_93H: INC
L
SUB
80H
L_96H: LD
C,A
ADD
A,H
LD
H,A
LD
A,80H
ADD
A,L
SUB
C
LD
L,A
LD
B,0FFH
L_A0H: LD
A,(PORT_C)
AND
08 ;mask 129/128
JR
NZ,L_A9H ;NZ = 129
DJNZ L_A0H
L_A9H: LD
B,0FFH
L_ABH: LD
A,(PORT_C)
AND
08 ;mask 129/128
JR
Z,L_B4H ;Z = 128
DJNZ L_ABH
L_B4H: LD
A,H
LD
(CTR1),A
LD
A,L
LD
(CTR2),A
POP
BC
RET
;=============================================================================
; routine:
D I S P L A Y
;=============================================================================
; rinfresco
display
DISPLAY: PUSH BC
PUSH AF
PUSH HL
LD A,0FFH
LD (PORT_A),A ;spegnimento dei segmenti
LD
HL,DIS_BUF
LD
A,(DIS_COUNT)
LD
C,A
ADD
A,L
LD
L,A
LD
A,C
INC
A
CP
08
JR
NZ,DIS_CS
XOR A
DIS_CS: LD
(DIS_COUNT),A
SLA C
SLA C
SLA C
SLA C
LD A,C
LD (PORT_C),A ;catodo
LD A,(HL) ;dato
da mandare sui display
CPL
LD
(PORT_A),A
POP
HL
POP
AF
POP
BC
RET
;=============================================================================
; routine:
V I S U A L I Z Z . D E L L
A F R E Q U E N Z A
;=============================================================================
DIS_FREQ: LD
(IX+00),00
LD
(IX+01),00
PUSH BC
PUSH DE
; visualizzazione della frequenza in centinaia di Mhz
LD BC,0B1E0H
LD
DE,NUM_TAB-1
L_100H: INC
DE
ADD
HL,BC
JR
C,L_100H
LD BC,4E20H ;20000
ADD
HL,BC
LD A,(DE)
LD
(IX+02),A
; visualizzazione della frequenza in decine di Mhz
LD BC,0F830H
LD DE,NUM_TAB-1
L_112H: INC
DE
ADD
HL,BC
JR
C,L_112H
LD
BC,07D0H ;2000
ADD HL,BC
LD A,(DE)
LD
(IX+03),A
; visualizzazione della frequenza in unita' di Mhz
LD BC,0FF38H
LD DE,NUM_TAB-1
L_124H: INC
DE
ADD
HL,BC
JR
C,L_124H
LD
BC,00C8H ;200
ADD HL,BC
LD A,(DE)
ADD A,01 ;accensione punto decimale
LD
(IX+04),A
; visualizzazione della frequenza in centinaia di Khz
LD
BC,0FFECH
LD
DE,NUM_TAB-1
L_138H: INC DE
ADD
HL,BC
JR
C,L_138H
LD
BC,14H ;20
ADD HL,BC
LD A,(DE)
LD
(IX+05),A
; visualizzazione della frequenza in decine di Khz e in
unita' di Khz
LD
BC,0FFFEH
LD
DE,NUM_TAB-1
L_155H: INC
DE
ADD
HL,BC
JR
C,L_155H
LD
BC,0002H
ADD
HL,BC
LD A,(DE)
LD
(IX+06),A
LD
DE,NUM_TAB
LD
B,H
LD
C,L
ADD
HL,HL
ADD
HL,HL
ADD
HL,BC
ADD HL,DE
LD
A,(HL)
LD
(IX+07),A
POP DE
POP
BC
RET
;=============================================================================
; routine: ;=============================================================================
L_180: LD (IX+00),00
LD
(IX+01),00
LD
(IX+02),00
LD
(IX+03),00
LD
(IX+04),00
LD
HL,NUM_TAB-1
L_197H: INC
HL
SUB
64H
JR
NC,L_197H
ADD
A,64H
LD
H,(HL)
LD
(IX+05),H
LD
HL,NUM_TAB-1
L_1A5H: INC
HL
SUB
0AH
JR
NC,L_1A5H
ADD
A,0AH
LD
H,(HL)
LD
(IX+06),H
LD
HL,NUM_TAB
ADD
A,L
LD
L,A
LD
H,(HL)
LD
(IX+07),H
RET
;=============================================================================
; routine: USCITA FREQ. PER IL PLL, USCITA SQUELCH, USCITA VOLUME
;=============================================================================
OUT_F_S_V: PUSH DE
PUSH HL
PUSH AF
LD H,00
LD L,(IX+10H) ;# del canale
ADD HL,HL
ADD HL,HL
EX
DE,HL ;DE -> # del
canale * 4
; si testa se si e' in rx o in tx.
; Se si e' in tx la microistr. ADD HL,DE e' la somma della
frequenza
; del canale con 0.
; Se si e' in rx la microistr. ADD HL,DE e' la somma della
frequenza
; del canale con FBACH: cioe' la frequenza del canale meno
il valore
; della media frequenza che e' di 5.5375 Mhz.
LD
HL,0000
LD
A,(PORT_C)
AND
01 ;test + 12V TX
JR
NZ,CH_TX ;NZ -> +12V TX
LD
HL,0FBACH
JR CH_RX
CH_TX: INC DE ;puntatore buffer canale in trasmissione
INC DE
CH_RX: ADD
IY,DE
LD E,(IY+00)
LD D,(IY+01) ;DE -> valore della freq. relativa al canale
; FBACH + 7148H = 6CF4H (nel caso canale # 0 in rx)
; 0 + 7148H = 7148H (nel caso canale # 0 in tx)
ADD
HL,DE
PUSH HL
PUSH AF
CALL
OUT_F_PLL ;uscita frequenza per il
PLL
POP
AF
POP
HL
; uscita volume e squelch
LD A,(IX+11H) ;valore del volume
AND
07 ;mask
LD
(IX+11H),A
RLCA
RLCA
RLCA
LD D,A
LD A,(IX+12H) ;valore dello squelch
AND
07 ;mask
LD
(IX+12H),A
OR
D
LD
(PORT_B),A ;out volume e
squelch
POP
AF
POP HL
POP DE
RET
;=============================================================================
; routine:
A T T E S A D I U N
T A S T O 0.4 mS.
;=============================================================================
WAIT_KEY: PUSH HL
PUSH BC
WAIT_KEY1: PUSH IY
CALL OUT_F_S_V
POP
IY
CALL DISPLAY
LD
A,(PORT_C)
AND
01 ;mask +12 V TX
CP
(IX+16H)
JR
Z,RD_ENC
LD
(IX+16H),A
LD
A,00
JP
WAIT_KEYEX
; lettura encoder per la sintonia. Se siamo sul canale 0 la
sintonia si puo'
; solo fare con i pulsanti up/down
RD_ENC: LD
A,(NUM_CAN)
AND
A ; canale 0 ?
JR Z,RD_KEY
LD A,(ENCODER) ;lettura
fasi
AND
03 ;mask fasi
LD
B,A ;save fasi
in B
LD
A,(ENC_FLG)
AND
A ;test flag fasi=00
JR Z,FASI_00
LD A,B ;restore
fasi
CP
01 ;test fase
up
JR NZ,FASE_DW
XOR
A
LD
(ENC_FLG),A ;reset flag fasi=00
LD A,01 ;simulazione
pulsante up premuto
JR WAIT_KEYEX
FASE_DW: CP
02 ;test fase
down
JR
NZ,RD_KEY
XOR
A
LD
(ENC_FLG),A ;reset flag fasi=00
LD A,02 ;simulazione
pulsante down premuto
JR WAIT_KEYEX
FASI_00: LD A,B ;restore
fasi
CP
00 ;test se
fasi=00
JR
NZ,RD_KEY
LD
A,01
LD
(ENC_FLG),A ;set flag fasi=00
; lettura tasti: in uscita il reg A contiene l'input dei
tasti
RD_KEY: LD
A,(PORT_C)
AND
06 ;mask pulsanti
JR
NZ,RD_KEY1 ;NZ -> function
LD
(IX+13H),00
LD
HL,0002
LD
(DELAY_KEY),HL
XOR
A
LD
(KEY_COUNT),A ;reset
KEY_COUNT
JR
WAIT_KEY1
RD_KEY1: CP
(IX+13H) ;function
JR
Z,RD_KEY2
LD
HL,0002
LD
(DELAY_KEY),HL
LD
(IX+13H),A
JR
WAIT_KEY1
RD_KEY2: LD
BC,0000
LD
HL,(DELAY_KEY)
DEC
HL
LD
(DELAY_KEY),HL
AND
A
SBC
HL,BC
JP
NZ,WAIT_KEY1
CP
6 ;tasto function
premuto ?
JR
Z,DELAY_F
LD HL,500 ;velocita'
avanzamento tasti up e down
LD
(DELAY_KEY),HL
LD
HL,KEY_COUNT
INC
(HL)
JR
WAIT_KEYEX
DELAY_F: LD HL,500 ;velocita'
avanzamento tasto function
LD
(DELAY_KEY),HL
WAIT_KEYEX: POP
BC
POP HL
RET
;=============================================================================
; routine: W H A
T F U N C T I O N
;=============================================================================
; step da
25 KHz
WHAT_FUNCT: CP
0 ;0 = passi da 25
Khz
JP
NZ,S_5KHZ
S_25KHZ_NK: LD
H,00
LD
L,(IX+10H)
ADD
HL,HL
ADD
HL,HL
EX DE,HL
LD
A,(PORT_C)
AND 01 ;mask +12VTX
JR
Z,KHZ25_RX ;NZ = +12VTX
INC DE ;puntamento
al buffer trasmissione
INC DE
KHZ25_RX: PUSH IY
ADD IY,DE
LD
L,(IY+00)
LD
H,(IY+01)
POP
IY
PUSH HL
PUSH AF
CALL
DIS_FREQ ;visualizzazione della
frequenza
POP
AF
POP
HL
LD (IX+00),0E2H ;F
CALL WAIT_KEY
CP
00
JR Z,S_25KHZ_NK ;Z = nessun tasto premuto
PUSH AF ;save tasto premuto
LD
A,(PORT_C)
AND
01 ;mask +12VTX
JR
Z,S_25KHZ_WK ;NZ =
+12VTX
POP
AF
JR
S_25KHZ_NK
S_25KHZ_WK: POP
AF ;restore tasto
premuto
CP
00
JR
Z,S_25KHZ_NK
CP 06
RET Z
CP
02 ;2 = tasto down
premuto
JR
Z,S_25KHZ_DW
LD
A,(KEY_COUNT)
CP 41 ;e'
passato 1 MHz ?
JR C,S_25KHZ_INC
LD
BC,200 ;200 = 1 MHz
JR S_25KHZ1
S_25KHZ_INC:
LD BC,5 ;5 = 25 KHz
JR
S_25KHZ1
S_25KHZ_DW: LD A,(KEY_COUNT)
CP 41 ;e'
passato 1 MHz ?
JR
C,S_25KHZ_DEC
LD
BC,65536-200 ; = 1 MHz
JR
S_25KHZ1
S_25KHZ_DEC:
LD BC,0FFFBH ; = 25 KHz
S_25KHZ1: LD
H,00
LD
L,(IX+10H)
ADD
HL,HL
ADD
HL,HL
EX DE,HL
PUSH IY
ADD IY,DE
LD
L,(IY+00)
LD
H,(IY+01)
ADD
HL,BC
LD
(IY+00),L
LD
(IY+01),H
LD
L,(IY+02)
LD
H,(IY+03)
ADD
HL,BC
LD
(IY+02),L
LD
(IY+03),H
POP
IY
JP
S_25KHZ_NK
; step da 5 KHz
S_5KHZ: CP
1 ;1 = passi da 5 Khz
JP
NZ,TX_FREQ
S_5KHZ_NK: LD
H,00
LD L,(IX+10H) ;# del canale
ADD HL,HL
ADD HL,HL
EX
DE,HL ;DE = # del canale
* 4
LD
A,(PORT_C)
AND 01 ;mask +12VTX
JR
Z,KHZ5_RX ;NZ = +12VTX
INC DE ;puntamento
al buffer trasmissione
INC DE
KHZ5_RX: PUSH IY
ADD IY,DE ;puntamento al buffer del canale
LD
L,(IY+00)
LD H,(IY+01) ;HL=valore della freq. relativa al canale
POP IY ;IY=puntatore buffer canali
PUSH HL
PUSH AF
CALL
DIS_FREQ ;visualizzazione della
frequenza
POP
AF
POP
HL
LD
(IX+00),0DAH ;S
CALL WAIT_KEY
CP
00
JR
Z,S_5KHZ_NK
PUSH AF ;save tasto premuto
LD
A,(PORT_C)
AND
01 ;mask +12VTX
JR
Z,S_5KHZ_WK ;NZ = +12VTX
POP
AF
JR
S_5KHZ_NK
S_5KHZ_WK: POP AF ;restore
tasto premuto
CP 06
RET Z
CP
02 ;2 = tasto down premuto
JR
Z,S_5KHZ_DEC
LD
BC,0001 ;1 = 5 KHz
JR
S_5KHZ_MOD
S_5KHZ_DEC:
LD BC,0FFFFH ; = 5 KHz
S_5KHZ_MOD:
LD H,00
LD L,(IX+10H) ;# del canale
ADD HL,HL
ADD HL,HL
EX
DE,HL ;DE = # del canale
* 4
PUSH IY ;IY = puntatore buffer canale
ADD IY,DE
LD L,(IY+00)
LD H,(IY+01) ;HL = valore della freq. relativa al canale
; questa operazione serve ad incrementare di 1 step la
frequenza (con BC=0001)
; oppure a decrementare di 1 la frequenza (con BC=FFFFH)
infatti sommando
; FFFFH e' come sottrarre 1
ADD
HL,BC
LD
(IY+00),L
LD
(IY+01),H
LD
L,(IY+02)
LD
H,(IY+03)
ADD
HL,BC
LD
(IY+02),L
LD
(IY+03),H
POP
IY
JP
S_5KHZ_NK
; frequenza di trasmissione
TX_FREQ: CP 2 ;2 = frequenza di trasmissione
JR NZ,CHANNEL
TX_FREQ_NK: LD H,00
LD L,(IX+10H) ;# del canale
ADD HL,HL
ADD HL,HL
EX
DE,HL ;DE = # del canale
* 4
INC DE
INC DE ;DE = buffer del tx
PUSH IY
ADD IY,DE ;puntamento al buffer del canale
LD
L,(IY+00)
LD H,(IY+01) ;HL=valore della freq. relativa al canale
POP IY ;IY=puntatore buffer canali
PUSH HL
PUSH AF
CALL
DIS_FREQ ;visualizzazione della
frequenza
POP
AF
POP
HL
LD
(IX+00),0F0H ;t
CALL WAIT_KEY
CP
00
JR Z,TX_FREQ_NK ;0 = nessun tasto schiacciato
CP
06
RET
Z ;0 = tasto function
premuto
CP
02 ;2 = tasto down
premuto
JR
Z,TX_FREQ_DW
LD
A,(KEY_COUNT)
CP 11
JR
C,INC_5KHZ
LD
BC,20 ;20 = 100 KHz
JR TX_FREQ1
INC_5KHZ: LD
BC,0001 ;1 = 5 KHz
JR
TX_FREQ1
TX_FREQ_DW:
LD
A,(KEY_COUNT)
CP
11
JR
C,DEC_5KHZ
LD
BC,0FFECH ; = 100 KHz
JR
TX_FREQ1
DEC_5KHZ: LD BC,0FFFFH ; = 5 KHz
TX_FREQ1: LD H,00
LD L,(IX+10H) ;# del canale
ADD HL,HL
ADD HL,HL
EX
DE,HL ;DE = # del canale
* 4
PUSH IY ;IY = puntatore buffer canale
ADD
IY,DE
LD
L,(IY+02)
LD
H,(IY+03)
ADD
HL,BC
LD
(IY+02),L
LD
(IY+03),H
POP
IY
JR TX_FREQ_NK
; canale
CHANNEL: CP 5 ;5 = canale #
JR
NZ,VOLUME
L_425H: LD
A,(IX+10H)
PUSH HL
PUSH AF
CALL L_180
POP
AF
POP
HL
LD
(IX+01),72H ;C
LD
(IX+02),0ECH ;H
L_431H: CALL WAIT_KEY
CP
00
JR
Z,L_431H
CP 06
RET Z
INC
(IX+10H)
CP
02
JR
NZ,L_448H
DEC
(IX+10H)
DEC
(IX+10H)
L_448H: JR
L_425H
; volume
VOLUME: CP
3 ;3 = volume
JR
NZ,SQUELCH
L_44EH: LD
A,(IX+11H) ;(default=3)
PUSH HL
PUSH AF
CALL L_180
POP
AF
POP
HL
LD
(IX+00),7CH ;V
LD
(IX+01),7EH ;O
LD
(IX+02),70H ;L
LD
(IX+03),7CH ;U
LD
(IX+04),6EH ;M
LD
(IX+05),0F2H ;E
LD
(IX+06),00
L_46EH: CALL WAIT_KEY
CP
00
JR
Z,L_46EH
CP 06
RET Z
INC
(IX+11H)
CP
02
LD
A,(IX+11H)
JR
NZ,L_484H
DEC
A
DEC
A
L_484H: CP
80H
JR
C,L_48AH
LD
A,00
L_48AH: CP
08
JR
C,L_490H
LD
A,07
L_490H: LD
(IX+11H),A
JR L_44EH
; squelch
SQUELCH: CP
4 ;4 = squelch
JR
NZ,WF_EXIT
L_499H: LD
A,(IX+12H)
PUSH HL
PUSH AF
CALL L_180
POP
AF
POP
HL
LD
(IX+00),0DAH ;S
LD
(IX+01),0CEH ;Q
LD
(IX+02),0F2H ;E
LD
(IX+03),70H ;L
LD
(IX+04),72H ;C
LD
(IX+05),0ECH ;H
LD
(IX+06),00
L_4B9H: CALL WAIT_KEY
CP
00
JR
Z,L_4B9H
CP 06
RET Z
INC (IX+12H)
CP
02
LD
A,(IX+12H)
JR
NZ,L_4CFH
DEC
A
DEC
A
L_4CFH: CP
80H
JR
C,L_4D5H
LD
A,00
L_4D5H: CP
08
JR
C,L_4DBH
LD
A,07
L_4DBH: LD
(IX+12H),A
JR
L_499H
RET
WF_EXIT: RET
;************
ORG 700H
NUM_TAB: DEFB 7EH ;0
DEFB 0CH
;1
DEFB 0B6H
;2
DEFB 9EH
;3
DEFB 0CCH
;4
DEFB 0DAH
;5
DEFB 0FAH
;6
DEFB 0EH
;7
DEFB 0FEH
;8
DEFB 0DEH
;9
;************
ORG
3800H ;RAM
ORG
3E00H
DIS_BUF: DEFS 8 ;display buffer
DEFS 8
NUM_CAN: DEFS 1 ;IX+10H
numero del canale
DEFS 1 ;IX+11H
valore del volume
DEFS 1 ;IX+12H
valore dello squelch
DEFS 1 ;IX+13H
DEFS 1 ;IX+14H
DEFS 1 ;IX+15H
contatore di function
;0 = passi da 100 Khz
;1 = passi da 5 Khz
;2 = frequenza di trasmissione
;3 = volume
;4 = squelch
;5 = canale #
DEFS 1 ;IX+16H
ORG 3E30H
KEY_COUNT: DEFS 1 ;counter
delle volte che i pulsanti sono premuti
ENC_FLG: DEFS 1 ;0=l'encoder e' in attesa delle
fasi=00
;1=l'encoder
ha ricevuto le fasi=00 e si deve testare
;se
l'impulso e' up o down
DIS_COUNT: DEFS 1
DELAY_KEY: DEFS 2 ;tempo
che i pulsanti devono essere premuti
;************
; SEG G =
BIT 7 A
; SEG B =
BIT 2 -----
; SEG C =
BIT 3 F | | B
; SEG D =
BIT 4 | G |
; SEG E = BIT 5 -----
; SEG F =
BIT 6 E | | C
; SEG A =
BIT 1 | |
; DP = BIT 0 -----
; D
;*************
ENCODER: EQU 2000H ;encoder
per la sintonia
PORT_A: EQU
2800H
PORT_B: EQU
2801H
PORT_C: EQU
2802H
PIO_CNT: EQU 2803H
CTR0: EQU 3000H
CTR1: EQU 3001H
CTR2: EQU 3002H
CTC_CNT: EQU
3003H
END