⚡ Descuentos en cursos en video - Lleva tu aprendizaje técnico al siguiente nivel y aprovecha precios especiales antes de que termine la oferta. 🔥 Aprovechar oferta ahora 🔥
Microcontroladores y sistemas digitales

*Realizacion de una matriz 7x8 con Pic 16F84

electronica.2007
hace 18 años
hace 18 años
proyecto es realizado con el pic 16f84 compartiendo lo encontre en la web en el archivo zip esta todala informacion de harware,codigos, otros. ;*************************************************************************** ;*Programa: Matrix.asm Revision: 4.0 Junio 4 del 2000 * ;*Descripcion: Palabra que muestra la palabra ESIME en una matriz de leds * ;*************************************************************************** ;********************************IGUALDADES********************************* LIST P=16F84 ;Pic a usar PCL EQU 2 ;Direccion del contador de programa STATUS EQU 3 ;Direccion del registro de estado PORTB EQU 6 ;Dir.del puerto B TRISB EQU 6 ;Registro de configuracion E/S PORTA EQU 5 ;Dir. puerto A TRISA EQU 5 ;Registro de configuracion E/S ROTOR EQU 0Ch ;P/dato de barrido horizontal LETRAS EQU 0Dh ;P/numero de letras OFFSET1 EQU 0Eh ;Registro para offset de tabla OFFSET2 EQU 0Fh ;Respaldo de offset1 BARRE EQU 10h ;Reg. p/dato p/barrer x veces ROT_EN EQU 02h ;Dato p/habilitar el latch rotor BAR_EN EQU 08h ;Dato p/habilitar latch de tabla CONTADOR1 EQU 11h ;Direccion del contador1 p/retardo CONTADOR2 EQU 12h ;Direccion del contador2 p/retardo CONTADOR3 EQU 13h ;Direccion del contador3 p/retardo w EQU 0 ;Destino w f EQU 1 ;Destino el propio registro ;**************************PROGRAMA PRINCIPAL******************************* ORG 00h ;Inicio del ensamblado desde addr 00 GOTO INICIO ;Salto a la primera instruccion ORG 05h ;Ensamblar desde la localidad 05h INICIO BSF STATUS,5 ;Selecciona la pagina 1 de datos CLRF TRISB ;Programa portb como salida CLRF TRISA ;Programa porta como salida BCF STATUS,5 ;Selecciona la pagina cero de datos ;Inicio del programa INICIO2 MOVLW 6 ;# de letras MOVWF LETRAS ;Encargado del conteo de letras MOVLW 0FFh ;Dato para inicio del offset MOVWF OFFSET1 ;Inicializa offset1, luego ++ MOVWF OFFSET2 ;Respaldo de offset2 AHI MOVLW 40h ;Dato para el rotor inverso MOVWF ROTOR ;Carga a rotor con 40h MOVF OFFSET2,w ;offset2 a w MOVWF OFFSET1 ;Devuelve el valor respaldado RENG INCF OFFSET1,f ;Inicio de offset con 00h MOVF ROTOR,w ;rotor a w para salida MOVWF PORTB ;Saca el dato p/barrido horizontal MOVLW ROT_EN ;Dato para habilitar el latch MOVWF PORTA ;Llega dato rotor a matrix NOP ;Ancho del pulso CLRF PORTA ;Borra el puerto, listro otra habil MOVF OFFSET1,w ;Listo para el salto relativo CALL TABLA ;Llama tabla, responde por w MOVWF PORTB ;Saca dato, latch no habilitado MOVLW BAR_EN ;Carga dato p/habilitar barrido MOVWF PORTA ;Habilitar latch para la tabla NOP ;Ancho del pulso CLRF PORTA ;Listo p habilitar sig latch CALL RETARDO ;Retardo RRF ROTOR,f ;Siguiente renglon BTFSS STATUS,0 ;Barrio todos los renglones? GOTO RENG ;No, siguiente renglon DECFSZ BARRE,f ;Barrio todas las veces? GOTO AHI ;No, otra vez MOVLW 07h ;Valor de offset + 07 ADDWF OFFSET2,f ;Offset2 actualiza direcciones MOVLW 0FFh ;# de veces que barre MOVWF BARRE ;Conteo del barrido DECFSZ LETRAS,f ;Termino todas las letras? GOTO AHI ;No, siguiente letra GOTO INICIO2 ;Repite la palabra completa ;*******************************RETARDO************************************* RETARDO MOVLW 05h ;Carga w con 05 para retardo MOVWF CONTADOR1 ;El contador1 secarga con 05 LOOP3 MOVWF CONTADOR2 ;El contador2 secarga con 05 LOOP2 MOVWF CONTADOR3 ;El contador3 secarga con 05 LOOP1 DECFSZ CONTADOR3,f ;Decrementa el contador3 GOTO LOOP1 ;Salta hacia contador3 DECFSZ CONTADOR2,f ;Decrementa contador2 GOTO LOOP2 ;Repite el decremento de contador3 DECFSZ CONTADOR1,f ;Decrementa contador1 GOTO LOOP3 ;Repite decrementi de contador2y3 RETURN ;Regresa al programa principal ;*******************************TABLA*************************************** TABLA ADDWF PCL,f ;Suma el offset al contador del prog DT 1FH,10H,10H,1EH,10H,10H,1FH DT 0EH,11H,01H,0EH,10H,11H,0EH DT 0EH,04H,04H,04H,04H,04H,0EH DT 11H,11H,11H,15H,15H,1BH,11H DT 1FH,10H,10H,1EH,10H,10H,1FH DT 00H,00H,00H,00H,00H,00H,00H ;*************************************************************************** END ;Fin del programa ;***************************************************************************
maac2006
hace 18 años
hace 18 años
desplazamiento se puede aumentar los display

¿Conoces una solución?

¡Aprende a reparar con estos cursos YoReparo!

4.87
(15)

Curso Diseño de Amplificadores de Máxima Fidelidad

Maximiliano Resch
$ 29 USD
$ 13 USD
4.94
(16)

Curso Refrigeración Comercial Aplicado a Diagnóstico y Reparación

Ing. Georga Melgarejo
$ 40 USD
$ 13 USD
4.71
(7)

Curso TV OLED y QLED con el Ing. Picerno

Ing. Alberto H. Picerno
$ 29 USD
$ 10 USD
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos?
Regístrate gratis