Guest User

Untitled

a guest
Jan 12th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. ;************************************************
  2. ;LEKCJA 6 - WYŚWIETLACZ 7-SEGMENTOWY
  3. ;PRZYKŁAD 3 - PRZEGLĄDANIE WYŚWIETLACZA
  4. ;************************************************
  5.  
  6. SEG_ON EQU P1.6 ;włączenie wyświetlacza 7-segm.
  7.  
  8. ;Stałe używane w programie
  9. ONE EQU 006H ;kod cyfry 1
  10. TWO EQU 05BH ;kod cyfry 2
  11. THREE EQU 04FH ;kod cyfry 3
  12. FOUR EQU 066H ;kod cyfry 4
  13. FIVE EQU 06DH ;kod cyfry 5
  14. SIX EQU 07DH ;kod cyfry 6
  15. SEVEN EQU 007H ;kod cyfry 7
  16.  
  17. ;Pamięć wewnętrzna RAM
  18. DISPLAY EQU 30H
  19.  
  20. ;**************************************
  21. LJMP START
  22.  
  23. ORG 0BH
  24. LJMP INT_T0
  25.  
  26. ORG 100H
  27. START:
  28. MOV R0,#127
  29. ZERUJ: MOV @R0,#0
  30. DJNZ R0,ZERUJ
  31.  
  32. MOV TMOD,#1
  33. MOV R7,#20
  34. MOV TL0,#00H
  35. MOV TH0,#4CH
  36. SETB EA
  37. SETB ET0
  38. SETB TR0
  39.  
  40. MOV DISPLAY,#ONE ;wpisz kody cyfr
  41. MOV DISPLAY+1,#TWO ;dla kolejnych
  42. MOV DISPLAY+2,#THREE ;wskaźników
  43. MOV DISPLAY+3,#FOUR
  44. MOV DISPLAY+4,#FIVE
  45. MOV DISPLAY+5,#SIX
  46. MOV DISPLAY+6,#SEVEN
  47.  
  48.  
  49. LOOP_DISP: ;ustawienie danych do
  50. ;wyświetlania na 1-szym
  51. ;wskaźniku
  52. MOV R0,#DISPLAY ;adres pobierania kodów
  53. MOV R2,#6 ;licznik-il. wskaźników
  54. MOV R3,#00000001B ;wybór wskaźnika
  55. ;-kod 1 z 8
  56.  
  57. LOOP:
  58. SETB SEG_ON ;wyłącz poprzedni
  59. ;wskaźnik
  60.  
  61. MOV R1,#CSDS ;adres wyboru wskaźnika
  62. MOV A,R3 ;aktualny wskaźnik (1z8)
  63. MOVX @R1,A ;wpisz nr wskaźnika
  64.  
  65. RL A ;obrót w lewo - numer
  66. MOV R3,A ;następnego wskaźnika
  67. ;(kod 1 z 8)
  68.  
  69. MOV R1,#CSDB ;adres danych wskaźnika
  70. MOV A,@R0 ;kod aktualnego wskaźnika
  71. MOVX @R1,A ;wpisz kod segmentów
  72.  
  73. INC R0 ;adres pobierania kodu
  74. ;dla następnego wskaźnika
  75.  
  76. CLR SEG_ON ;włączenie wskaźnika
  77.  
  78. MOV A,#1 ;czas 1ms - świecenie
  79. LCALL DELAY_MS ;jednego wskaźnika
  80.  
  81. DJNZ R2,LOOP ;kolejne świecenie
  82. ;siedmiu wskaźników
  83. DJNZ R4,LOOP_DISP
  84.  
  85.  
  86.  
  87. LJMP LOOP_DISP ;zacznij od wskaźnika 1
  88.  
  89. INT_T0:
  90. ORL TL0,#00H
  91. MOV TH0,#4CH
  92. DJNZ R7, EXIT
  93. MOV R7,#20
  94.  
  95. CPL P1.7
  96.  
  97. MOV R0,#DISPLAY
  98. INC @R0
  99. EXIT:
  100. RETI
Advertisement
Add Comment
Please, Sign In to add comment