start: bsf STATUS, RP0 ;bank 1 clrf TRISB ; ustawienie wyprowadzeń PORTB na wyjścia bcf STATUS, RP0 ; bank 0
movf char1, W ; załaduj wartość call convert ; wywołaj procedurę konwersji movwf PORTB ; wysłanie na port PORTB movlw B'00000001' ; włączenie wyświetlacza DS1 movwf PORTA call pol3
movf char2, W ; załaduj wartość call convert ; wywołaj procedurę konwersji movwf PORTB ; wysłanie na port PORTB movlw B'00000010' ; włączenie wyświetlacza DS2 movwf PORTA call pol3
movf char3, W ; załaduj wartość call convert ; wywołaj procedurę konwersji movwf PORTB ; wysłanie na port PORTB movlw B'00000100' ; włączenie wyświetlacza DS3 movwf PORTA call pol3
movf char4, W ; załaduj wartość call convert ; wywołaj procedurę konwersji movwf PORTB ; wysłanie na port PORTB movlw B'00001000' ; włączenie wyświetlacza DS4 movwf PORTA call pol3
bsf STATUS, RP0 ;bank 1 movlw 0x0F ; PortB na wejście żeby obsłużyć przyciski movwf TRISB bcf STATUS, RP0 ; wybór banku 0 movf PORTB, W ; załaduj zawartość PORTB - stan przycisków xorwf przyc, W ; sprawdź czy stan różni się od poprzedniego andwf przyc, W ; i dodatkowo czy zmiana z 1 na 0 movwf tmp movf PORTB, W ; zapamiętaj bieżący stan przycisków movwf przyc btfsc tmp, 0 ; czy wciśnięto przycisk S1? goto nast_znak1 ; tak - obsłuż wciśnięcie btfsc tmp, 1 ; czy wciśnięto przycisk S1? goto nast_znak2 ; tak - obsłuż wciśnięcie goto start