; ARCHIVO DOTMATRIXF88TINY.ASM ; CODIGO FUENTE PARA EL MICROCONTROLADOR PIC16F88 ; MUESTRA UNA "A" EN UN DISPLAY DE MATRIZ DE LEDS ; 7 X 5 ; RA1 SE USA PARA DAR RESET AL CONTADOR 4017 (MR) ; RA2 SE USA PARA INCREMENTAR EL CONTADOR DE COLUMNAS (CP0) ; VERSION PARA OSCILADOR CRISTAL 4 MHZ ; CPU configuration ; (It's a 16F88, XT OSCILADOR ; watchdog timer off, power-up timer on) processor 16f88 include #DEFINE BANCO0 BCF STATUS,RP0 #DEFINE BANCO1 BSF STATUS,RP0 J equ H'20' K equ H'21' L equ H'22' ;contador tabla ORG 0 CLRF PCLATH GOTO WEB ORG 3 WEB BANCO0 bcf RCSTA,SPEN ;DESHABILITA UART BANCO1 movlw 7 movwf CMCON clrf CVRCON clrf ANSEL clrf TRISA clrf TRISB BANCO0 CLRF PORTA CLRF PORTB malla2: clrf L call MR ;RA1 MANDA PULSO DE MASTER RESET AL CONTADOR malla1: movfw L call tabla movwf PORTB call CP0 ;RA2 MANDA PULSO PARA INCREMENTAR CONTADOR call retro call retro call retro call retro incf L,f movfw L sublw 5 btfss STATUS,Z goto malla1 cero: goto malla2 MR: BSF PORTA,1 ;MASTER RESET AL CONTADOR CALL UNMILI ;RETRASO DE 1 MILISEGUNDO BCF PORTA,1 RETURN CP0: BSF PORTA,2 ;INCREMENTA COLUMNA CONTADOR CALL UNMILI ;RETRASO DE 1 MILISEGUND0 BCF PORTA,2 RETURN ; RETRASO DE 0.5 SEGUNDOS retro: movlw D'15' ;RUTINA RETRASO 10 MS movwf J ; J = w jloop: movwf K ; K = w kloop: decfsz K,f ; K = K-1, skip next if zero goto kloop decfsz J,f ; J = J-1, skip next if zero goto jloop return UNMILI: movlw D'250' ; RUTINA RETRASO 1 MILISEGUNDO movwf K ; J = w kloop2: decfsz K,f ; K = K-1, skip next if zero goto kloop2 return tabla: addwf PCL ;PATRON DE LEDS LETRA "A" retlw B'11111100' ;RB0 NO SE CONECTA retlw B'00010010' retlw B'00010010' retlw B'00010010' retlw B'11111100' end