Trabalho
; seção de código ORG $E000
; desabilita COP MAIN: LDA SOPT1 AND #127 STA SOPT1
; INICIALIZAÇÃO DAS VARIAVEIS MOV #$0, segundo MOV #$0, minuto
; DESLIGA LEDS MOV #$0, PTAD
; CONFIGURA E/S DIGITAIS MOV #%00000110, PTADD ; SAIDAS DIGITAIS (PTA1 E PTA2)
; CONFIGURAÇÃO DE A/D MOV #%10000000, APCTL1 ;PTB3=> ANALOGICO MOV #$84, ADCCFG ; 10 BITS, BUSCLK MOV #$0, ADCSC2 ; SEM COMPARAÇÃO LDA ADCSC1 ORA #$1F STA ADCSC1 ; 1 CONV.,INT. DESAB.,CONV. DESABILITADO, ; CONFIGURAÇAO DA INTERRUPÇAO LDA #$17 ; 1024 ms, INTERRUPÇÃO HABILITADA STA SRTISC CLI ; HABILITA TODAS AS INTERRUPÇÕES AGUARDA: LDA minuto CMP #5 BNE AGUARDA MOV #0, minuto ; zera minuto MOV #0,segundo ; zera segundo LDA ADCSC1 ORA #$07 ; SELECIONA AD7, UMA CONVERSÃO, INT. HABILIT. STA ADCSC1
AGUARDA_COCO: BRCLR 7, ADCSC1, AGUARDA_COCO ; AGUARDA COCO LDHX ADCRH ; LEITUTA DE ADCR CPHX #589 ; COMPARA COM 95 UNIDADES BLO ACENDE_VD ; SE MENOR, AGUARDA 1 MIN.P/ PROX. LEITURA BSET 1, PTAD ; SE MAIOR, ACENDER O LED VM e TERMINA O PROGRAMA BCLR 2,PTAD ;APAGA O LED VERDE
FIM: BRA FIM
ACENDE_VD:
BSET 2, PTAD ;ACENDE O VERDE BCLR 1, PTAD ;APAGA O VERMELHO LDA ADCSC1 ORA #$1F STA ADCSC1 ; 1 CONV.,INT. DESAB.,CONV. DESABILITADO,
BRA AGUARDA ; ROTINA DE TRATAMENTO DE INTERRUPÇÃO DO TIMER
INT_RTI:
LDA SRTISC