• Tin mới

    [8051 TUTORIAL] BÀI 9 Chương trình điều khiển LCD 16x2

    Sơ đồ mạch điện:




    Chương trình mẫu:


    RS    BIT     P2.0
    EN    BIT    P2.1
    ;*************************************************
    ;===================================
    ;*************************************************
        ORG      000H
        CLR       EN            ;LCD KO DUOC GIAO TIEP VDK
        CALL     KHOITAO_LCD
    ;++++++++++++++++++++++++++
        MOV     R0,#0
        MOV     DPTR,#STRING1
    LOOP1:    

        MOV      A,R0
        MOVC    A,@A+DPTR
        CALL     WRITE_DATA
        INC        R0
        CJNE     R0,#15,LOOP1
    ;++++++++++++++++++++++++++
        MOV      A,#0C0H
        CALL     WRITE_COMMAND    ; DUA CON TRO LCD VE DAU DONG THU 2
        MOV     R0,#0
        MOV     DPTR,#STRING2
    LOOP2:   

        MOV      A,R0
        MOVC    A,@A+DPTR
        CALL     WRITE_DATA
        INC       R0
        CJNE    R0,#21,LOOP2
        JMP      $
    ;*************************************************
    KHOITAO_LCD:
        MOV      A,#38H                      ;KHOI TAO HANG 1 + 2
        CALL     WRITE_COMMAND

        MOV      A,#38H                      ;KHOI TAO HANG 1 + 2
        CALL     WRITE_COMMAND   

        MOV     A,#0CH                       ;BAT MAN HINH LCD
        CALL    WRITE_COMMAND  

        MOV     A,#01H                        ;XOA MAN HINH LCD
        CALL    WRITE_COMMAND
    RET
    ;*************************************************
    WRITE_COMMAND:
        MOV      P0,A
        CLR       RS                             ;DU LIEU DUA VAO THANH GHI LENH LCD
        SETB     EN
        CLR       EN
        CALL     DELAY_41ms
    RET
    ;*************************************************
    WRITE_DATA:
        MOV      P0,A
        SETB     RS
        SETB     EN
        CLR       EN
        CALL     DELAY_100us
    RET
    ;*************************************************
    DELAY_41ms:
        MOV     50H,#41
    DEL:   

        MOV     51H,#100
        DJNZ     51H,$
        DJNZ     50H,DEL
    RET
    ;*************************************************
    DELAY_100us:
        MOV    50H,#100
        DJNZ    50H,$
    RET
    ;*************************************************
    STRING1: DB  '     Welcome   '
    STRING2: DB  '   phamtandatx'
    END

     DOWNLOAD CODE+MÔ PHỎNG
    (Bấm vào link đợi 5s, sau đó bấm "Skip Ad" sẽ ra link download, pass giải nén: phamtandatx)

    http://agileurbia.com/9wLf
     

    No comments