Académique Documents
Professionnel Documents
Culture Documents
126.6 mm largo 72,15 mm ancho DIAGRAMA DE PINES, BAQUELA DEL QUEMADOR Y MODULO DE PRACTICA INTEGRADO.
ENCONTRAR EL NUMERO MAYOR $Include 'jl3regs.inc' ; For the 68HC908JL3, 68HC908JK3, 68HC908JK1 RAM FLASH EQU $0080 EQU $EC00 ; Valid for all JL3, JK3, JK1
ORG FLASH INICIO BSET 0,CONFIG1 LDX #30T ; Se desabilita el watchdog del COP
; cargar el n?mero total de datos ;cargar de manera indexada los datos desde el ?ltimo
CARGAR LDA DATOS-1,X DECREM DECX BEQ FINAL CMP DATOS-1,X BHS DECREM BRA CARGAR FINAL STA MAXIMO
;en la tabla hasta el primero ; decrementar X ;si X=0 ir al final ;comparar el dato en el acumulador con el inmediatamente anterior ;si el dato en el acumulador es mayor, ir a decrementar ;si no es mayor, cargar el dato anterior ;al finalizar todas las comparaciones, salvar el valor m?ximo
; Reset Vector
ENCONTRAR EL MAXIMO Y MINIMO NUMERO $Include 'jl3regs.inc' RAM FLASH EQU $0080 EQU $EC00
ORG FLASH INICIO BSET 0,CONFIG1 CLR MAXIMO LDX #$FF STX MINIMO STX DATOX LDX #30T CARGAR LDA DATOS-1,X CMP DATOX BEQ FINAL CMP MAXIMO
BHI MAXIM CMP MINIMO BLO MINIM DECREM STA DATOX DECX BEQ FINAL BRA CARGAR MINIM STA MINIMO
ORG DW
RAM
EQU
1 2
ORG
FLASH 0,CONFIG1
INICIO BSET
MOV
MOV
MOV
*---------------------------------------------------------------------------------------------------
BEQ
IGUAL
STX
TIME,200T
BRA
ROTAIZ1
;VUELVE Y COMPARA-------------------------------------------------------------------------------------
BEQ
IGUAL
STX
TIME,300T
BRA
ROTAIZ1
;VUELVE Y COMPARA-------------------------------------------------------------------------------------
ROTAIZ1 ROL
#100T
DBNZ CONTA,REDO
RTS *-------------------------------------------------------------------------------------------
BCS MOV
ROTAIZ2 ROL
#100T
BRA MOV
ENTRA #$FF,DDRC
ORG DW
VECTOR INICIO
$Include 'gpgtregs.inc'
RAMStart RomStart
EQU $0040 EQU $E000 ; This is valid ROM on the GP32, GT16, and GT8
VectorStart EQU $FFDC SW COP K1 K2 K3 K4 EQU 2 EQU 0 EQU 500000 EQU 1000000 EQU 2000000 EQU 3000000 ;Constantes para el retardo de 0.5 seg, 1 seg, 2 seg, 3 seg. ;velocidades igual a 4
;-----------------------------------------------------------------------------------------------
Org RAMStart
CONTA DATO2
DS 2 DS 1
ORG RET1
LDA
#100T
INICIO
0,CONFIG1 ;Configuracion del PTA como salida ;Configuracion del PTB como salida
#%11111111,DDRA #%11111111,DDRB
;--------------------------------------------------------------------------------------------DESP MOV MOV BRA MOV BRA MOV BRA MOV BRA MOV BRA MOV BRA MOV #%10000000,PTA
#%00000000,PTB RET1 #%01000000,PTA RET1 #%00100000,PTA RET1 #%00010000,PTA RET1 #%00001000,PTA RET1 #%00000100,PTA RET1 #%00000010,PTA
;-------------------------------------------------------------------------------------------BRA MOV BRA MOV BRA MOV BRA MOV BRA MOV BRA MOV BRA MOV BRA MOV BRA RET1 #%01000000,PTB RET1 #%00100000,PTB RET1 #%00010000,PTB RET1 #%00001000,PTB RET1 #%00000100,PTB RET1 #%00000010,PTB RET1 #%00000001,PTB RET1 #%00000000,PTB DESP
Esta prctica tiene como objetivo la utilizacin del mdulo de conversin anlogo - digital incluido en el microcontrolador, junto con la LCD y una etapa de acondicionamiento de seal construida a partir de electrnica anloga. La idea es construir un detector de metales que informe de manera grfica en una LCD de 2x16 el grado de proximidad del objeto metlico. El rango de distancia debe ser entre cero y 10 cm como mnimo. La distancia mxima la determinar cada persona dependiendo del principio fsico que utilice para la medicin y el sensor construido. El sensor debe ser en lo posible lineal, aunque no es una caracterstica indispensable ya que se puede linea lizar por software. Toda la etapa de acondicionamiento de seal del sensor y las fuentes adicionales tienen libertad de eleccin y diseo. No hay limitaciones de hardware para el proceso de sensado de los metales. El sistema consta de tres etapas. La primera el sensado mediante un sensor inductivo (preferiblemente). La segunda una etapa de acondicionamiento de seal. La etapa final que es la de adquisicin de datos y de visualizacin de datos y despliegue grfico en la LCD.
La configuracin del mdulo ADC puede o no utilizar una interrupcin. Se puede realizar un proceso de conversin continua sin involucrar interrupciones o directamente testeando el valor de la bandera COCO, como en el ejemplo adjunto. Se puede emplear ms de un canal del ADC si es necesario. En la LCD se debe mostrar el carcter ASCII $FF cada vez que se acerca el sensor al objeto metlico, de manera que se produce el efecto de una barra desplegable en la segunda lnea que se alarga conforme aumenta la proximidad, o que se hace ms corta conforme se aleja el sensor del objeto metlico. En la primera lnea debe aparece un mensaje fijo de usuario y en la segunda lnea la barra indicadora de proximidad. Como parece en el diagrama.
ejemplo del ADC $include 'gpgtregs.inc' memprog RAM EQU $8000 EQU $0040
org RAM org memprog Resetea mov #$01,config1 #%01110000,ADCLK 0,DDRB #$FF,DDRA
main
************************************************************** * DUMMY_ISR - Dummy Interrupt Service Routine. * Just does a return from interrupt. * *
************************************************************** org VectorStart dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr ; Time Base Vector ; ADC Conversion Complete ; Keyboard Vector ; SCI Transmit Vector ; SCI Receive Vector ; SCI Error Vector
dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw Resetea
; SPI Transmit Vector ; SPI Receive Vector ; TIM2 Overflow Vector ; TIM2 Channel 1 Vector ; TIM2 Channel 0 Vector ; TIM1 Overflow Vector ; TIM1 Channel 1 Vector ; TIM1 Channel 0 Vector ; ICG/CGM Vector ; ~IRQ1 Vector ; SWI Vector ; Reset Vector
VectorStart EQU $FFDC fdt RW RS EN equ equ equ equ org RAM BANDERA DS DATA DS 1 1 $FF 0 1 2 ;entrada de control / dato ;entrada de habilitacion del LCD ;registro para indicar fin de escritura en lcd
1 1 1
;deshabilita el cop
**** CONFIGURACION DE PUERTOS ***** MOV #$FF,DDRA MOV #$00,PTA MOV #%11100000,DDRB MOV #$00,PTB **** INICIALIZACION DE VARIABLES Y REGISTROS **** CLR CONTLCD CLR CONTDEL CLR CONTREL MOV #$00,PTA ;bits d4 RS(0 contr. 1 dato) y d5 Habil.por 1 bclr EN,PTB ;lcd deshabilitado ; SENALES DE CONTROL PARA EL LCD ; DATOS PARA EL LCD
******************************** * RUTINAS DE CONFIGURACION LCD * ******************************** SETTING lda jsr #$01 ;borra la pantalla
#$02
control ;0000 0010 #$06 ;desplazamiento del cursor con cada dato
control ;0000 0110 #$0C ;cursor apagado (OFF) sin parpadeo o "blink"
************************************** MOSTRAR: LDA JSR CLRH CLRX MOV #16T,CONTLCD #$80 CONTROL ; DIRECCIONA LA PRIMERA LINEA
JSR INCX
ESCRIBIR
#$06
control ;0000 0111 #$0E ;cursor apagado (OFF) sin parpadeo o "blink"
MOSTRAR2: LDA JSR CLRH CLRX MOV #16T,CONTLCD #$C0 CONTROL ; DIRECCIONA LA SEGUNDA LINEA
MOSTRAR3: LDA JSR INCX DBNZ CONTLCD,MOSTRAR3 RTS ************************************** * RUTINA ESCRIBIR * MENS2,X ESCRIBIR
************************************* ESCRIBIR: nop STA PTA nop nop BSET rs,PTB ;INDICA QUE ES UN DATO nop BSET en,PTB ;habilitacion LCD nop nop BCLR en,PTB ;deshabilitacion LCD nop JSR DELAY RTS ************************************** * RUTINA DE CONTROL * ;PONE DATO EN EL PUERTO B
************************************** control: nop sta nop nop bclr RS,PTB ;indico que es un comando de control nop bset EN,PTB ;habilitacion LCD PTB ;pongo palabra de control en el puerto b
nop nop bclr EN,PTB ;deshabilitacion LCD nop jsr rts ************************************** DELAY: MOV DELAY1: MOV DELAY2: DBNZ CONTREL,DELAY2 DBNZ CONTDEL,DELAY1 RTS MENS1: db " PRIMERA LINEA " db fdt MENS2: db " SEGUNDA LINEA " db fdt ************************************************************** org VectorStart dw inicio ; Reset Vector #255T,CONTREL #40T,CONTDEL DELAY
FLASH RAM
VectorStart EQU $FFDC fdt RW RS EN equ equ equ equ org RAM DATA DS 1 1 1 1 $FF 0 1 1 ;registro para indicar fin de escritura en lcd ;LECTURA CUANDO ESTA SIEMPRE ESTA CONECTADO A NEGATIVO 0 ;entrada de control / dato RS EN CERO CONTROL / EN 1 PARA ESCRIBIR ;entrada de habilitacion del LCD **ENABLE O HABILITADOR** EN 1
;deshabilita el cop
*********************************************************** **** CONFIGURACION DE PUERTOS ***************************** *********************************************************** MOV #%11111111,DDRA MOV #%00000000,PTA DE ENVIO MOV #%11100000,DDRB ; PUERTO B CON TODOS LOS PINES COMO SALIDA ;ENVIO CEROS A LA SALIDA POR DEFECTO, EVITA ERRORES
************************************************** **** INICIALIZACION DE VARIABLES Y REGISTROS **** ************************************************** CLR CONTLCD CLR CONTDEL CLR CONTREL MOV #%00000000,PTA ;BORRAR EL BIT
******************************** * RUTINAS DE CONFIGURACION LCD * ******************************** SETTING lda jsr lda jsr lda jsr lda jsr lda jsr #%00000001 control ;borra la pantalla
************************************** control: nop sta nop nop bclr RS,PTB nop bset EN,PTB nop nop bclr EN,PTB nop jsr rts DELAY PTA ; ciclo vacio ;pongo palabra de control en el puerto A ; ciclo vacio ; ciclo vacio ;indico que es un comando de control ; ciclo vacio ;habilitacion LCD ; ciclo vacio ; ciclo vacio ;deshabilitacion LCD ; ciclo vacio ;saltar a la subrutina ;retornar a la subrutina
******************************************************** *RUTINA DE RETARDO NORMAL O DELAY********************** ******************************************************** DELAY: MOV DELAY1: MOV DELAY2: DBNZ CONTREL,DELAY2 DBNZ CONTDEL,DELAY1 RTS ;RETORNAR A LA SUBRUTINA #255T,CONTREL #40T,CONTDEL
****************************************************** HABILITAR LINEAS ****************************************************** BSET en,PTB ;habilitacion LCD ****************************** ESCRIBIR MOV #%1000000,PTB ; ESCRIBIO RS EN 0 ENVIAR LETRA MOV #%01000100,PTA ; C org VectorStart dw inicio ; Reset Vector
MANEJO DE UN SERVOMOTOR SERVOMOTOR (PWM) Esta prctica combina el modulo TIM del microcontrolador, un servomotor, y un potencimetro de una sola vuelta (5K o superior). Preferiblemente el potencimetro debe ser lineal. El microcontrolador se encarga de recibir la seal de entrada al conversor que proviene del potencimetro y de tomar las decisiones correspondientes al valor de conversin. Esto es, utilizando la modulacin por ancho de pulso, controlar un servomotor para que con la entrada al microcontrolador de un potencimetro de una sola vuelta se posicione el eje del servo en la misma posicin angular del eje del potencimetro. Esto configurara un sistema de lazo abierto, aunque internamente el servo conste de un sistema en lazo cerrado.
PRUEBA DEL SERVO. $include 'gpgtregs.inc' memprog RAM EQU $8000 EQU $0040
VectorStart EQU $FFDC COCO RS EN EQU 7 EQU 0 EQU 1 org RAM num1 NUM2 ds DS 1 1 1 1 1
1 1
org memprog Resetea mov #$01,config1 #%00010000,ADCLK 0,DDRB #$FF,DDRA #$FF,DDRC #$00,DDRD #$FF,PTDPUE #0T,NOM MAIN main 0,PTC DELAY 0,ptc delay3 INICIO
mov bclr MOV MOV MOV MOV MOV JSR inicio jsr BSET JSR bclr jsr JMP main clra jsr sta sta rts
medicion MOV
#%00100000,ADSCR
************************************** DELAY: MOV DELAY1: MOV DELAY2: DBNZ CONTREL,DELAY2 DBNZ CONTDEL,DELAY1 RTS DELAY3 MOV DELAY4: MOV DELAY5: DBNZ CONTREL1,DELAY5 DBNZ CONTDEL1,DELAY4 RTS ************************************************************** * DUMMY_ISR - Dummy Interrupt Service Routine. * Just does a return from interrupt. * * #170t,CONTREL1 #1t,CONTDEL1 num1,CONTREL #1t,CONTDEL
************************************************************** dummy_isr:
rti
; return
************************************************************** org VectorStart dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw Resetea ; Time Base Vector ; ADC Conversion Complete ; Keyboard Vector ; SCI Transmit Vector ; SCI Receive Vector ; SCI Error Vector ; SPI Transmit Vector ; SPI Receive Vector ; TIM2 Overflow Vector ; TIM2 Channel 1 Vector ; TIM2 Channel 0 Vector ; TIM1 Overflow Vector ; TIM1 Channel 1 Vector ; TIM1 Channel 0 Vector ; ICG/CGM Vector ; ~IRQ1 Vector ; SWI Vector ; Reset Vector
memprog RAM
VectorStart EQU $FFDC COCO RS EN EQU 7 EQU 0 EQU 1 org RAM num1 NUM2 ds DS 1 1 1 1 1 1 1
org memprog Resetea mov #$01,config1 #%00010000,ADCLK 0,DDRB #$FF,DDRA #$FF,DDRC #$00,DDRD #$FF,PTDPUE #0T,NOM MAIN
inicio
main
#%00100000,ADSCR
************************************** DELAY: MOV DELAY1: MOV DELAY2: DBNZ CONTREL,DELAY2 DBNZ CONTDEL,DELAY1 RTS DELAY3 num1,CONTREL #1t,CONTDEL
#2t,CONTDEL1
#181t,CONTREL1
DBNZ CONTREL1,DELAY5 DBNZ CONTDEL1,DELAY4 RTS ************************************************************** * DUMMY_ISR - Dummy Interrupt Service Routine. * Just does a return from interrupt. * *
************************************************************** org VectorStart dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr ; Time Base Vector ; ADC Conversion Complete ; Keyboard Vector ; SCI Transmit Vector ; SCI Receive Vector ; SCI Error Vector ; SPI Transmit Vector ; SPI Receive Vector
dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw dummy_isr dw Resetea
; TIM2 Overflow Vector ; TIM2 Channel 1 Vector ; TIM2 Channel 0 Vector ; TIM1 Overflow Vector ; TIM1 Channel 1 Vector ; TIM1 Channel 0 Vector ; ICG/CGM Vector ; ~IRQ1 Vector ; SWI Vector ; Reset Vector
MANEJO DE LCD DE 2X16 El objetivo de la prctica es la familiarizacin y el uso de una LCD alfanumrica de 2X16 mediante la implementacin de una rutina que integra el envi de datos a la LCD y las prcticas anteriores de envi de datos desde el microcontrolador. Rotar los nombres y los cdigos de los integrantes del grupo en el rea visible de la LCD tipo publik de izquierda a derecha en las dos lneas. La frecuencia de desplazamiento de los caracteres es libre, pero debe ser tal que permita ver claramente los caracteres cuando se estn moviendo. Cuando el ltimo caracter de la palabra de la primera lnea desaparece debe aparecer en la lnea inferior. El rea visible es el que aparece a continuacin:
La siguiente tabla contiene los nombres y cdigos con sus espacios de memoria correspondientes. 0 1 2 3 4 5 6 7 8 9 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 0 1 2 2 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 n n n n n n n n &n n n n 1 1 3 3 3 4 4 4 5 5 5 1 0 0 8 9 5 3 3 0 1 5 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 7 7 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 n n n 1 0 1 2 1 2 3 3 0 9 7 1 0 1 7 2 2 3 3 0 1 2 n n n n n n n n &n
El procedimiento fue el siguiente: Se activa la primera lnea con los nombres ya ingresados en la memoria RAM de la LCD, se empieza a rotar pantalla, la cual es un marco imaginario que recorre los espacios de memoria, con 16 caracteres dentro. La rotacin es izquierda, despus de terminada la rotacin, los caracteres que quedan en el extremo derecho son borrados sucesivamente, aparentando una ocultacin, cuando se termina de borran el numero especifico de veces, se activa la segunda lnea y se empieza a rotar pantalla de nuevo.
Inicio Preproceso, cargar las libreras, definir los alias de memoria Entrada de variables Datos, variables de comparacin y variables de conteo Configuracin del micro, inicializacin de variables Si los datos son iguales Si el primer nmero es mayor que el segundo Fin Decrementar la variable de conteo de parejas Reorganizar los datos La variable de conteo de parejas llego a cero Limpiar el registro ndice, reinicializar la variable de conteo de parejas Cargar los datos por parejas en las variables de comparacin usando modo de direccionamiento indexado Realizar la comparacin entre los datos por parejas Verificar si ya se ordenaron todos los datos Se termino el ordenamiento Incrementar la variable de veces de comparacin. PROGRAMA. $include 'gpgtregs.inc' FLASH EQU $8000 RAM EQU $0040
fdt RW RS EN
$FF 0 6 7
org FLASH inicio: bset 0,CONFIG1 clrx clra **** CONFIGURACION DE PUERTOS ***** MOV #$FF,DDRA MOV #$00,PTA MOV #$FF,DDRB MOV #$00,PTB MOV #$00,DDRC MOV #$FF,PTCPUE ;PONER PUERTO C COMO ENTRADA ;PONER RESISTENCIA DE PULLUP ; SEALES DE CONTROL PARA EL LCD ; DATOS PARA EL LCD ;deshabilita el cop ;BORRAR REGISTROS
MOV
#$00,PTA
BCLR RS,PTB bclr EN,PTB ******************************** * RUTINAS DE CONFIGURACION LCD * ******************************** SETTING lda jsr lda jsr lda jsr lda jsr MOV MOV MOV MOV BCLR #$01 ;borra la pantalla
control ;0000 0010 #$0C ;cursor apagado (OFF) sin parpadeo o "blink"
#0T,CONTLCD ;contador general del total de letras #0T,CONT #0T,CONT2 RS,PTB ;CONTADOR GENERAL , DE LOS 80 DATOS ;CONTADOR PARA CARGAR SOLAMENTE 8 DATOS...matrix 8*5
CONTROL
CLRX BSET NOMBRES LDX LDA JSR INCX STX CONTLCD CONTLCD MENS1,X ESCRIBIR RS,PTB
CBEQX #13T,CARGAR BRA CARGAR LDA JSR CLRH CLRX DIGITOS LDX LDA JSR INCX CBEQX #80T,MOV2 COMPA BRSET 0,PTC,COMPA BRSET 0,PTC,COMPA STX LDX CONT CONT2 ;COMPARAR SOLAMENTE PARA Q GUARDE 8 DATOS EN LA ;GUARDAR LOS CONTADORES ;COMPARAR SI TERMINO DE ESCRIBIR TODOS LOS DATOS ;MIRAR EL PULSADOR SI ESTA EN 0 ,CONTINUA CONT ;CARGAR EL CONTADOR GENERAL #64T CONTROL NOMBRES ;RUTINA PARA CARGAR LA PRIMERA POSICION DE LA CGRAM
DATOS,X ESCRIBIR
;POSICION DE LA CGRAM
STX BRA
CONTROL ;AUMENTAR LAS POSICIONES Y AL LA MISMA VEZ BORRARLAS ESCRI ;COMPARAR EL PULSADOR SI ESTA EN 0,CONTINUA
COMPA1 BRSET 0,PTC,COMPA1 BRSET 0,PTC,COMPA1 MOV LDA JSR LDA JSR LDA JSR JSR JSR JSR JSR LDA JSR #$00,CONT2 #$00 ESCRIBIR #$8E CONTROL #$00 ESCRIBIR DELAY DELAY DELAY ERASE ESCRI CONTROL
;RETARDOS
ESCRI
;RUTINA PARA MOSTRAR EL ULTIMO DIGITO ;YA QUE NO LO visualizara SI NO SE HACE ESTA RUTINA
CONTROL
INCA STA MOV LDA JSR LDA JSR LDA JSR JSR JSR JSR JSR LDA JSR JSR MOV MOV MOV JMP ESCRI #$00,CONT2 #$00 ESCRIBIR #$8E CONTROL #$00 ESCRIBIR DELAY DELAY DELAY ERASE ESCRI CONTROL ERASE #00T,CONT #00T,CONT2 #$C3,ESCRI CARGAR ;PONER EL CONTADOR DE POSICIONES,DE LA LINEA DE ABAJO ;IR A CARGAR PARA REPETIR EL CICLO ;PONER LOS CONTADORES EN 0 PARA VOLVER A COMENZAR
#$10 ;
;VOLVER DE LA SUBRUTINA
**************************************
ESCRIBIR: nop STA PTA nop nop BSET rs,PTB ;INDICA QUE ES UN DATO nop BSET en,PTB ;habilitacion LCD nop nop BCLR en,PTB ;deshabilitacion LCD nop JSR DELAY RTS ;PONE DATO EN EL PUERTO B
**************************************
control: nop sta nop nop bclr RS,PTB ;indico que es un comando de control nop bset EN,PTB ;habilitacion LCD nop nop bclr EN,PTB ;deshabilitacion LCD nop jsr rts ************************************** DELAY: MOV DELAY1: MOV DELAY2: DBNZ CONTREL,DELAY2 DBNZ CONTDEL,DELAY1 #255T,CONTREL #20T,CONTDEL DELAY PTA ;pongo palabra de control en el puerto b
RTS
DATOS db 00,00,00,00,00,1c,14,18 db 00,00,00,1c,14,10,10,00 db 00,1c,14,10,10,00,00,00 db 1c,14,0c,00,00,00,00,00 db 0f,01,03,00,00,00,00,00 db 03,05,07,00,00,00,00,00 db 00,01,01,05,07,00,00,00 db 00,00,00,01,01,05,07,00 db 00,00,00,00,00,06,05,07 db 00,00,00,00,00,18,10,1e MENS1 DB "PLUTO&RON"
;DATOS DE CADA UNO DE LOS GRAFICOS ;SON 80 DATOS ;EQUIVALENTE A 10 DIGITOS DIFERENTES
0 0 0 1 1 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
1 1 1 1 1 1 1
1 1 1 1 1 1 1
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
16 T 16 T 16 T 16 T 16 T 16 T
16 T 16 T
HEXA 10 HEXA 10
24 T 24 T 24 T 24 T 24 T 24 T 24 T 24 T
28 T 28 T 28 T 28 T 28 T 28 T 28 T 28 T
30 T 30 T 30 T 30 T 30 T 30 T 30 T 30 T
31 T 31 T 31 T 31 T 31 T 31 T 31 T 31 T
MANEJO DE TECLADO 4 X 4
digito 1 2 3 A 4 5 6 B 7 8 9 C * 0 # D
C1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1
C2 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
C3 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
C4 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0
F1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
F2 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1
F3 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1
F4 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
a 0 1 1 1 0 1 1 0 1 1 1 1 0 1 0 0
b 1 1 1 1 1 0 0 0 1 1 1 0 1 1 1 1
c 1 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1
d 0 1 1 0 0 1 1 1 0 1 0 1 0 1 0 1
e 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1
f 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 0
g 0 1 1 1 1 1 1 1 0 1 1 0 1 0 1 1
;-------------------------LA ENTRADA DEL TECLADO ES EL PUERTO A... ;-------------------------LA SALIDA EN EL DISP ES EL PUERTO B.... ORG CONTA DS N1 N2 N3 DS DS DS 1 1 1 RAM 1
NA
DS
;-----------------------------------SEGUNDA FILA N4 N5 N6 NB DS DS DS DS 1 1 1 1
;-----------------------------------TERCERA FILA N7 N8 N9 NC DS DS DS DS 1 1 1 1
INICIO BSET 0,CONFIG1 MOV #%01110111,N1 COLUMNAS MOV MOV MOV #%10110111,N2 #%11010111,N3 #%11100111,NA ;NUMERO 1 EN EL TECLADO LAS CONBINACIONES DEL TECLADO FILAS Y
;---------------------------------------SEGUDA FILA MOV MOV #%01111011,N4 #%10111011,N5 ;NUMERO 4 EN EL TECLADO ;NUMERO 5 EN EL TECLADO
MOV MOV
#%11011011,N6 #%11101011,NB
;---------------------------------------TERCERA FILA MOV MOV MOV MOV #%01111101,N7 #%10111101,N8 #%11011101,N9 #%11101101,NC ;NUMERO 7 EN EL TECLADO ;NUMERO 8 EN EL TECLADO ;NUMERO 9 EN EL TECLADO ;NUMERO C EN EL TECLADO
;--------------------------------------CUARTA FILA MOV MOV MOV MOV MOV MOV MOV MOV #%01111110,NX #%10111110,N0 #%11011110,NS #%11101110,ND #%00001111,DDRA #%11111111,DDRB #%11110000,PTAPUE #%00000000,PTB #%00000111,PTA PTA ;NUMERO * EN EL TECLADO ;NUMERO 0 EN EL TECLADO ;NUMERO # EN EL TECLADO ;NUMERO D EN EL TECLADO ;CONFIG LA MITAD DEL PUERTO COMO ENTRADA Y LA OTRA COMO SALIDA ;CONFIG PUERTO B COMO SALIDA ;RESISTENCIAS DE PULLUP ;ENVIAR CEROS A PTB ;PRIMERA CONBINACION DE LA FILA 1, UN BIT ESTA EN 0 Y ROTA
CBEQ N1,ST1 1 CBEQ N2,ST2 CBEQ N3,ST3 CBEQ NA,STA JSR MOV LDA RETA
#%00001011,PTA PTA
;CARGAR EL PTA
COMP2 CBEQ N4,ST4 CBEQ N5,ST5 CBEQ N6,ST6 CBEQ NB,STB JSR MOV LDA RETA
#%00001101,PTA PTA
COMP3 CBEQ N7,ST7 CBEQ N8,ST8 CBEQ N9,ST9 CBEQ NC,STC JSR MOV LDA RETA
#%00001110,PTA PTA
COMP4 CBEQ NX,STXL INVERTIDA" CBEQ N0,ST0 CBEQ NS,STS CBEQ ND,STD BRA ST1 CMP1
ST2
ST3
COMP
STA
ST4
ST5
ST6
STB
ST7
ST8
ST9
CLRA
#%00011111,PTB COMP3
STS
STD
#50T,CONTA
;RETARDOS
#100T
DBNZ CONTA,REDO
MOTOR DE PASOS (SISTEMA DE ESTAMPADO) Este proyecto consiste en un sistema de estampado de caracteres segn la informacin que entra al microcontrolador a travs del teclado matricial. Tambin cuenta con un pulsador externo para borrar el cdigo almacenado en memoria (sea voluntariamente o porque se cometi un error de digitacin) y una LCD de 2x16 donde se visualizar el cdigo conforme se va digitando y que permitir verificar que no hay un error antes de realizar su impresin. El impresor es un sistema dinmico de control de lazo abierto ya que no hay ningn elemento sensor que permita establecer una desviacin y realizar una correccin del error de manera dinmica. Por lo tanto, el correcto desempeo del dispositivo depende completamente de la calibracin y ajuste inciales que se realizan a nivel fsico y mecnico. El esquema general de los componentes es el que se muestra a continuacin.
Figura (1).
Dentro del sistema se distinguen las siguientes etapas o subsistemas. Una etapa de adquisicin de informacin. Esta se realiza mediante un teclado matricial acoplado al microcontrolador (usando o no las interrupciones de teclado). Una segunda etapa de visualizacin donde irn apareciendo los datos pulsados al momento de digitarse cada uno de los nmeros. En esta etapa se muestra un mensaje fijo en la primera lnea de la LCD preguntando por el cdigo. En la segunda lnea es donde aparecer el cdigo, conforme se realiza el proceso de almacenamiento.
El proceso de estampado inicia cuando se pulsa la tecla de validacin en el teclado. Esta tecla de validacin es # y es la misma para todos los estudiantes. Pueden tambin programarse otras funciones adicionales con las teclas restantes.
La etapa de estampado consiste en unos sellos distribuidos en la periferia de un disco acoplado a un motor de pasos. Esta etapa adems cuenta con un solenoide alineado con la posicin radial a la que se encuentran los caracteres (sellos) y que cumplir la funcin de ser el actuador, una vez se haya realizado el desplazamiento del disco. La entrada de la etapa de estampado es una etapa de potencia que se encarga de recibir las instrucciones por parte del micro y enviarlas a las diferentes bobinas involucradas, ya sean las del motor o la del solenoide. El proceso de desplazamiento del papel sobre el que se est estampando es manual. Para simplificar el problema de tinta, se recomienda usar papel carbn sobre el papel blanco. DESCRIPCION DEL MONTAJE: Se utilizo un motor de pasos unipolar que consta de varias bobinas, el cual funciona a 20 voltios DC, el disco rotativo se fabrico con 12 agujeros en la periferia donde se encontraran los (marcadores) adheridos a una lamina de acetato flexible con el objeto de que permita flexionarse al bajar el ncleo del solenoide, se deicidio construir la maquina en acero, puesto que el impacto del solenoide podra desajustar la maquina al estar hecha de materiales como maderas y plsticos, en la figura (2) pueden apreciar el montaje. La etapa de potencia se realizo mediante el circuito integrado (ULN 2803), donde la funcin bsica de este es reemplazar los transistores (2n3904) o (2n3906) en estado de interrupcin. El (ULN 2803) se encuentra conectado a las cuatro primeras salidas del puerto ( C ) del microcontrolador GP32, donde provienen las seales de control para el motor de pasos, all se realiza una ola de dos bit seguidos. En la figura (5) se puede apreciar el integrado. Para manejar los 30v y los 0.4 amperios que alimentan al solenoide, fue necesario utilizar un relevo, que opera con 5v a 12 v en la entrada, y permite una salida de 120v 1 amperio. Esto tambin pudo solucionarse con el transistor (2n 3055) en estado de interrupcin.
DESCRIPCION DEL PROGRAMA: 1)-asignacin de variables y configuracin de puertos. 2)-activacin del teclado y de la LCD. 3)-guardar indexado los datos. 4)-cargar el primer dato. 5)-cargar los dems datos indexado y compararlos con el inmediatamente anterior. 6)-imprimir.
Figura (2).
Figura (3).
Figura (4).
Figura (5) MANEJO DEL MOTOR DE PASOS Unipolar: Estos motores suelen tener 6 o 5 cables de salida, dependiendo de su conexionado interno (ver figura 2). Este tipo se caracteriza por ser ms simple de controlar. En la figura 6 podemos apreciar un ejemplo de conexionado para controlar un motor paso a paso unipolar mediante el uso de un ULN2803, el cual es una array de 8 transistores tipo Darlington capaces de manejar cargas de hasta 500mA. Las entradas de activacin (Activa A, B, C y D) pueden ser directamente activadas por un microcontrolador.
Figura (6)
Secuencias para manejar motores paso a paso Unipolares Existen tres secuencias posibles para este tipo de motores, las cuales se detallan a continuacin. Todas las secuencias comienzan nuevamente por el paso 1 una vez alcanzado el paso final (4 u 8). Para revertir el sentido de giro, simplemente se deben ejecutar las secuencias en modo inverso. Secuencia Normal: Esta es la secuencia ms usada y la que generalmente recomienda el fabricante. Con esta secuencia el motor avanza un paso por vez y debido a que siempre hay al menos dos bobinas activadas, se obtiene un alto torque de paso y de retencin. PASO 1 2 3 4 BOBINA A 1 0 0 1 BOBINA B 1 1 0 0 BOBINA C 0 1 1 0 BOBINA D 0 0 1 1
$ include 'gpgtregs.inc' RAM equ $0040 $8000 $FFFE 0 4 5 2 ;entrada de habilitacion del LCD ;entrada de control / dato
SOLENO EQU
ORG
RAM
1 1 1
;controle lcd
CONTA DS
;retardo teclado
TIME DS
;variable de posicion
1 1 1
;-----------------------------------SEGUNDA FILA N4 N5 N6 NB DS DS DS DS 1 1 1 1
;-----------------------------------TERCERA FILA N7 N8 N9 NC DS DS DS DS 1 1 1 1
;-----------------------------------CUARTA FILA NX N0 DS DS 1 1
ND NS
DS DS
;deshabilita el cop
**** CONFIGURACION DE PUERTOS ***** MOV #%00001111,DDRA MOV #%11110000,PTAPUE MOV #$FF,DDRB MOV #$FF,DDRC MOV #$FF,DDRD MOV #$00,PTA MOV #$00,PTB MOV #$00,PTC MOV #$00,PTD MOV #0T,TIME MOV #0T,CONT3 MOV #0T,CONT5 MOV #0T,CONT6 ; SEALES DE CONTROL PARA EL LCD ; DATOS PARA EL LCD
;---------------------------------------SEGUDA FILA MOV MOV MOV MOV #%01111011,N4 #%10111011,N5 #%11011011,N6 #%11101011,NB ;NUMERO 4 EN EL TECLADO ;NUMERO 5 EN EL TECLADO
;---------------------------------------TERCERA FILA MOV MOV MOV MOV #%01111101,N7 #%10111101,N8 #%11011101,N9 #%11101101,NC
;--------------------------------------CUARTA FILA MOV MOV MOV MOV #%01111110,NX #%10111110,N0 #%11011110,NS #%11101110,ND
BCLR SOLENO,PTD SETTING lda jsr lda jsr #$01 control #$02 control ;borra la pantalla ;0000 0001 ;vuelve a posicion inicial ;0000 0010
;cursor apagado (OFF) sin parpadeo o "blink" ;0000 1100 ;ACTIVAR SEGUNDA LINEA ;0000 1110 ;contador general del total de letras
CONTROL
BSET RS,PTD NOMBRES LDX LDA JSR INCX STX CONTLCD CONTLCD MENS1,X ESCRIBIR
CONTROL
CMP1
MOV
#%00000111,PTA
COMP LDA
PTA
CBEQ N1,IR1 CBEQ N2,IR2 CBEQ N3,IR3 CBEQ NA,IRA JSR MOV LDA RETA #%00001011,PTA PTA
COMP2 CBEQ N4,IR4 CBEQ N5,IR5 CBEQ N6,IR6 CBEQ NB,IRB JSR MOV LDA RETA #%00001101,PTA PTA
COMP3 CBEQ N7,IR7 CBEQ N8,IR8 CBEQ N9,IR9 CBEQ NC,IRC JSR RETA
MOV LDA
#%00001110,PTA PTA
BRA
CMP1
IR1 IR2 IR3 IRA IR4 IR5 IR6 IRB IR7 IR8 IR9 IRC IRX IR0 IRS IRD
JMP JMP JMP JMP JMP JMP JMP JMP JMP JMP JMP JMP JMP JMP JMP JMP
ST1 ST2 ST3 STA ST4 ST5 ST6 STB ST7 ST8 ST9 STC STXL ST0 STS STD
ST1
CLRA LDA JSR LDA LDX STA INCX STX LDX INCX STX JMP CONT5 COMP2 CONT3 CONT5 #$31 ESCRIBIR #1T CONT3 DATOS,X
ST2
CLRA LDA JSR LDA LDX STA INCX STX LDX INCX STX JMP CONT5 COMP2 CONT3 CONT5 #$32 ESCRIBIR #2T CONT3 DATOS,X
ST3
CLRA
LDA JSR LDA LDX STA INCX STX LDX INCX STX JMP STA
CONT3 CONT5
CONT5 COMP2
ST4
CLRA LDA JSR LDX LDA STA INCX STX LDX INCX STX CONT5 CONT3 CONT5 #$34 ESCRIBIR CONT3 #4T DATOS,X
JMP ST5
COMP2
CLRA LDA JSR LDA LDX STA INCX STX LDX INCX STX JMP CONT5 COMP2 CONT3 CONT5 #$35 ESCRIBIR #5T CONT3 DATOS,X
ST6
CLRA LDA JSR LDA LDX STA INCX STX LDX INCX STX JMP CONT5 COMP2 CONT3 CONT5 #$36 ESCRIBIR #6T CONT3 DATOS,X
STB
ST7
CLRA LDA JSR LDA LDX STA INCX STX LDX INCX STX JMP CONT5 COMP3 CONT3 CONT5 #$37 ESCRIBIR #7T CONT3 DATOS,X
ST8
CLRA LDA JSR LDA LDX STA INCX STX LDX INCX STX CONT5 CONT3 CONT5 #$38 ESCRIBIR #8T CONT3 DATOS,X
JMP
COMP3
ST9
CLRA LDA JSR LDA LDX STA INCX STX LDX INCX STX JMP CONT5 COMP3 CONT3 CONT5 #$39 ESCRIBIR #9T CONT3 DATOS,X
STC
CLRA LDA JSR LDA LDX STA INCX #$30 ESCRIBIR #0T CONT3 DATOS,X
CONT3 CONT5
CONT5 COMP4
STS
STD
CLRA LDA JSR LDA LDX STA INCX STX JMP CONT3 COMP4 #$2D ESCRIBIR #10T CONT3 DATOS,X
IMPRIMIR LDX LDA STA JSR JSR #0T DATOS,X NUM1 PRINT SOLEN
MOV
#0T,TIME
CARGARDATOS
LDX LDA CMP BHI BLO BEQ BRA DERECHA LDX LDA SUB STA MOV JSR JSR LDX INCX STX JMP
CONT6 CARGARDATOS
IZQUIERDA
LDX CONT6 LDA DATOS,X SUB DATOS+1,X STA NUM1 MOV #0T,TIME JSR PRINT2 JSR SOLEN LDX CONT6 INCX STX CONT6
JMP CARGARDATOS IGUAl JSR RETA JSR RETA JSR SOLEN LDX CONT6 INCX STX CONT6 JMP CARGARDATOS PRINT2 LDX TIME LDA NUM1 CMP TIME BEQ SALIR2 BRA SEGUIR2 ;bajar solenoide ;si es igual el numero
SEGUIR2 JSR ROTARI INCX STX TIME JMP PRINT2 SALIR2 RTS PRINT LDX TIME LDA NUM1 CMP TIME BEQ SALIR BRA SEGUIR SEGUIR JSR ROTARD INCX STX TIME JMP PRINT ;
SALIR RTS ROTARD JSR JSR JSR JSR RTS ROTARDERECHA MOV #%1100,PTC ;riotar derecha ROTARDERECHA ROTARDERECHA ROTARDERECHA ROTARDERECHA
jsr jsr
reta reta
RTS ROTARI JSR JSR JSR JSR ROTARIZQUIERDA ROTARIZQUIERDA ROTARIZQUIERDA ROTARIZQUIERDA
RTS
ROTARIZQUIERDA
;rotar izquierda
MOV
#%1100,PTC
jsr jsr
reta reta
RTS SOLEN BSET 2,PTD JSR JSR JSR RETA RETA RETA ;rutina bajar solenoide
**************************************
ESCRIBIR: nop STA PTB nop nop BSET rs,PTD ;INDICA QUE ES UN DATO nop BSET en,PTD ;habilitacion LCD nop nop BCLR en,PTD ;deshabilitacion LCD nop JSR DELAY RTS ;PONE DATO EN EL PUERTO B
**************************************
control: nop sta PTB ;pongo palabra de control en el puerto b nop nop bclr RS,PTD ;indico que es un comando de control nop bset EN,PTD ;habilitacion LCD nop nop bclr EN,PTD ;deshabilitacion LCD nop jsr DELAY rts
DELAY2: DBNZ CONTREL,DELAY2 DBNZ CONTDEL,DELAY1 RTS RETA MOV LDA #255T,CONTA
#100T
DEDICATORIA
Las universidades privadas de comunidades catlicas o cristianas, castran, limitan, cohben, la libertad de pensamiento. su negocio es lavar cerebros mediante libros que estn escritos al acomodo y beneficio, de quienes quieren atemorizar y gobernar al mundo. estas comunidades solo piensan en captar dinero y poder en las arcas de quien las administra. son carentes de tica y de fundamento filosfico. Al observar cmo actan te dars cuenta del costal de falacias que vomitan por sus bocas. esta gente no merece ser llamada comunidad sino partido poltico religioso. estas populistas son clasistas y mezquinos, contra aquellos que promueven la libertad y el multi culturalismo del mundo. son hipcritas y faltos de carcter cuando de asumir responsabilidades se trata, sobre todo cuando ellos son causantes de los problemas de la humanidad. estas universidades privadas solo piensan en recibir el dinero de una matrcula, sin pensar en la calidad de educacin que estn vendiendo. estos solo pretenden llenar sus
aulas de estudiantes incautos, con sueos de superacin personal. Quines aceptan su falsa retorica, triunfan, obteniendo el titulo, quienes no, padecern hasta el punto de hacerlos desistir de su sueo u objetivo. Para estos polticos, con traje de sacerdote, lo ms importante es la propaganda, para recibir ms de estos incautos, mediante la falsa fachada de la investigacin como principio, que resulta ser una mentira, puesto que ni siquiera se invierten recursos significativos para que funcione, el objeto de esta, es consultar sobre lo ya investigado, y pegarlo en una revista con el nombre de la universidad. para aquellos que piensan entrar a desarrollar un proyecto de innovacin o invencin, no pierdan su tiempo en buscar apoyo en estas instituciones, preocpense por patentarlo, y luego en construirlo por cuenta propia. como ya es sabido, la ambicin desmedida, de estos comits es apropiarse del trabajo, para modificarlo, y patentarlo como modelo de utilidad a nombre de la universidad, y por ultimo venderlo a un tercero de manera oculta. si usted ya ha patentado su proyecto, y desea entrar en conciliacin con la universidad para fabricarlo. no pierda su tiempo, se ganara un enemigo, y pondr en cuerda floja su carrera. si quiere tener xito en una universidad de estas, nunca demuestre mayores capacidades de las que puedan tener sus docentes, nunca devele cosas anteriormente aprendidas, sea preguntn y adulador al mismo tiempo, no haga caer en cuenta los errores de los docentes delante de la clase, no genere controversia, ni siquiera coloque crticas constructivas, no sea autodidacta, recurra siempre al profesor, recuerde que mantenerle el ego a los integrantes es lo importante, sea catlico, entre a sus templos, siga sus costumbres, haga parte enteramente de su comunidad, as usted no est de acuerdo. estudie y haga parte de un grupo de investigacin, as no hagan nada extraordinario, ganara puntos. por ltimo les invito hacer del estado, su escudo y espada, para defenderse de aquellos, que pretenden serlo, pero que nunca aparecen, cuando tienen que luchar por nuestros derechos, no hay que dejaos amedrentar por una partida de fascistas con sotana y silla en el senado. la educacin y la ciencia, sern las herramientas para sostenernos y liberarnos del yugo. la universidad pblica prevalecer.
ATT ANONIMUS