El programa consiste en mostrar una serie caracteres en 4 display multiplexados.
los caracteres se muestran en grupos de 4 y se desplazan a la izquierda.
Diagrama de Conexión:
Funcionamiento:
- Aplicando un procedimiento de multiplexaje se muestran los primeros 4 caraceres (CHAR1, CHAR2, CHAR3 y CHAR4).
- transcurrido un tiempo tal que el ojo pueda captar los caracteres se desplaza la cadena hacia la izquierda y se muestran los siguientes 4 caracteres (CHAR2, CHAR3, CHAR4, CHAR5).
- El programa comprueba si se mostraron todos los caracteres y cuando esto ocurre el proceso se repite.
Programa en Assembler:
;-----------------------------------------------------------
;Autor: LONELY113
; http://lonely113.blogspot.com
;
;Programa para multiplexar 4 display
;Muestra mensaje LONELY113 con desplazamiento a la izquierda
;Salidas: Puerto B (RB1-RB7) 7 segmentos de display
; Puerto A (RA0-RA3) habilitacion de display
;Tipo de display: Catodo comun
;-----------------------------------------------------------
include "p16f84a.inc"
list P=16f84a
__CONFIG _WDT_OFF & _XT_OSC
COUNT1 equ 0x0C
COUNT2 equ 0x0D
COUNT3 equ 0x0E
CHAR equ 0xF
org 0x00 ; Inicio de programa
bsf STATUS,5 ; Inicio configuracion E/S
clrf PORTA ; PORTA como salidas de habilitacion
clrf PORTB ; PORTB como salida a displays
bcf STATUS,5 ; Fin configuracion E/S
movlw 0x00
movwf PORTB
movlw 0x0F
movwf PORTA ; Deshabilita todos los displays
clrf CHAR
movlw 0xFF ; Inicializacion de contadores
movwf COUNT1
movlw 0x20
movwf COUNT2
movlw 0x20
movwf COUNT3
BEGIN: call TABLE ; Inicio de rutina principal
movwf PORTB
bcf PORTA,3
nop ; Visualizacion por Display4
bsf PORTA,3
incf CHAR,1
call TABLE
movwf PORTB
bcf PORTA,2
nop ; Visualizacion por Display3
bsf PORTA,2
incf CHAR,1
call TABLE
movwf PORTB
bcf PORTA,1
nop ; Visualizacion por Display2
bsf PORTA,1
incf CHAR,1
call TABLE
movwf PORTB
bcf PORTA,0
nop ; Visualizacion por Display1
bsf PORTA,0
movlw 0x03
subwf CHAR,1
decfsz COUNT1,1 ; Rutina de repeticion
goto BEGIN ; de visualizacion de los
movlw 0xFF ; 4 caracteres
movwf COUNT1
decfsz COUNT2,1
goto BEGIN
movlw 0xFF
movwf COUNT1
movlw 0x20
movwf COUNT2
decfsz COUNT3
goto BEGIN
incf CHAR,1 ; Mostrar los siguientes caracteres
movlw 0xFF ; Inicializacion de contadores
movwf COUNT1
movlw 0x20
movwf COUNT2
movlw 0x20
movwf COUNT3
movlw 0x0C ; Comprueba si se mostro los
subwf CHAR,0 ; 4 ultimos caracteres
btfsc STATUS,2
clrf CHAR
goto BEGIN
; Subrutinas
TABLE movf CHAR,0 ; Tabla de caracteres a mostrar
addwf PCL
retlw 0x00 ; Caracter _
retlw 0x00 ; Caracter _
retlw 0x00 ; Caracter _
retlw 0x70 ; Caracter L
retlw 0x7E ; Caracter O
retlw 0x6E ; Caracter N
retlw 0xF3 ; Caracter E
retlw 0x70 ; Caracter L
retlw 0xDC ; Caracter Y
retlw 0x0C ; Caracter 1
retlw 0x0C ; Caracter 1
retlw 0x9E ; Caracter 3
retlw 0x00 ; Caracter _
retlw 0x00 ; Caracter _
retlw 0x00 ; Caracter _
end ; Fin de programa
Archivos .ASM y .HEX
Descargar
No hay comentarios:
Publicar un comentario