Thông báo

Collapse
No announcement yet.

hiển thị LCD??

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • hiển thị LCD??

    mấy huynh ơi,kiểm tra giúp em đoạn code này có sai sót gì không?mấy nay em mô phỏng trên proteus nhưng không thấy hiển thị gì cả..em cũng đã sửa đi sửa lại theo nhiều cách mà vẫn không được.hiện giờ em đang bí...và cũng mong mấy huynh giải thích cho em hiểu đoạn mã tô màu...em xin cám ơn mấy huynh trước
    ;--------------------------------------------------------
    ;LCD 2hàng- 16 ký tự,D0- D7 nối vào P1 của 8951
    Include reg_51.pdf
    EN BIT P3.4
    RS BIT P3.2
    RW BIT P3.3
    LAMP BIT P3.5

    MAIN:
    CLR LAMP ;BAT DEN BACKGROUND LCD
    CLR RS ;DUA RS XUONG MUC 0
    CLR RW ;DUA RW XUONG MUC 0
    SETB EN
    MOV TMOD,#01H
    MOV TL0,#LOW(-50000)
    MOV TH0,#HIGH(-50000) ;DALAY 50 MS
    MOV P1,#38H ;DAT CHE DO 2 DONG
    CALL GHILENH
    MOV P1,#38H
    CALL GHILENH
    CALL DELAY
    MOV P1,#0CH ;BAT HIEN THI
    CALL GHILENH
    MOV P1,#01H ;XOA MAN HINH
    CALL GHILENH
    CALL DONG01
    CALL DONG02
    sjmp $
    WRITE:
    PUSH ACC
    WRITE1:
    MOV A,#0
    MOVC A,@A+DPTR
    CJNE A,#2,WRITE_DATA
    POP ACC
    RET

    WRITE_DATA:
    MOV P1,A
    CALL GHI_DATA
    INC DPTR
    SJMP WRITE1
    DELAY:
    CLR TF0
    SETB TR0
    JNB TF0,$
    RET
    ;--------------------------------------------------------
    DONG01:
    MOV P1,#080H
    CALL GHILENH
    MOV P1,#080H
    CALL GHILENH
    MOV DPTR,#DT_DONG1
    CALL WRITE
    RET
    ;--------------------------------------------------------
    DONG02:
    MOV P1,#0C0H
    CALL GHILENH
    MOV P1,#0C0H
    CALL GHILENH
    MOV DPTR,#DT_DONG2
    CALL WRITE
    RET
    GHILENH:
    CLR RS
    NOP
    CLR RW
    CLR EN
    NOP
    SETB EN
    NOP
    RET
    GHI_DATA:
    SETB RS
    NOP
    WAIT:
    CLR RW
    CLR EN
    NOP
    SETB EN
    NOP
    MOV P1,#0FFH
    SETB RW
    CLR RS
    CLR EN
    NOP
    SETB EN
    WAIT1:
    NOP
    MOV A,P1
    ANL A,#80H
    CJNE A,#00H,WAIT1
    NOP
    NOP
    NOP
    NOP
    NOP
    NOP
    RET
    ;-----------------------------------
    DT_DONG1:
    DB 'K.DIEN-DIEN TU',02H
    DT_DONG2:
    DB 'PTN TDH-VDK',02H
    END
    Last edited by Wab; 25-12-2008, 12:27.

  • #2
    chịu nhìn như rừng, lên cho cao thủ thấy vào giúp bạn nè
    Kit thí nghiệm 8051 + mạch nạp + cable + LCD16x2 + CD hướng dẫn, giá chỉ

    Comment


    • #3
      Nguyên văn bởi team.hatlife Xem bài viết
      chịu nhìn như rừng, lên cho cao thủ thấy vào giúp bạn nè
      cám ơn huynh "team.hatlife"đã để ý đến em

      Comment


      • #4
        Nguyên văn bởi Wab Xem bài viết
        cám ơn huynh "team.hatlife"đã để ý đến em
        Bạn nên up file lên.Post lên vậy khó đọc lắm.Không có trật tự gì hết.
        The goal of power electronics is control the flow of energy from an electrical source to an electrical load with high efficiency, high availability, high reliability, light weight and low cost.

        Comment


        • #5
          đây là file của em
          Attached Files

          Comment


          • #6
            Nguyên văn bởi Wab Xem bài viết
            mấy huynh ơi,kiểm tra giúp em đoạn code này có sai sót gì không?mấy nay em mô phỏng trên proteus nhưng không thấy hiển thị gì cả..em cũng đã sửa đi sửa lại theo nhiều cách mà vẫn không được.hiện giờ em đang bí...và cũng mong mấy huynh giải thích cho em hiểu đoạn mã tô màu...em xin cám ơn mấy huynh trước
            ;--------------------------------------------------------
            ;LCD 2hàng- 16 ký tự,D0- D7 nối vào P1 của 8951
            Include reg_51.pdf
            EN BIT P3.4
            RS BIT P3.2
            RW BIT P3.3
            LAMP BIT P3.5

            MAIN:
            CLR LAMP ;BAT DEN BACKGROUND LCD
            CLR RS ;DUA RS XUONG MUC 0
            CLR RW ;DUA RW XUONG MUC 0
            SETB EN
            MOV TMOD,#01H
            MOV TL0,#LOW(-50000)
            MOV TH0,#HIGH(-50000) ;DALAY 50 MS
            MOV P1,#38H ;DAT CHE DO 2 DONG
            CALL GHILENH
            MOV P1,#38H
            CALL GHILENH
            CALL DELAY
            MOV P1,#0CH ;BAT HIEN THI
            CALL GHILENH
            MOV P1,#01H ;XOA MAN HINH
            CALL GHILENH
            CALL DONG01
            CALL DONG02
            sjmp $
            WRITE:
            PUSH ACC
            WRITE1:
            MOV A,#0
            MOVC A,@A+DPTR
            CJNE A,#2,WRITE_DATA
            POP ACC
            RET
            WRITE_DATA:
            MOV P1,A
            CALL GHI_DATA
            INC DPTR
            SJMP WRITE1
            DELAY:
            CLR TF0
            SETB TR0
            JNB TF0,$
            RET
            ;--------------------------------------------------------
            DONG01:
            MOV P1,#080H
            CALL GHILENH
            MOV P1,#080H
            CALL GHILENH
            MOV DPTR,#DT_DONG1
            CALL WRITE
            RET
            ;--------------------------------------------------------
            DONG02:
            MOV P1,#0C0H
            CALL GHILENH
            MOV P1,#0C0H
            CALL GHILENH
            MOV DPTR,#DT_DONG2
            CALL WRITE
            RET
            GHILENH:
            CLR RS
            NOP
            CLR RW
            CLR EN
            NOP
            SETB EN
            NOP
            RET
            GHI_DATA:
            SETB RS
            NOP
            WAIT:
            CLR RW
            CLR EN
            NOP
            SETB EN
            NOP
            MOV P1,#0FFH
            SETB RW
            CLR RS
            CLR EN
            NOP
            SETB EN
            WAIT1:
            NOP
            MOV A,P1
            ANL A,#80H
            CJNE A,#00H,WAIT1
            NOP
            NOP
            NOP
            NOP
            NOP
            NOP
            RET
            ;-----------------------------------
            DT_DONG1:
            DB 'K.DIEN-DIEN TU',02H
            DT_DONG2:
            DB 'PTN TDH-VDK',02H
            END
            *************************************
            WRITE:
            PUSH ACC
            WRITE1:
            MOV A,#0
            MOVC A,@A+DPTR
            CJNE A,#2,WRITE_DATA
            POP ACC
            RET
            đoạn mã này là cách lấy dữ liệu trong một bảng tra.
            sau khi lấy mã xong rồi so sánh với 02H nếu = thì kết thúc một bảng tra.
            |

            Comment


            • #7
              WRITE:
              PUSH ACC
              WRITE1:
              MOV A,#0
              MOVC A,@A+DPTR
              CJNE A,#2,WRITE_DATA
              POP ACC
              RET
              WRITE_DATA:
              MOV P1,A
              CALL GHI_DATA
              INC DPTR
              SJMP WRITE1
              DELAY:
              CLR TF0
              SETB TR0
              JNB TF0,$
              RET


              Đoạn mã trên đã sai. Write là chương trình con nên kết thúc bằng lệnh RET.
              Write1 cũng la chương trình con nên phải gọi bằng lại LCALL WRITE1 chứ không phải bằng lệnh SJMP WRITE1.
              Và code sửa lại như sau:
              WRITE:
              PUSH ACC
              RET ;THÊM DÒNG NÀY

              WRITE1:
              MOV A,#0
              MOVC A,@A+DPTR
              CJNE A,#2,WRITE_DATA
              POP ACC

              RET
              WRITE_DATA:
              MOV P1,A
              CALL GHI_DATA
              INC DPTR
              CALL WRITE1 ;DÒNG NÀY ĐÃ ĐƯỢC SỬA

              DELAY:
              CLR TF0
              SETB TR0
              JNB TF0,$
              RET

              LỜI NHẬN XÉT: CODE VIẾT DÀI, CHƯƠNG TRÌNH CON ĐỂ TÙM LUM.

              Comment


              • #8
                Các bác lam LCD j mà khó quá. Có 2 cách bắt LCD làm việc 1 là đọc cờ báo bận, 2 là trễ time rồi ghi tiếp à............ Em đọc đau hết cả mắt mà ko hiểu các bác viết j nưa...
                Hay bác dùng VB làm dễ lắm... điều khiển qua LPT và cần 2 con 373 là ok!!!!!!!!111

                Comment

                Về tác giả

                Collapse

                Wab Tìm hiểu thêm về Wab

                Bài viết mới nhất

                Collapse

                Đang tải...
                X