miércoles, 2 de marzo de 2011

Multiplexaje de Display con Desplazamiento de Caracteres

Programa para PIC16F84A

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.
Prueba:


 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