HCS08, LM35 Y DISP 7 SEGMENTOS
SENSOR DE TEMPERATURA
Un sensor de temperatura muy sencillo, se trata de desplegar la temperatura en dos dsiplay de 7 segmentos por medio de 2 drivers 7448.
REQUERIMIENTOS:
* 2 display 7 segmentos catodo comun
* 2 driver 7448 BCD a display 7 segmentos
* micro HCS08
* HCS08 open source BDM (o con lo que programes al micro
Conexiones:
* Del micro: PTB0 a PTB3 van al driver 7448 que controla las unidades
PTB4 a PTB7 van al driver 7448 que controla las decenas
(no hace falta decir que cada driver va a un display de 7 segmentos)
* La salida del LM35 va al PTA1 (pata 25) del micro
CODIGO
;En la seccion de variables colocan:
; variable/data section
;
ORG RAMStart ; Insert your data definition here
ExampleVar: DS.B 1
arreglado: equ $83
convertido: equ $84
i: equ $85
tope: equ $86
; Insert your code here
;Entrada Analogica por PTA1
;cabecera del programa
;*********************
cabecera:
;declaracion puerto B coomo salida
LDA #$FF ;cargamos $11111111=$FF
STA $03 ;lo colocamos en PTBDD para hacer PTBD de salida
;Configuracion del ADC
LDA #%10010000 ;Cargamos $90=10010000
STA ADCCFG ;Colocamos en ADCCFG=bajo poder, clock /1,largo tiempo muestreo, resolucion 8 bits,
LDA #$00
STA ADCSC2
LDA #$21 ;$21=00100001, COCO y AIEN desactivados, Activada conversion continua, Canal 1 seleccionado
STA ADCSC1
;inicializamos variables
LDA #$00
STA arreglado
STA convertido
STA i
STA tope
;main
;*********************
main:
BSR convierte
BSR arregla
LDA arreglado
STA $02
BSR retardo
feed_watchdog
BRA main
;*********************
;convierte
;*********************
convierte:
LDA ADCSC1 ;Se carga el contenido de ADCSC1 para verificar COCO
CMP #$A1 ;Comparamos con $A1=%10100001 si igual Z=1,(COCO activado, AIEN desactivado, Conversion continua activada, Canal 1),
BNE convierte ;si COCO no esta activado (Z=0), regresa (Branch) a main, con COCO debe ser:
LDA ADCRL ;cargamos la conversion
STA convertido ;la colocamos en el puerto B
feed_watchdog
RTS
;*********************
;arregla
;*********************
arregla:
LDA convertido
ADD #$A
STA tope
LDA #$00
STA arreglado
STA i
for:
feed_watchdog
LDA i
CMP tope
BEQ salirfor
LDA arreglado
ADD #$01
DAA
STA arreglado
INC i
BRA for
salirfor:
RTS
;*********************
;comenzamos con el codigo del retardo
;*************************
retardo:
LDA #$A ;cargamos FF en la mem 100 y 101
STA $100
STA $101
STA $102
retardomain:
feed_watchdog
LDA $100 ;verificamos que la 100 llegue a 0 para asi terminar el retardo
CMP #$00
BEQ regreso
DECA ;si no es cero, decrementamos en uno a A, cargamos FF en $91 y comenzamos el bucle del subretardo
STA $100
LDA #$78 ;reinicio del anidado
STA $101
subretardo:
feed_watchdog
LDA $101
CMP #$00
BEQ retardomain
DECA
STA $101
LDA #$78
STA $102 ;renicio del anidado
subretardo1:
LDA $102
CMP #$00
BEQ subretardo
DECA
STA $102
BRA subretardo1
regreso:
RTS
;**********************************
;Termina el retardo
//SIGUEME EN MI BLOG PARA SABER MAS ACERCA DEL MUNDO DEL MICRO HCS08 DE FREESCALE
http://hazafantasymicros.blogspot.com/
Y DE OTRAS COSAS:
http://hazafantasymas.blogspot.com/
//*********************************************************************************
No olvides visitar de nuevo HCS08, LM35 Y DISP 7 Segmentos, Sensor de Temper
sábado, 2 de julio de 2011
HCS08, LM35 Y DISP 7 Segmentos, Sensor de Temper
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario