martes, 1 de marzo de 2011

Selección de Código binario y Visualización

Programa para PIC16F84A

Monitorea la entrada de un código binario (4 bits) y muestra la selección en BCD mediante 4 leds y en decimal mediante un display.

-Aplicación de Tabla de datos para conversión Hexadecimal a 7 segmentos

Diagrama de conexión:



Prueba:

 

Programa en Assembler:

;---------------------------------------------------------
;Autor: LONELY113
; http://lonely113.blogspot.com
;
;Programa que muestra codigo seleccionado en binario
;en un display catodo comun de 7 segmentos
;Entradas: Puerto A (Pines RA0-RA3)
;Salidas: Puerto B (Pines RB1-RB7)
;---------------------------------------------------------

include "p16f84a.inc"
list P=16f84a

__CONFIG _WDT_OFF & _XT_OSC

 org 0x00  ; Inicio de Programa
 bsf STATUS,5 ; Inicio configuracion E/S
 movlw 0x0F  ; b'00001111'
 movwf PORTA  ; RA0-RA3 como entradas
 clrf PORTB  ; Puerto B como salida
 bcf STATUS,5 ; Fin configuracion E/s
BEGIN: movf PORTA,0  ; Mueve PORTA a W
 call CONV  ; Llama a subrutina CONV
 movwf PORTB  ; Mueve W a PORTB
 goto BEGIN  ; Bucle infinito

;Subrutinas
CONV addwf PCL  ; Conversion hexadecimal a 7 segmentos
 retlw 0x7E  ; 0
 retlw 0x0C  ; 1
 retlw 0xB6  ; 2
 retlw 0x9E  ; 3
 retlw 0xCC  ; 4
 retlw 0xDA  ; 5
 retlw 0xFA  ; 6
 retlw 0x0E  ; 7
 retlw 0xFE  ; 8
 retlw 0xDE  ; 9  
 retlw 0xEE  ; A
 retlw 0xF8  ; B
 retlw 0x72  ; C
 retlw 0xBC  ; D
 retlw 0xF2  ; E
 retlw 0xE2  ; F
 end   ; Fin de programa


****Programa en Pic Basic (Microcode)****


'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : LONELY113                                         *
'*  Notice  : Copyright (c) 2011 LONELY113                      *
'*          : All Rights Reserved                               *
'*  Date    : 12/05/2011                                        *
'*  Version : 1.0                                               *
'*  Notes   : PIC16F84a                                         *
'*          : Entradas de selección hexadecimal RA3-RA0         *
'*          : Display cátodo común en RB7-RB0                   *
'****************************************************************

@  __config _HS_OSC & _WDT_OFF
DEFINE OSC 10    '10 MHz
trisa=%01111     'RA3-RA0 como entradas
trisb=$00        'PORTB como salida
datain VAR BYTE  
dataout VAR BYTE
loop1:
    datain=porta 'Seleción en Hexadecimal
    LOOKUP datain,[$7E,$0C,$B6,$9E,$CC,$DA,$FA,$0E,$FE,$DE,$EE,$F8,$72,$BC,$F2,$E2],dataout
    'Conversión Hexadecimal a 7 segmentos
    portb=dataout 'A display
GOTO loop1
END



Archivos .ASM y .HEX

1 comentario: