; ARCHIVO SIETESEGF88SCREAMER.ASM ; CODIGO FUENTE PARA EL MICROCONTROLADOR PIC16F88 ; MUESTRA el valor "4.79" EN UN DISPLAY DE 7 SEGMENTOS DE LEDS ; RA1 SE USA PARA DAR RESET AL CONTADOR DE COLUMNAS ; RA2 SE USA PARA INCREMENTAR EL CONTADOR DE COLUMNAS ; rB0...Rb7 se usan para encender cada uno de los segmentos ; 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 incf L,f movfw L sublw 3 ;malla de 3 ciclos 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'35' ;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 ;patrón de segmentos encendidos retlw B'11001101' ;en cada módulo. retlw B'00001110' retlw B'11001110' end