list p=16f84a ;****************************************************************************** ; Pinbelegung: ; ; PortA: ; 0 DATA ; 1 CLOCK ; 2 ; 3 STROBE & OE ; 4 ; ; PortB: ; 0 Zeile1 ; 1 Zeile2 ; 2 Zeile3 ; 3 Zeile4 ; 4 Zeile5 ; 5 Zeile6 ; 6 Zeile7 ; 7 ; ;****************************************************************************** ; ; Buchstabe "A" von Tabelle (seriell über 4094) auf LED - MATRIX ausgeben ; ;****************************************************************************** ; #include "p16f84a.inc" ; Include-Dateien Laden ; __CONFIG _PWRTE_ON & _WDT_OFF & _HS_OSC ; über 3,5 MHz ; ;****************************************************************************** schleife1 equ 0x22 schleife2 equ 0x23 speicher1 equ 0x24 speicher2 equ 0x25 INIT bsf STATUS, RP0 ; auf Bank 1 umschalten movlw B'00000000' ; PORT A alle OUTPUT movwf TRISA movlw B'00000000' ; PORT B alle OUTPUT movwf TRISB bcf STATUS, RP0 ; auf Bank 0 zurückschalten clrf PORTA ; PORT A "löschen" clrf PORTB ; PORT B "löschen" movlw d'8' movwf speicher2 MAIN movlw d'1' call DATEN_ZEILE1 bcf PORTB, 6 bsf PORTB, 0 call UMWANDLUNG movlw d'1' call DATEN_ZEILE2 bcf PORTB, 0 bsf PORTB, 1 call UMWANDLUNG movlw d'1' call DATEN_ZEILE3 bcf PORTB, 1 bsf PORTB, 2 call UMWANDLUNG movlw d'1' call DATEN_ZEILE4 bcf PORTB, 2 bsf PORTB, 3 call UMWANDLUNG movlw d'1' call DATEN_ZEILE5 bcf PORTB, 3 bsf PORTB, 4 call UMWANDLUNG movlw d'1' call DATEN_ZEILE6 bcf PORTB, 4 bsf PORTB, 5 call UMWANDLUNG movlw d'1' call DATEN_ZEILE7 bcf PORTB, 5 bsf PORTB, 6 call UMWANDLUNG goto MAIN UMWANDLUNG rlf W, 0 btfss STATUS, C ; bei 1 überspringen call NULL btfsc STATUS, C ; bei 0 überspringen call EINS decfsz speicher2, 1 goto UMWANDLUNG return NULL bcf PORTB, 0 bsf PORTB, 1 bcf PORTB, 1 return EINS bsf PORTB, 0 bsf PORTB, 1 bcf PORTB, 1 return DATEN_ZEILE1 addwf PCL, 1 retlw b'11111' ; A DATEN_ZEILE2 addwf PCL, 1 retlw b'10001' ; A DATEN_ZEILE3 addwf PCL, 1 retlw b'10001' ; A DATEN_ZEILE4 addwf PCL, 1 retlw b'11111' ; A DATEN_ZEILE5 addwf PCL, 1 retlw b'10001' ; A DATEN_ZEILE6 addwf PCL, 1 retlw b'10001' ; A DATEN_ZEILE7 addwf PCL, 1 retlw b'10001' ; A END