Página de inicio Mi Correo






   » Foro
   » Nuevo Foro
   » Mi Correo
   » Mis Actividades...


--- Novedades ---



    
  » Microcontroladores » Display y Tablas (9 de 9)  

.: Código para visualizar 4 display's

Recuerda, si quieres ensamblar este programa, deberás modificar el encabezado, cambiando el nombre del archivo P16F84luis.INC por el que tu tienes, por lo demás no creo que tengas problemas.

Suerte...!!!

;---------------Encabezado-------------------

	LIST	P=16F84
	#include	<P16F84luis.INC>

;-------- Variables a utilizar --------

ret1	equ	0x0d		; utilizado en retardos (milisegundos)
ret2	equ	0x0e		; utilizado en retardos
rota	equ	0x0f		; rota el uno para habilitar displays
disp1	equ	0x10		; primer dígito a mostrar
disp2	equ	0x11		; segundo dígito a mostrar
disp3	equ	0x12		; tercer dígito a mostrar
disp4	equ	0x13		; cuarto dígito a mostrar

;-------Configuración de puertos-------

reset	ORG	0x00               
	GOTO	inicio
	ORG	0x05

inicio	BSF	STATUS,RP0	; configurando puertos
	CLRF	TRISA		; portA es salida
	CLRF	TRISB		; portB es salida
	BCF	STATUS,RP0	

; ------- carga de registros a mostrar -------

	MOVLW	0x01
	MOVWF	disp1
	MOVLW	0x02
	MOVWF	disp2
	MOVLW	0x03
	MOVWF	disp3
	MOVLW	0x04
	MOVWF	disp4

; ----------- apaga transistores ----------

	CLRF	PORTA

; ----------- PROG. PPAL ----------

ini	MOVLW	0x08
	MOVWF	rota		; rota= '00001000'

	MOVLW	disp1
	MOVWF	FSR		; CARGA FSR CON LA DIRECC. DE disp1

display	MOVLW	0x00
	MOVWF	PORTB		; PORTB=00000000

	MOVF	rota,W
	MOVWF	PORTA		; PORTA= 00001000

	MOVF	INDF,W		; lee dato al que apunta FSR (o sea disp1)
	CALL	tabla		; llama a la tabla
	MOVWF	PORTB		; pasa el dato al puerto B
	
	CALL	retardo		; llama miniretardo
	BTFSC	rota,0		; rota = 00000000 ???
	GOTO	ini		; si es así, se vio todo, comienza otra vez 
	
	BCF	STATUS,C		; carry = 0 (para no afectar rotaciones)
	RRF	rota,F		; rota display
	INCF	FSR,F		; apunta al siguiente disp_X
	GOTO	display		

;------- RETARDO -------

retardo	MOVLW	0x03	
	MOVWF	ret1
dos	MOVLW	0x6E	
	MOVWF	ret2
uno	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DECFSZ	ret2,F
	GOTO	uno
	DECFSZ	ret1,F
	GOTO	dos
	RETLW	0x00

;------- TABLA -------

tabla	ADDWF	PCL,F		; se incrementa el contador de programa
	;display	   . gfedcba	segmentos de los leds del display
	NOP
	RETLW	B'00111000'	; código para la L
	RETLW	B'00111110'	; código para la U
	RETLW	B'00000110'	; código para la I
	RETLW	B'11101101'	; código para la S.
;------------------------------------------
	END
;------------------------------------------

Sería bueno verlo funcionar, así que aquí lo tienen...

Es eso simplemente, mostrar un mensaje, y la secuencia entre cada carecter es muy difícil de notar, ya que la velocidad es muy elevada.

Podríamos mejorarlo y hacer que se desplacen los caracteres de un lado a otro, no crees...???, eso lo dejo en tus manos, ya que con todo lo que tienes, puedes hacer lo que se te ocurra, es más, podrías armarte tus display's con LED's comunes, agruparlos en forma de segmentos y trabajar con ellos, que más, bueno, no se, ya verás que es lo que haces, o te quedarás simplemente con esto...???



R-Luis...


<--Anterior   Introducción   Siguiente -->
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Tabla de Referencias


    
--| |--