Programación Específica > Microcontroladores MOTOROLA
Mc68hc908gp32cp
(1/1)
Miauyin:
Hola. Estoy trabajando en un control de temperatura con un LM35 y un gp32cp y desplegando el resultado en display de 7 segmentos de cátodo común. Ya que soy nueva programando este micro, quisiera saber si alguien sabe como debo utilizar el conversor AD y como debe ir el programa para poder ver el valor de la temperatura en el display.
Espero que alguien me pueda ayudar con esto. Muchas gracias.
Super_G:
Hola, tengo un cofigo que funciona con el JK3, no creo que sea muy dsitito para el gp32 de todos modos te dejo un link de un PDF muy bueno sobre la familia 68hc08, que me parece se basa en el gp32
http://gda.utp.edu.co/pub/lab_microcontrol.../guia68hc08.pdf
--- Código: Text --- S1 EQU $0002RAMStart EQU $0080RomStart EQU $EC00 ; Valid for JL3, JK3VectorStart EQU $FFDE $Include 'jl3regs.inc' ; For the 68HC908JL3, 68HC908JK3, 68HC908JK1 org RamStart conta1 db 1conta2 db 1conta3 db 1conta4 db 1temp_word ds 2temp_byte ds 1Timeout1 ds 1 ; Allows three timeout routines to be called each of whichTimeout2 ds 1 ; can run for up to ~ 1/2 second.Timeout3 ds 1 org RomStart *************************************************************** Main_Init - This is the point where code starts executing ** after a RESET. ***************************************************************dummy_isr: rsp Bset 0,CONFIG1;Desabilita el watchdog clr conta1 mov #$ff,DDRB ; Setting PortB to an output mov #$ff,PORTB mov #$F7,DDRD ; 11110111b mov #$AA,PORTD mov #$08,ADSCR ; 00001000b; CH8,D3 mov #$00,ADCLKmain_loop bsr retardo mov ADR,PORTB mov #$08,ADSCR ; 00001000b; CH8,D3 mov #$00,ADCLK INC PORTD bra main_loop retardo: ;mov #$1,conta4 ;5 ;21r6 mov #$1,conta3 ;5 ;21r5 mov #$64,conta2 ;64r4 mov #$64,conta1 ;64r1 dbnz conta1,r1 ;255*5r2 dbnz conta2,r4 ;255*5r3 dbnz conta3,r5;r7 dbnz conta4,r6 r_sal rts ADC_rutine mov #$08,ADSCR ; 00001000b; CH8,D3 mov #$00,ADCLK mov ADR,PORTB rti*************************************************************** Vectors - Timer Interrupt Service Routine. ** after a RESET. *************************************************************** org VectorStart dw ADC_rutine ; ADC Conversion Complete Vector dw dummy_isr ; Keyboard Vector dw dummy_isr ; (No Vector Assigned $FFE2-$FFE3) dw dummy_isr ; (No Vector Assigned $FFE4-$FFE5) dw dummy_isr ; (No Vector Assigned $FFE6-$FFE7) dw dummy_isr ; (No Vector Assigned $FFE8-$FFE9) dw dummy_isr ; (No Vector Assigned $FFEA-$FFEB) dw dummy_isr ; (No Vector Assigned $FFEC-$FFED) dw dummy_isr ; (No Vector Assigned $FFEE-$FFEF) dw dummy_isr ; (No Vector Assigned $FFF0-$FFF1) dw dummy_isr ; TIM1 Overflow Vector dw dummy_isr ; TIM1 Channel 1 Vector dw dummy_isr ; TIM1 Channel 0 Vector dw dummy_isr ; (No Vector Assigned $FFF8-$FFF9) dw dummy_isr ; ~IRQ1 dw dummy_isr ; SWI Vector dw dummy_isr ; Reset Vector * This source is (C)opyright 1999, P&E Microcomputer Systems, Inc.* Visit us at http://www.pemicro.com.
Toph:
--- Citar ---quisiera saber si alguien sabe como debo utilizar el conversor AD y como debe ir el programa para poder ver el valor de la temperatura en el display.
--- Fin de la cita ---
Hola :hola: ,debes conectar los pines VDDad y VSSad a los pines VDD y VSS del micro, la señal que quieras convertir no debe exceder estos valores, en el registro ADCLK se debe poner la frecuencia de reloj en que se hara la conversion.
Luego como este micro dispone de 8 canales en los puertos B7-B0 para introducir la señal analogica a convertir, debes indicarle al micro cual de ellos vas a usar para eso debes utilizar el registro ADSCR, en ese registro tambien esta la bandera que indica si una conversion ha sido completada y otras cosas, el otro registro que se usa es el ADR que es donde queda el dato ya convertido a digital para que puedas enviarlo al display.
Debes checar el datasheet del microcontrolador para saber como configurar estos registros ya que eso depende de lo que quieres hacer tu, checalos y si tienes alguna duda posteala :comp: , el datasheet lo puedes encontrar aqui: http://www.datasheetcatalog.net/cgi-bin/he...n&action=Search
Navegación
Ir a la versión completa