; Fichero : 8Disp.asm ; Autor : Jorge Luis Alba ; Fecha: Diciembre 2001. ; Version: 0.0 ; Sistema RAD-MICROS. ; Placa Microcontroladora: micro-p1684. ; Placa de Aplicaciones: apli-mostrador. ; Placa de programaci¢n: Programador Universal Superpro II/P.(XELTEK) ; Bus: bus-26. ; Codigo para: PIC16C84A y PIC16F84 ; Clock: 4MHz , XT. -> Ciclo = 1 uS. ; Reset: Power On Reset. ; Watch dog: Inhabilitado. ; Proteccion de codigo: Inhabilitado. ; Ficheros requeridos: H16f84a.inc ; Funcion :Muestra numeros en displays de 7 segmentos ;############################################################################# LIST p=PIC16F84A ;Directiva para definir micro #include ;Fichero standar de cabezera __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC ;############################# DEFINICIONES ##################################### w_temp EQU 0x0C status_temp EQU 0x0D con0 EQU 0x0E con1 EQU 0x0F con2 EQU 0x10 uno_d EQU 0x11 dos_d EQU 0x12 tres_d EQU 0x13 cuatro_d EQU 0x14 cinco_d EQU 0x15 seis_d EQU 0x16 siete_d EQU 0x17 ocho_d EQU 0x18 ;################### Comienzo de programa ###################################### ORG 0x00 GOTO inicio ;####################### Tratamiento de interrupciones ############################### ORG 0x04 MOVWF w_temp MOVF STATUS,W MOVWF status_temp BCF INTCON,GIE DECFSZ con0,F MOVLW 0x3D MOVWF con0 BCF INTCON,T0IF BSF INTCON,GIE ;Tratamos el primer display INCF uno_d,F MOVF uno_d,W SUBLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF uno_d ;Tratamos el segundo display INCF dos_d,F MOVF dos_d,W SUBLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF dos_d ;Tratamos el tercer display INCF tres_d,F MOVF tres_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF tres_d ;Tratamos el cuarto display INCF cuatro_d,F MOVF cuatro_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF cuatro_d ;Tratamos el quinto display INCF cinco_d,F MOVF cinco_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF cinco_d ;Tratamos el sexto display INCF seis_d,F MOVF seis_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF seis_d ;Tratamos el septimo display INCF siete_d,F MOVF siete_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF siete_d ;Tratamos el octavo display INCF ocho_d,F MOVF ocho_d,W MOVLW 0x0A BTFSS STATUS,Z MOVLW 0X00 MOVWF ocho_d ;####################### PROGRAMA PRINCIPAL ################################ inicio BSF STATUS,RP0 MOVWF TRISB CLRF TRISA BCF STATUS,RP0 CLRF INTCON MOVLW 0x3F CLRF uno_d CLRF dos_d CLRF tres_d CLRF cuatro_d CLRF cinco_d CLRF seis_d CLRF siete_d CLRF ocho_d MOVLW B'10100000' MOVWF INTCON bucle CALL display GOTO bucle ;########################################################################## ;Rutina: display ;Funcion: Muestra informacion en displays 7 segmentos ;Entrada: uno_d,dos_d,tres_d,cuatro_d,cinco_d,seis_d,siete_d,ocho_d ;Salida: nada ;Variables utilizadas: nada ;########################################################################## display MOVF uno_d,W MOVWF PORTA BSF PORTB,0 CALL delay BCF PORTB,0 MOVF dos_d,W MOVWF PORTA BSF PORTB,1 CALL delay BCF PORTB,1 MOVF tres_d,W MOVWF PORTA BSF PORTB,2 CALL delay BCF PORTB,2 MOVF cuatro_d,W MOVWF PORTA BSF PORTB,3 CALL delay BCF PORTB,3 MOVF cinco_d,W MOVWF PORTA BSF PORTB,4 CALL delay BCF PORTB,4 MOVF seis_d,W MOVWF PORTA BSF PORTB,5 CALL delay BCF PORTB,5 MOVF siete_d,W MOVWF PORTA BSF PORTB,6 CALL delay BCF PORTB,6 MOVF ocho_d,W MOVWF PORTA BSF PORTB,7 CALL delay BCF PORTB,7 RETURN ;########################################################################### ;Rutina: delay ;Funcion: Produce un retardo ;Entrada: nada ;Salida: nada ;Variables utilizadas: con1, con2 ;########################################################################## delay CLRF con1 MOVLW 0x01 MOVWF con2 loop DECFSZ con1,F GOTO loop DECFSZ con2,F GOTO loop RETURN ;########################### FIN DE PROGRAMA ##################### END