;IK1WJQ PROGRAMMA IN ASSEMBLER Z8
;TIM.ASM Z86E04/8 , PROGRAMMA OROLOGIO CONTA TEMPO PER MEDICINE
;PORTE: INGRESSO P31 N.A. - USCITA P00 LED VERDE (FACOLTATIVO)
;P02 CICALINO - QUARZO 2 MHZ
;NOTA: ALL'ACCENSIONE RICHIEDE SOLO L'IMPOSTAZIONE DELL'ORA
;NEL PROGRAMMA MEMORIZZATE ORE 8,15 E 20
MED1 EQU 16 ;NR TRE VOLTE
MED2 EQU 17 ;MEMORIA
MED3 EQU 18
ORA EQU R15 ;REGISTRI
MIN EQU R14
SEC EQU R13
MSC EQU R12 ;MINI SEC
ORG 000AH
WORD #OROL ;SALTO IRQ5 = OROL
ORG 000CH
LD P01M,#4 ;P0 USCENTE
CLR RP ;R0-R3 COME P0-P3
CLR R0
LD SPL,#127
LD P3M,#1 ;P3 INGRESSO DIGITALE
LD P2M,#255 ;P2 INGRESSI
LD PRE1,#11001011B ;PRE1=50 CLOCK INTERNO,CONTINUO
LD T1,#250 ;2 MHZ / 8 X 50 X 250=100000
OR TMR,#0CH ;CARICA E ABILITA T1
DI ;NO INT
OR IMR,#20H ;ABILITA INT T1
LD R0,#1 ;PROVA LED E 2 BIP
CALL RIT1
CALL BIP
CLR R0 ;SPENTO 2 BIP
CALL BIP
LD MED1,#8 ;ORE X MEDICINE
LD MED2,#15
LD MED3,#20
ASPX: TM R3,#2 ;ASPETTA COLPO PULSANTE
CALL RIT
JR NZ,ASPX
ASP: LD R0,#1 ;COLPO LED
CALL RIT1
CLR R0
CLR ORA ;IMPOSTA ORA OROLOGIO
ASP1: LD R0,#1 ;COLPO LED
CALL RIT1
CLR R0
CALL BIP
INC ORA
CP ORA,#24
JR EQ,ASP
TM R3,#2
JR Z,ASP1
LD R0,#1 ;CHIUSURA IMPOSTAZIONE
CLR MIN
CLR SEC
EI ;PARTE OROLOGIO
CALL RIT1
CONT: CLR R0 ;CONTROLLO
NOP ;RIDUZIONE CONSUMO
HALT ;20 HZ QUARZO 2 MHZ
CP MIN,#1 ;PROSEGUE CON MIN=1
JR NE,CONT
CP ORA,MED1 ;1 MEDICINA
JR EQ,SEGN
CP ORA,MED2 ;SECONDA
JR EQ,SEGN
CP ORA,MED3 ;TERZA
JR EQ,SEGN
JR CONT
SEGN: LD R9,#36 ;MEZZO MINUTO ALL
CBIP: CP MIN,#1
JR NE,CONT ;RITORNA CON MIN <> 1
CALL BIP
TM R3,#2 ;TEST STOP BIP
JR Z,SIL
DJNZ R9,CBIP
JR CONT
SIL: LD R0,#1 ;1 COLPO LED
CALL RIT1
CLR R0
LD R9,#220 ;ASPETTA 1 MIN
CRIT: CALL RIT1 ;IN SILENZIO
DJNZ R9,CRIT
JR CONT
BIP: LD R0,#4 ;DURATA BIP CICALINO 0,52 SEC
CALL RIT1
CALL RIT1
LD R0,#0
CALL RIT1 ;SILENZIO 0,26 SEC
RET
RIT1: LD R10,#170 ;170 X RIT = 0,26 SEC
PAU1: CALL RIT
DJNZ R10,PAU1
RET
RIT: LD R11,#63 ;RITARDO 1,5 MSEC
PAU: NOP
NOP
DJNZ R11,PAU
RET
OROL: INC MSC ;INCREMENTO A 20 HZ
CP MSC,#20
JR NE,FINE
CLR MSC
INC SEC
TM R3,#2
JR Z,BIPX ;CHIAMA BREVE BIP
OROX: CP SEC,#60 ;CON PULSANTE PER
JR NE,FINE ;CONTROLLO FUNZIONAMENTO
CLR SEC
INC MIN
CP MIN,#60
JR NE,FINE
CLR MIN
INC ORA
CP ORA,#24
JR NE,FINE
CLR ORA
FINE: IRET
BIPX: LD R0,#4 ;BREVE BIP OGNI SECONDO
CALL RIT
CLR R0
CALL RIT
JR OROX
END
(Vai a pagina1)