Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2015
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. #include <p16f877A.inc> ; definicje specyficzne dla mikrokontrolera
  2.  
  3. __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _BODEN_OFF & _LVP_OFF
  4. UDATA
  5. l1 RES 1
  6. l2 RES 1
  7. RST CODE 0x000 ; wektor resetu procesora
  8. pagesel main ; wybór strony pamięci programu
  9. goto main ; skok do początku programu
  10. PGM CODE
  11. main
  12. ; Inicjalizacja niezbędnych komponentów
  13. bcf STATUS, RP0 ; wybór banku 0
  14. bcf STATUS, RP1
  15. clrf PORTA ; inicjalizacja PORTA przez zerowanie zatrzasków wyjściowych
  16. bsf STATUS, RP0
  17. movlw B'00000110' ; przełączenie wejść na cyfrowe
  18. movwf ADCON1 ; poprzez odłączenie przetwornika A/C
  19. clrf TRISA ; ustawienie wyprowadzeń PORTA na wyjścia
  20. clrf TRISB ; ustawienie wyprowadzeń PORTB na wyjścia
  21. bcf STATUS, RP0
  22. ; Rozwiązanie zadania
  23. Petla
  24.  
  25. movlw 1 ; załaduj wartość
  26. call convert ; wywołaj procedurę konwersji
  27. movwf PORTB ; wysłanie na port PORTB
  28. movlw B'00000001' ; włączenie wyświetlacza DS1
  29. movwf PORTA
  30. call opoznienie ; odczekaj kilka ms
  31. movlw 2 ; załaduj wartość
  32. call convert ; wywołaj procedurę konwersji
  33. movwf PORTB ; wysłanie na port PORTB
  34. movlw B'00000010' ; włączenie wyświetlacza DS2
  35. movwf PORTA
  36. call opoznienie ; odczekaj kilka ms
  37. movlw 3 ; załaduj wartość
  38. call convert ; wywołaj procedurę konwersji
  39. movwf PORTB ; wysłanie na port PORTB
  40. movlw B'00000100' ; włączenie wyświetlacza DS3
  41. movwf PORTA
  42. call opoznienie ; odczekaj kilka ms
  43. movlw 4 ; załaduj wartość
  44. call convert ; wywołaj procedurę konwersji
  45. movwf PORTB ; wysłanie na port PORTB
  46. movlw B'00001000' ; włączenie wyświetlacza DS4
  47. movwf PORTA
  48. call opoznienie ; odczekaj kilka ms
  49. goto Petla ; wróć do początku
  50. convert
  51. addwf PCL, f
  52. dt B'00000000' ;
  53. dt B'00111000' ; L
  54. dt B'01110111' ; A
  55. dt B'00111001' ; C
  56. dt B'01110110' ; H
  57. opoznienie
  58. movlw D'60' ; załaduj liczbę powtórzeń pętli l2
  59. movwf l2 ; do zmiennej l2
  60. l1_pocz
  61. movlw D'33' ; załaduj liczbę powtórzeń pętli l1
  62. movwf l1 ; do zmiennej l1
  63. decfsz l1, f ; zmniejsz zmienną l1
  64. goto $-1 ; wróć do poprzedniej instrukcji (decfsz)
  65. decfsz l2, f ; zmniejsz zmienną l2
  66. goto l1_pocz ; wróć do miejsca ładowania zmiennej l1
  67. return
  68. END ; dyrektywa END kończy treść programu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement