Advertisement
Guest User

Untitled

a guest
Nov 30th, 2015
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. ;ćwiczenie 00
  2.  
  3. ;po zajęciach z ubiegłego tygodnia studenci powinni być mniej więcej na takim etapie:
  4. ;zdefiniowane są wzorki i jest kawałek kodu, który pobiera z pamięci programu
  5. ;wzorek odpowiadający liczbie (0-F) wpisanej do akumulatora
  6. ;w CSDB zatrzaskiwany jest wzorek, w CSDS "grzebień bitowy" włączający wszystkie wyświetlacze
  7.  
  8. CSDS16 EQU 0FF30H ;adres zatrzasku wyboru wskaźnika/wyświetlacza
  9. CSDB16 EQU 0FF38H ;adres zatrzasku wyboru segmentów/wzorków
  10. SEGOFF EQU P1.6 ;ten bit włącza wyświetlacze
  11.  
  12. ;=======================================
  13. ;
  14. ; RESET
  15. ;
  16. ORG 00H ;reset
  17. LJMP START ;
  18.  
  19. ;=======================================
  20. ;
  21. ; PROGRAM
  22. ;
  23. ORG 100H ;program
  24. START:
  25. ;laduje do komorek wybrane wartosci ktore chce wyswietlac
  26. ;najmlodszy bajt (A) to pierwszy wyswietlacz
  27. MOV 7AH, #6H
  28. MOV 7BH, #5H
  29. MOV 7CH, #4H
  30. MOV 7DH, #3H
  31. MOV 7EH, #2H
  32. MOV 7FH, #1H
  33.  
  34. CLR SEGOFF ;włącz wyświetlacze
  35. MOV R5, #80H ;R5 = WARTOSC WYSWIETLAZ
  36. MOV R4, #1 ;R4 = NUMER WYSWIETLACZA
  37.  
  38. LOOP:
  39. MOV A, R5 ;ZALADUJ OSTATNIA WARTOSC wyswietlana wartosc
  40.  
  41. DEC A ;zminiejsz o 1
  42. ;jezeli wciaz w przedziale od 7AH do 7FH skocz do jeszczeWprzedziale
  43. CJNE A, #79H, jeszczeWprzedziale
  44. MOV A, #7fH ;jezeli nie podmien na maksymalna wartosc
  45. jeszczeWprzedziale:
  46.  
  47.  
  48. MOV R0, A ;zaladuj do R0 lub R1 bo tylko one moga odwolac sie do adresu posredniego
  49. MOV R5, A ;zapamietaj do R5 ostatnia wartosc bo R0 mozna latwo stracic
  50. MOV A, @R0 ;zaladuj wartosc na ktora wskazuje rejestr R0
  51.  
  52. MOV DPTR, #WZORY ;adres wzorków do DPTR
  53. MOVC A, @A+DPTR ;wzorek z pamięci programu do A
  54.  
  55. MOV DPTR, #CSDB16 ;adres zatrzasku wzorków do DPTR
  56. SETB SEGOFF
  57. MOVX @DPTR, A ;wzorek do zatrzasku
  58.  
  59. MOV A, R4
  60.  
  61. ;sprawdzam czy nie wchodze na diody na wyswietlaczu
  62. CJNE A, #01000000b, jeszczeWyswietlacz ;jezeli wchodze na 7 wyswietlacz
  63. MOV A, #00000001 ;podmieniam na 1
  64. jeszczeWyswietlacz:
  65.  
  66. MOV DPTR, #CSDS16 ;adres zatrzasku wyboru wskaźników do DPTR
  67. MOVX @DPTR, A ;wybierz wskaźniki
  68. CLR SEGOFF
  69. RL A ;ZMIANA AKTYWNEGO WYSWIETLACZA
  70.  
  71.  
  72. MOV R4, A
  73. DELAY:
  74. ;DJNZ R7, DELAY
  75. ; DJNZ R6, DELAY
  76.  
  77.  
  78. SJMP LOOP ;never ending loop
  79.  
  80. WZORY:
  81. DB 00111111B, 00000110B, 01011011B, 01001111B ;0123
  82. DB 01100110B, 01101101B, 01111101B, 00000111B ;4567
  83. DB 01111111B, 01101111B, 01110111B, 01111100B ;89Ab
  84. DB 01011000B, 01011110B, 01111001B, 01110001B ;cdEF
  85.  
  86. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement