Académique Documents
Professionnel Documents
Culture Documents
-1-
.NOLIST
.INCLUDE "m16def.inc"
.LIST
;
.DEF AUX1 = R16
;
.CSEG
PROGP:
; PROGRAMACIÓN DEL ADC
; REFS1:0=11 VOLTAJE DE REFERENCIA INTERNA 2.56
; ADLAR=0 RESULTADO ALINEADO A LA DERECHA
; MUX4:0=00111 SELECCIÓN DEL CANAL 7 - UN SOLO TERMINAL
LDI AUX1,0B11000111
OUT ADMUX,AUX1
; ADEN=1 HABILITACIÓN DEL CONVERSOR
; ADSC=1 ENCENDIDO EL INICIO DE CONVERSIÓN
; ADATE=0 APAGADO DISPARO AUTOMÁTICO DE LA CONVERSIÓN
; ADIF=1 APAGADA BANDERA DE FIN DE CONVERSIÓN
; ADIE=0 HABILITACIÓN DE LA INTERRUPCIÓN
; ADPS2:0=000 FRECUENCIA DEL RELOJ DIVIDA PARA 2
; ADPS2:0=011 FRECUENCIA DEL RELOJ DIVIDA PARA 8
LDI AUX1,0B11010000
; LDI AUX1,0B11010011
OUT ADCSRA,AUX1
; ADTS2:0=000 MODO DE LIBRE CONVERSIÓN
LDI AUX1,0B00000000
OUT SFIOR,AUX1
; LAZO DE ESPERA HASTA QUE ENCIENDA LA BANDERA
LAZO: IN AUX1,ADCSRA
SBRS AUX1,ADIF
RJMP LAZO
; BORRAR LA BANDERA
LDI AUX1,0B11010000
; LDI AUX1,0B11010011
OUT ADCSRA,AUX1
RJMP LAZO
;
.EXIT ; FIN DEL MODULO FUENTE
NOTA: cuando se esta simulando se debe esperar hasta que se encienda la bandera
ADIF para que salga del lazo.
.NOLIST
.INCLUDE "m16def.inc"
.LIST
;
.DEF AUX1 = R16
;
.CSEG
JMP PROGP
;
.ORG $01C ; INTERUPCIÓN DE FIN DE CONVERSIÓN
LDI AUX1,0B11011000
; LDI AUX1,0B11011011
OUT ADCSRA,AUX1
RETI
;
PROGP: LDI AUX1,LOW(RAMEND)
OUT SPL,AUX1
LDI AUX1,HIGH(RAMEND)
OUT SPH,AUX1
; PROGRAMACIÓN DEL ADC
; REFS1:0=11 VOLTAJE DE REFERENCIA INTERNA 2.56
; ADLAR=0 RESULTADO ALINEADO A LA DERECHA
; MUX4:0=00111 SELECCIÓN DEL CANAL 7 - UN SOLO TERMINAL
LDI AUX1,0B11000111
OUT ADMUX,AUX1
; ADEN=1 HABILITACIÓN DEL CONVERSOR
; ADSC=1 ENCENDIDO EL INICIO DE CONVERSIÓN
; ADATE=0 APAGADO DISPARO AUTOMÁTICO DE LA CONVERSIÓN
; ADIF=1 APAGADA BANDERA DE FIN DE CONVERSIÓN
; ADIE=1 HABILITACIÓN DE LA INTERRUPCIÓN
; ADPS2:0=000 FRECUENCIA DEL RELOJ DIVIDA PARA 2
; ADPS2:0=011 FRECUENCIA DEL RELOJ DIVIDA PARA 8
LDI AUX1,0B11011000
; LDI AUX1,0B11011011
OUT ADCSRA,AUX1
; ADTS2:0=000 MODO DE LIBRE CONVERSIÓN
LDI AUX1,0B00000000
OUT SFIOR,AUX1
;
SEI
; LAZO DE ESPERA HASTA QUE ENCIENDA LA BANDERA
LAZO: RJMP LAZO
;
.EXIT ; FIN DEL MODULO FUENTE
.NOLIST
.INCLUDE "m16def.inc"
.LIST
;
.DEF VALORD = R15
.DEF AUX1 = R16
.DEF AUX2 = R17
.DEF AUX3 = R18
.DEF VALORH = R19
.DEF VALORL = R20
.DEF VALCOL = R21
.DEF VALCOH = R22
.DEF AUXI1 = R23
;
.DSEG
DIGIT: .BYTE 4
COD7S: .BYTE 4
;
.CSEG
JMP PROGP
.ORG $0C ; INTERRUPCION POR EMPAREJAMIENTO
IN VALORL,ADCL
IN VALORH,ADCH
RETI
;
.ORG 0x01C ; INTERRUPCIÓN DE CONVERSIÓN COMPLETA
LDI AUXI1,0B11011000
; LDI AUXI1,0B11011011
OUT ADCSRA,AUXI1
RETI
;
PROGP: LDI AUX1,LOW(RAMEND)
OUT SPL,AUX1
LDI AUX1,HIGH(RAMEND)
OUT SPH,AUX1
LDI AUX1,0B11111111
OUT DDRC,AUX1 ; PARA LOS SEGMENTOS
LDI AUX1,0B00001111
OUT DDRA,AUX1 ; PARA LOS CÁTODOS
;
; INICIALIZACIÓN DEL TIMER1 PARA UN SEGUNDO
; COM1A1:0=00 DESCONECTADA DE LA SALIDA OC1A (PD5)
; COM1B1:0=00 DESCONECTADA DE LA SALIDA OC1B (PD4)
; FOC1A:0=1 OBLIGA A COMPARACIÓN CON OCR1A
; FOC1B:0=0 NO OBLIGA A COMPARACIÓN CON OCR1B
.DB 0b01111101,0b00000111
.DB 0b01111111,0b01101111
.DB 0b01110111,0b01111100
.DB 0b00111001,0b01011110
.DB 0b01111001,0b01110001
; SUBRUTINA DEL BARRIDO DE LOS DISPLAYS
DSPY: LDI YL,LOW(COD7S)
LDI YH,HIGH(COD7S)
LDI AUX3,4
LDI AUX2,0B00000001
DSPY1: LD AUX1,Y+
OUT PORTA,AUX2
OUT PORTC,AUX1
CLC
ROL AUX2
DLY: CLR R15
DLY1: DEC R15
BRNE DLY1
DEC AUX3
BRNE DSPY1
RET
;
.EXIT ; FIN DEL MODULO FUENTE
Resultados de la simulación: