;--------------------------------Konfiguration--------------------------------------------- list p=16f877 ;Prozessortyp angeben #include ;Iclude Datei für Controllervariablen einfügen ;Config-Bits __CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _CPD_OFF & _LVP_OFF Errorlevel -302 ;BANKSEL-Meldungen abschalten ;------------------------------------------------------------------------------------------ ;-----------------------------------Belegung des PICs (PIC 16F877)------------------------- ; ; ________________ ; MCLR 5V--------1| |-------Rel 16 RB7 ; RA0 Kanalsw1------2| |-------Rel 15 RB6 ; RA1 Kanalsw2------3| |-------Rel 14 RB5 ; RA2 Kanalsw3------4| |-------Rel 13 RB4 ; RA3 Kanalsw4------5| |-------Rel 12 RB3 ; RA4 EDIT-sw-------6| |-------Rel 11 RB2 ; RA5 EDIT-Mode Out-----7| |-------Rel 10 RB1 ; RE0 BCD-Cathode1------8| PIC16F877 |-------Rel 9 RB0 ; RE1 BCD-Cathode2------9| |-------VDD(5V) VDD ; RE2 BCD-Cathode3-----10| |-------VSS(0V) VSS ; VDD VDD(5V)------11| |-------Rel 8 RD7 ; VSS VSS(0V)------12| |-------Rel 7 RD6 ; OSC1 OSC1---------13| |-------Rel 6 RD5 ; OSC2 OSC2---------14| |-------Rel 5 RD4 ; RC0 BCD8---------15| |-------RX(MIDI-IN) RC7 ; RC1 BCD4---------16| |-------TX(RS-OUT) RC6 ; RC2 BCD2---------17| |-------Frei RC5 ; RC3 BCD1---------18| |-------Frei RC4 ; RD0 Rel1---------19| |-------Rel 4 RD3 ; RD1 Rel2---------20|________________|-------Rel 3 RD2 ; ; ;---------------------------------Initialisierung------------------------------------------ org 0x000 ; Starte in Programmadresse 0 ;-------------------Variablen------------------------ loops EQU 0x20 ; Variable loops für Zählschleife zahl EQU 0x21 ; Variable für die aktuelle Nummer zahlh EQU 0x22 ; Hilfsvariable für Subtraktionen von Zahl Ziffer1 EQU 0x23 ; Rechte Ziffer der Anzeige Ziffer2 EQU 0x24 ; Mittlere Ziffer der Anzeige Ziffer3 EQU 0x25 ; Linke Ziffer der Anzeige durchg EQU 0x26 ; durchgaenge der Schleife BCF CCP1CON, CCP1M3 ; Abschalten der 2 Capture- BCF CCP1CON, CCP1M2 ; Compare-Module BCF CCP1CON, CCP1M1 BCF CCP1CON, CCP1M0 BCF CCP2CON, CCP2M3 BCF CCP2CON, CCP2M2 BCF CCP2CON, CCP2M1 BCF CCP2CON, CCP2M0 BSF STATUS, RP0 ; auf Bank 1 Umschalten MOVLW B'00000110' ; PCFG0-3 aus ; =Analog-Digital-Wandler aus MOVFW ADCON1 ; nach AD-Register schreiben ;---------------------Ports------------------------ MOVLW B'11011111' ; Konfiguration Port A. 6+7 nicht vorhanden MOVWF TRISA ; RA5 Output. RA4-RA0 inputs MOVLW B'00000000' ; Konfiguration Port B MOVWF TRISB ; Port B komplett Outputs (Rel 9-16) MOVLW B'10000000' ; Konfiguration Port C. 7= RX = Input | 6= TX = Output MOVWF TRISC ; 4+5 unbenutzt= Output | 3-0 = BCD-Ausgänge = Outputs MOVLW B'00000000' ; Konfiguration Port D MOVWF TRISD ; PORT D Komplett Outputs (Rel 1-8) MOVLW B'00000000' ; Konfiguration Port E MOVWF TRISE ; RE0-RE2 = Cathode Outs für BCD; 4 muss 0 sein, sonst ; Wären Port E und Port D Paralel Slave Port BCF STATUS, RP0 ; zurück in Bank 0 movlw B'00000000' ; Alle Ausgänge auf low movwf PORTA movwf PORTB movwf PORTC movwf PORTD movwf PORTE ;---------------------------------------------------------------------------------------------- ;------------------------------------Hauptprogrammschleife------------------------------------- MAIN movlw D'0' ; Zählen beginnt bei 0 movf zahl, 0 ; movlw D'5' ; movwf Ziffer1 ; movlw D'2' ; movwf Ziffer2 ; movlw D'1' ; movwf Ziffer3 M1 incf zahl, 1 ; Erhöhe Zahl um eins und Speichere in Zahl call Presettabelle M2 call Anzeigeschleife goto M1 ;-------------------------------------BCD-Tabelle----------------------------------------------- ; BCD-Zuordnungen für 7-Segment-Anzeige BCD addwf PCL,f ; addiert den Wert aus W mit dem Programmcounter ; Es folgen die Zuordnungen für den Port C in BCD ; retlw kehrt zurück mit dem Wert im Akku ; ACHTUNG! Aufgrund der Portbelegung ist RC3 die 1er-Stelle ; und RC0 die 8er-Stelle! Nach dem ersten Nipple Also ; "Digital, aber von links nach rechts! LSB links, MSB rechts! retlw B'00000000' ; 0 retlw B'00001000' ; 1 retlw B'00000100' ; 2 retlw B'00001100' ; 3 retlw B'00000010' ; 4 retlw B'00001010' ; 5 retlw B'00000110' ; 6 retlw B'00001110' ; 7 retlw B'00000001' ; 8 retlw B'00001001' ; 9 ;------------------------------------------------------------------------------------------------- Anzeigeschleife movlw D'127' ; Anzahl Aufrufe Subroutine movwf durchg clrf PORTE clrf PORTC A1 bsf PORTE, 0 ; Segment eins aktiv movf Ziffer1, 0 ; Wert Ziffer 1 laden call BCD ; BCD-Auswertung movwf PORTC ; 7-Segmentanzeige beschreiben call WAIT ; 1ms Warten bcf PORTE, 0 bsf PORTE, 1 movf Ziffer2, 0 call BCD movwf PORTC call WAIT bcf PORTE, 1 bsf PORTE, 2 movf Ziffer3, 0 call BCD movwf PORTC call WAIT bcf PORTE, 2 ; movlw D'128' ; Lade Grenzwert in Akku ; subwf zahl, 0 ; Subtrahiere W von Zahl und Speichere in W ; btfsc STATUS, Z ; Überspringe nächsten Befehl wenn nicht null ; goto MAIN ; wieder von ganz vorne beginnen decfsz durchg, F ; durchgang um eins vermindern, wenn null ist ; nächsten befehl überspringen goto A1 ; wenn nein gehe wieder zu A1 retlw D'0' ; wenn ja, gehe wieder zu M1 ;----------------------------------------------------------------------------------------------- ;-------------------------------------Presettabelle--------------------------------------------- Presettabelle bcf STATUS, C ; Lösche Carry-Bit bcf STATUS, Z ; Lösche Zero-Bit clrf Ziffer1 clrf Ziffer2 clrf Ziffer3 Null movlw D'0' ; Schreibe Abzufragende Zahl in zahlh movwf zahlh, 0 movfw zahl ; Lade Zahl subwf zahlh, 0 ; Subtrahiere zahl von zahlh, parameter 0= Ergebnis ; Ergebnis in Akku btfss STATUS, Z ; Überspringe nächsten Befehl wenn Ergebnis=0 goto Eins ; Springe zu Label eins movlw D'0' ; Beschreibe Ziffer 1 movwf Ziffer1 bcf STATUS, Z ; lösche Zero Bit wieder retlw D'0' Eins movlw D'1' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zwei movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zwei movlw D'2' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Drei movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Drei movlw D'3' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vier movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vier movlw D'4' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenf movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenf movlw D'5' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechs movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechs movlw D'6' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sieben movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sieben movlw D'7' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Acht movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Acht movlw D'8' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neun movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neun movlw D'9' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zehn movlw D'9' bcf STATUS, Z retlw D'0' Zehn movlw D'1' ;ab hier alle Zehn durchgänge Ziffer2 erhöhen movwf Ziffer2 movlw D'10' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Elf movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Elf movlw D'11' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zwoelf movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zwoelf movlw D'12' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreizehn movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Dreizehn movlw D'13' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierzehn movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierzehn movlw D'14' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfzehn movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfzehn movlw D'15' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechzehn movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechzehn movlw D'16' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebzehn movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebzehn movlw D'17' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtzehn movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtzehn movlw D'18' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunzehn movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunzehn movlw D'19' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zwanzig movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zwanzig movlw D'2' movwf Ziffer2 movlw D'20' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Einundzwanzig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Einundzwanzig movlw D'21' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zweiundzwanzig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zweiundzwanzig movlw D'22' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreiundzwanzig movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Dreiundzwanzig movlw D'23' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierundzwanzig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierundzwanzig movlw D'24' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfundzwanzig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfundzwanzig movlw D'25' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechsundzwanzig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechsundzwanzig movlw D'26' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebenundzwanzig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebenundzwanzig movlw D'27' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtundzwanzig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtundzwanzig movlw D'28' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunundzwanzig movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunundzwanzig movlw D'29' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreißig movlw D'9' bcf STATUS, Z retlw D'0' Dreißig movlw D'3' movwf Ziffer2 movlw D'30' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Einunddreißig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Einunddreißig movlw D'31' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zweiunddreißig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zweiunddreißig movlw D'32' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreiunddreißig movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Dreiunddreißig movlw D'33' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierunddreißig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierunddreißig movlw D'34' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfunddreißig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfunddreißig movlw D'35' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechsunddreißig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechsunddreißig movlw D'36' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebenunddreißig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebenunddreißig movlw D'37' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtunddreißig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtunddreißig movlw D'38' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neununddreißig movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neununddreißig movlw D'39' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierzig movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierzig movlw D'4' movwf Ziffer2 movlw D'40' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Einundvierzig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Einundvierzig movlw D'41' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zweiundvierzig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zweiundvierzig movlw D'42' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreiundvierzig movlw D'2' bcf STATUS, Z retlw D'0' Dreiundvierzig movlw D'43' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierundvierzig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierundvierzig movlw D'44' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfundvierzig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfundvierzig movlw D'45' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechsundvierzig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechsundvierzig movlw D'46' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebenundvierzig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebenundvierzig movlw D'47' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtundvierzig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtundvierzig movlw D'48' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunundvierzig movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunundvierzig movlw D'49' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfzig movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfzig movlw D'5' movwf Ziffer2 movlw D'50' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Einundfuenfzig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Einundfuenfzig movlw D'51' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zweiundfuenfzig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zweiundfuenfzig movlw D'52' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreiundfuenfzig movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Dreiundfuenfzig movlw D'53' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierundfuenfzig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierundfuenfzig movlw D'54' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfundfuenfzig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfundfuenfzig movlw D'55' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechsundfuenfzig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechsundfuenfzig movlw D'56' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebenundfuenfzig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebenundfuenfzig movlw D'57' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtundfuenfzig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtundfuenfzig movlw D'58' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunundfuenfzig movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunundfuenfzig movlw D'59' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechzig movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechzig movlw D'6' movwf Ziffer2 movlw D'60' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Einundsechzig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Einundsechzig movlw D'61' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zweiundsechzig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zweiundsechzig movlw D'62' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreiundsechzig movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Dreiundsechzig movlw D'63' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierundsechzig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierundsechzig movlw D'64' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfundsechzig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfundsechzig movlw D'65' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechsundsechzig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechsundsechzig movlw D'66' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebenundsechzig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebenundsechzig movlw D'67' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtundsechzig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtundsechzig movlw D'68' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunundsechzig movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunundsechzig movlw D'69' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebzig movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebzig movlw D'7' movwf Ziffer2 movlw D'70' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Einundsiebzig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Einundsiebzig movlw D'71' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zweiundsiebzig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zweiundsiebzig movlw D'72' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreiundsiebzig movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Dreiundsiebzig movlw D'73' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierundsiebzig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierundsiebzig movlw D'74' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfundsiebzig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfundsiebzig movlw D'75' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechsundsiebzig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechsundsiebzig movlw D'76' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebenundsiebzig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebenundsiebzig movlw D'77' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtundsiebzig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtundsiebzig movlw D'78' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunundsiebzig movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunundsiebzig movlw D'79' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtzig movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtzig movlw D'8' movwf Ziffer2 movlw D'80' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Einundachtzig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Einundachtzig movlw D'81' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zweiundachtzig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zweiundachtzig movlw D'82' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreiundachtzig movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Dreiundachtzig movlw D'83' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierundachtzig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierundachtzig movlw D'84' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfundachtzig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfundachtzig movlw D'85' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechsundachtzig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechsundachtzig movlw D'86' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebenundachtzig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebenundachtzig movlw D'87' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtundachtzig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtundachtzig movlw D'88' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunundachtzig movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunundachtzig movlw D'89' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunzig movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunzig movlw D'9' movwf Ziffer2 movlw D'90' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Einundneunzig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Einundneunzig movlw D'91' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Zweiundneunzig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Zweiundneunzig movlw D'92' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Dreiundneunzig movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Dreiundneunzig movlw D'93' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Vierundneunzig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Vierundneunzig movlw D'94' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Fuenfundneunzig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Fuenfundneunzig movlw D'95' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Sechsundneunzig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Sechsundneunzig movlw D'96' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Siebenundneunzig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Siebenundneunzig movlw D'97' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Achtundneunzig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Achtundneunzig movlw D'98' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Neunundneunzig movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Neunundneunzig movlw D'99' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundert movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundert movlw D'1' movwf Ziffer3 ; Der Hunderter wird gesetzt movlw D'0' movwf Ziffer2 ; Zehner wieder auf Null movlw D'100' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hunderteins movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hunderteins movlw D'101' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertzwei movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertzwei movlw D'102' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertdrei movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertdrei movlw D'103' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertvier movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertvier movlw D'104' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertfuenf movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertfuenf movlw D'105' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertsechs movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertsechs movlw D'106' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertsieben movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertsieben movlw D'107' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertacht movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertacht movlw D'108' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertneun movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertneun movlw D'109' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertzehn movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertzehn movlw D'1' movwf Ziffer2 ; der Hundertzehner movlw D'110' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertelf movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertelf movlw D'111' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertzwoelf movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertzwoelf movlw D'112' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertdreizehn movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertdreizehn movlw D'113' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertvierzehn movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertvierzehn movlw D'114' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertfuenfzehn movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertfuenfzehn movlw D'115' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertsechzehn movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertsechzehn movlw D'116' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertsiebzehn movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertsiebzehn movlw D'117' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertachtzehn movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertachtzehn movlw D'118' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertneunzehn movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertneunzehn movlw D'119' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertzwanzig movlw D'9' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertzwanzig movlw D'2' ; der 120er, der letzte oh ja! movwf Ziffer2 movlw D'120' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hunderteinundzwanzig movlw D'0' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hunderteinundzwanzig movlw D'121' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertzweiundzwanzig movlw D'1' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertzweiundzwanzig movlw D'122' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertdreiundzwanzig movlw D'2' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertdreiundzwanzig movlw D'123' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertvierundzwanzig movlw D'3' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertvierundzwanzig movlw D'124' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertfuenfundzwanzig movlw D'4' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertfuenfundzwanzig movlw D'125' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertsechsundzwanzig movlw D'5' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertsechsundzwanzig movlw D'126' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertsiebenundzwanzig movlw D'6' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertsiebenundzwanzig movlw D'127' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto Hundertachtundzwanzig movlw D'7' movwf Ziffer1 bcf STATUS, Z retlw D'0' Hundertachtundzwanzig movlw D'128' movwf zahlh movfw zahl subwf zahl, 0 btfss STATUS, Z goto MAIN movlw D'8' movwf Ziffer1 bcf STATUS, Z retlw D'0' ; Dat Wars mit der Presettabelle! ;----------------------------------------------------------------------------------------------- ;------------------------------------Warteschleife 1 Millisekunde--------------------------------- ; Die Größe der Variablen "Sekunden" gibt die Durchläufe an. ; Ein Gesamtdurchlauf ist ca 1 Sekunde WAIT movlw D'110'; ; 110mal wird die Schleife durchlaufen um movwf loops; ; 1ms zu ergeben W2 nop nop nop nop nop nop decfsz loops, F ; Überprüfung ob 1 ms vorbei goto W2 ; noch nicht? dann nochmal ab W2 retlw 0 ; gehe zurück ins Programm mit '0' im Akku END