Advertisement
Guest User

Untitled

a guest
Jun 4th, 2019
197
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # PTM 04.06.19
  2.  
  3. Wyswietla w kolko od 9 do 1, a zero nie dziala
  4.  
  5. LJMP START
  6.  
  7.  
  8.  
  9.  
  10. LCDstatus  equ 0FF2EH        
  11. LCDcontrol equ 0FF2CH
  12. LCDdataWR  equ 0FF2DH
  13. LCDdataRD  equ 0FF2FH  
  14. P5 EQU 0F8H
  15. P7 EQU 0DBH
  16.  
  17.   // LCD control bytes       ---------------------------------
  18.  
  19. #define  HOME     0x80    // put curcor to second line  
  20. #define  INITDISP 0x38    // LCD init (8-bit mode)  
  21. #define  HOM2     0xc0    // put curcor to second line  
  22. #define  LCDON    0x0e    // LCD nn, cursor off, blinking of
  23. #define  CLEAR    0x01    // LCD display clear
  24.  
  25. LCDcntrlWR MACRO x
  26.          LOCAL loop
  27. loop:
  28.          MOV    DPTR,#LCDstatus
  29.          MOVX   A,@DPTR
  30.          JB     ACC.7,loop       ; check if LCD busy
  31.          MOV    DPTR,#LCDcontrol ; write to LCD control
  32.          MOV    A, x
  33.          MOVX   @DPTR,A
  34.         ENDM
  35.  
  36. LCDcharWR MACRO
  37.         LOCAL loop1,loop2
  38.         PUSH    ACC
  39. loop1:    
  40.         MOV     DPTR,#LCDstatus
  41.         MOVX    A,@DPTR
  42.         JB      ACC.7,loop1            ; check if LCD busy
  43.  
  44. loop2:    MOV     DPTR,#LCDdataWR        ; write data to LCD
  45.    
  46.        POP     ACC
  47.        MOVX    @DPTR,A
  48.        ENDM
  49.  
  50.         init_LCD  MACRO
  51.          LCDcntrlWR #INITDISP
  52.          LCDcntrlWR #CLEAR
  53.          LCDcntrlWR #LCDON  
  54. ENDM
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.     ORG 000BH
  63.     MOV TH0, #00H
  64.     MOV TL0, #00H
  65.     DEC R0
  66.     RETI
  67. ORG 0100H
  68. START:
  69.  
  70.  
  71.     init_LCD
  72.  
  73.     MOV R1, #39H
  74.     MOV TMOD, #01H
  75.     MOV TH0, #00H
  76.     MOV TL0, #00H
  77.     SETB TR0
  78.     MOV IE, #82H
  79.     MOV A, #00H
  80.     MOV P1, A
  81.  
  82. DALEJ:
  83.     MOV R0, #13H
  84. CZEKAM:
  85.     MOV A, R0
  86.     JNZ CZEKAM
  87.     MOV A, P1
  88.     LCDcntrlWR #CLEAR
  89.     MOV A, R1                    
  90.     MOV P1, A
  91.     LCDcharWR
  92.     SUBB A,#30H
  93.     JZ START
  94.     ADD A, #30H    
  95.     DEC A
  96.     MOV R1, A
  97.     MOV P1, A
  98.     JMP DALEJ
  99.     NOP
  100.     NOP
  101.     JMP $
  102. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement