Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <p16f877A.inc> ; definicje specyficzne dla mikrokontrolera
- __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _LVP_OFF
- UDATA
- l1 RES 1
- l2 RES 1
- RST CODE 0x000 ; wektor resetu procesora
- pagesel main ; wybór strony pamięci programu
- goto main ; skok do początku programu
- PGM CODE
- main
- ; Inicjalizacja niezbędnych komponentów
- bcf STATUS, RP0 ; wybór banku 0
- bcf STATUS, RP1
- clrf PORTA ; inicjalizacja PORTA przez zerowanie zatrzasków wyjściowych
- bsf STATUS, RP0
- movlw B'00000110' ; przełączenie wejść na cyfrowe
- movwf ADCON1 ; poprzez odłączenie przetwornika A/C
- clrf TRISA ; ustawienie wyprowadzeń PORTA na wyjścia
- clrf TRISB ; ustawienie wyprowadzeń PORTB na wyjścia
- bcf STATUS, RP0
- ; Rozwiązanie zadania
- Petla
- movlw 1 ; 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 opoznienie ; odczekaj kilka ms
- movlw 2 ; 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 opoznienie ; odczekaj kilka ms
- movlw 3 ; 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 opoznienie ; odczekaj kilka ms
- movlw 4 ; 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 opoznienie ; odczekaj kilka ms
- goto Petla ; wróć do początku
- convert
- addwf PCL, f
- dt B'00000000' ;
- dt B'00111000' ; L
- dt B'01110111' ; A
- dt B'00111001' ; C
- dt B'01110110' ; H
- opoznienie
- movlw D'60' ; załaduj liczbę powtórzeń pętli l2
- movwf l2 ; do zmiennej l2
- l1_pocz
- movlw D'33' ; załaduj liczbę powtórzeń pętli l1
- movwf l1 ; do zmiennej l1
- decfsz l1, f ; zmniejsz zmienną l1
- goto $-1 ; wróć do poprzedniej instrukcji (decfsz)
- decfsz l2, f ; zmniejsz zmienną l2
- goto l1_pocz ; wróć do miejsca ładowania zmiennej l1
- return
- END ; dyrektywa END kończy treść programu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement