Advertisement
Guest User

Untitled

a guest
Jun 13th, 2019
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. LJMP START
  2.     P5 EQU 0F8H
  3.     P7 EQU 0DBH
  4.  
  5.     LCDstatus equ 0FF2EH
  6.     LCDcontrol equ 0FF2CH
  7.     LCDdataWR equ 0FF2DH
  8.     LCDdataRD equ 0FF2FH
  9.  
  10.     #define HOME 0x80
  11.     #define INITDISP 0x38
  12.     #define HOM2 0xc0
  13.     #define LCDON 0x0e
  14.     #define CLEAR 0x01
  15.  
  16.  
  17.     ORG 000BH
  18.     MOV TH0, #00H
  19.     MOV TL0, #00H
  20.     DEC R0
  21.     RETI
  22.  
  23. ORG 0100H
  24.  
  25.     LCDcntrlWR MACRO x
  26.     LOCAL loop
  27.  
  28.     loop:
  29.     MOV DPTR, #LCDstatus
  30.     MOVX A, @DPTR
  31.     JB ACC.7, loop
  32.  
  33.     MOV DPTR, #LCDcontrol
  34.     MOV A, x
  35.     MOVX @DPTR, A
  36.     ENDM
  37.  
  38.     LCDcharWR MACRO
  39.     LOCAL loop1, loop2
  40.     PUSH ACC
  41.  
  42.     loop1:
  43.     MOV DPTR, #LCDstatus
  44.     MOVX A, @DPTR
  45.     JB ACC.7, loop1
  46.  
  47.     loop2:
  48.     MOV DPTR, #LCDdataWR
  49.     POP ACC
  50.     MOVX @DPTR, A
  51.     ENDM
  52.  
  53.     init_LCD MACRO
  54.     LCDcntrlWR #INITDISP
  55.     LCDcntrlWR #CLEAR
  56.     LCDcntrlWR #LCDON
  57.     ENDM
  58.  
  59.     putChrLCD:
  60.     LCDcharWR
  61.     RET
  62.  
  63.     putStringLCD:
  64.     CLR A
  65.     MOVC A, @A+DPTR
  66.     JZ EXIT
  67.     PUSH DPH
  68.     PUSH DPL
  69.     CALL putChrLCD
  70.     POP DPL
  71.     POP DPH
  72.     INC DPTR
  73.     SJMP putStringLCD
  74.     EXIT:RET
  75.  
  76.     WAIT:
  77.     MOV R2, #0FFH
  78.     INNERLOOP:
  79.     MOV R3, #0FFH
  80.     INLOOP:
  81.     DJNZ R3, INLOOP
  82.     DJNZ R2, INNERLOOP
  83.     RET
  84.  
  85. START:
  86.     MOV DPH, #80H
  87.   MOV DPL, #31H   //1 - SKN
  88.   MOV A, #31H     //ASCII
  89.   MOVX @DPTR, A
  90.  
  91.   MOV DPH, #80H
  92.   MOV DPL, #32H  //2
  93.   MOV A, #32H
  94.   MOVX @DPTR, A
  95.  
  96.   MOV DPH, #80H
  97.   MOV DPL, #33H   //3
  98.   MOV A, #33H
  99.   MOVX @DPTR, A
  100.  
  101.   MOV DPH, #80H
  102.   MOV DPL, #41H    //A
  103.   MOV A, #41H
  104.   MOVX @DPTR, A
  105.  
  106.   MOV DPH, #80H
  107.   MOV DPL, #34H    //4
  108.   MOV A, #34H
  109.   MOVX @DPTR, A
  110.  
  111.   MOV DPH, #80H
  112.   MOV DPL, #35H    //5
  113.   MOV A, #35H
  114.   MOVX @DPTR, A
  115.  
  116.   MOV DPH, #80H
  117.   MOV DPL, #36H   //6
  118.   MOV A, #36H
  119.   MOVX @DPTR, A
  120.  
  121.   MOV DPH, #80H
  122.   MOV DPL, #0BEH       //B
  123.   MOV A, #42H
  124.   MOVX @DPTR, A
  125.  
  126.   MOV DPH, #80H
  127.   MOV DPL, #37H   //7
  128.   MOV A, #37H
  129.   MOVX @DPTR, A
  130.  
  131.   MOV DPH, #80H
  132.   MOV DPL, #38H   //8
  133.   MOV A, #38H
  134.   MOVX @DPTR, A
  135.  
  136.   MOV DPH, #80H
  137.   MOV DPL, #39H   //9
  138.   MOV A, #39H
  139.   MOVX @DPTR, A
  140.  
  141.   MOV DPH, #80H
  142.   MOV DPL, #0DEH      //C
  143.   MOV A, #43H
  144.   MOVX @DPTR, A
  145.  
  146.   MOV DPH, #80H
  147.   MOV DPL, #0E7H       //*
  148.   MOV A, #02AH     
  149.   MOVX @DPTR, A
  150.  
  151.   MOV DPH, #80H
  152.   MOV DPL, #30H      //0
  153.   MOV A, #30H
  154.   MOVX @DPTR, A
  155.  
  156.   MOV DPH, #80H
  157.   MOV DPL, #0EDH         //#
  158.   MOV A, #23H
  159.   MOVX @DPTR, A
  160.  
  161.   MOV DPH, #80H
  162.   MOV DPL, #0EEH         //D
  163.   MOV A, #44H
  164.   MOVX @DPTR, A
  165.  
  166.  
  167.     MOV TMOD, #01H
  168.     MOV TH0, #00H
  169.     MOV TL0, #00H
  170.     SETB TR0
  171.     init_LCD
  172.     MOV IE, #82H
  173.     MOV A, #00H
  174.     MOV R1, A
  175.     WROC:
  176.     MOV R2, #0H
  177.     MOV R3, #0H
  178.     MOV R4, #7FH
  179.  
  180. DALEJ:
  181.     MOV A, R4
  182.     MOV P5, A
  183.     MOV A, P7
  184.     ANL A, R4
  185.  
  186.     MOV R5, A
  187.     CLR C
  188.     SUBB A, R4
  189.     JZ NIC
  190.     ACALL WAIT
  191.     CLR C
  192.     MOV A, R5
  193.     SUBB A, #077H
  194.     JZ STOP
  195.     MOV A, R5
  196.     SUBB A, #07BH
  197.     JZ WROC2
  198.     NIC:
  199.     init_LCD
  200.     MOV R0, #0FH
  201.     MOV A, R2
  202.     ADD A, #30H
  203.     MOV DPH, #80H
  204.     MOV DPL, A
  205.     MOVX A, @DPTR
  206.     LCDcharWR
  207.     MOV A, R3
  208.     ADD A, #30H
  209.     MOV DPH, #80H
  210.     MOV DPL, A
  211.     MOVX A, @DPTR
  212.     LCDcharWR
  213.     INC R3
  214.     CLR C
  215.     MOV A, R3
  216.     SUBB A, #0BH
  217.     JZ ZMIENDZIESIATKE
  218.     JMP CZEKAM
  219.     WROC3:
  220.     JMP WROC
  221.     NIC2:
  222.     JMP NIC
  223. CZEKAM:
  224.     MOV A, R0
  225.     JNZ CZEKAM
  226.     MOV A, P1
  227.     CPL A
  228.     MOV P1, A
  229.     JMP DALEJ
  230.     WROC2:
  231.     LJMP START
  232. STOP:
  233.     MOV A, R4
  234.       MOV P5, A
  235.       MOV A, P7
  236.       ANL A, R4
  237.  
  238.       MOV R6, A
  239.       CLR C
  240.       SUBB A, R4
  241.       JZ STOP
  242.       //ACALL WAIT
  243.  
  244.       CLR C
  245.       MOV A, R6
  246.       SUBB A, #7DH
  247.       JZ NIC2
  248.       JMP STOP
  249.  
  250.  
  251.  
  252. ZMIENDZIESIATKE:
  253.     MOV R3, #00H
  254.     INC R2
  255.     CLR C
  256.     MOV A, R2
  257.     SUBB A, #0AH
  258.     JZ WROC3
  259.     JMP DALEJ
  260.  
  261.     NOP
  262.     NOP
  263.     NOP
  264.     JMP $
  265. END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement