Thông báo

Collapse
No announcement yet.

[help] hiển sỗ xung của encoder lên LCD

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

  • #61
    À, có lẽ mình làm được rồi, các bạn xem hộ mình bài này có đúng không, hiển thị số 123 lên LCD từ R4 (giá trị từ 0- 255, sau khi tham khảo tut của bạn mafd_47, http://www.dientuvietnam.net/forums/...read.php?t=281 ). Mong các bạn giúp đỡ.

    INCLUDE 89c51.mc

    rs BIT P2.5
    rw BIT P2.6
    en BIT P2.7
    bf BIT p0.7
    lcd DATA p0

    org 0000h
    main:
    ACALL lcd_init

    MOV A,#82h
    LCALL cmd
    LCALL dis_str
    DB "- T*D*T*T -",#99h

    MOV A,#0C6h
    LCALL cmd
    MOV R4,#123
    MOV A,R4
    LCALL write_bcd
    MOV A,R3
    LCALL data_lcd
    MOV A,R2
    LCALL data_lcd
    MOV A,R1
    LCALL data_lcd
    JMP $

    write_bcd:
    step1:
    MOV B,#100
    DIV AB
    MOV R3,A
    MOV A,B
    MOV B,#10
    DIV AB
    MOV R2,A
    MOV A,B
    MOV R1,A
    step2:
    MOV A,R3
    ADD A,#30h
    MOV R3,A

    MOV A,R2
    ADD A,#30h
    MOV R2,A

    MOV A,R1
    ADD A,#30h
    MOV R1,A
    RET

    lcd_init:
    MOV A,#38h
    ACALL cmd
    MOV A,#0Ch
    ACALL cmd
    MOV A,#01h
    ACALL cmd
    MOV A,#06h
    ACALL cmd
    RET

    cmd:
    ACALL check_bf
    MOV lcd,a
    CLR rs
    CLR rw
    SETB en
    CLR en
    RET

    data_lcd:
    ACALL check_bf
    MOV lcd,A
    SETB rs
    CLR rw
    SETB en
    CLR en
    RET

    check_bf:
    SETB bf
    CLR rs
    SETB rw
    re_check:
    CLR en
    SETB en
    JB bf,re_check
    RET

    dis_str:
    POP dph
    POP dpl
    str_next1:
    CLR A
    MOVC A,@A+DPTR
    CJNE A,#99h,ttt
    JMP ret_str
    ttt:
    ACALL data_lcd
    INC DPTR
    JMP str_next1
    ret_str:
    MOV A,#01h
    JMP @A+DPTR

    Link down chương trình và mô phỏng (Proteus 7.5); http://www.dientuvietnam.net/forums/...read.php?t=281
    ---$---$---$---$---$---$---$---
    T*D*T*T

    Comment


    • #62
      Mấy bác cho em hỏi là thanh ghi POSCNT là dùng để xác định vị trí. Khi có QEA,QEB vào thì nó tăng lên hoặc giảm, nhưng có một vấn đề là em ko biết làm sao để xuất cái giá trị mà nó đã tăng lên hoặc giảm xuống là bao nhiêu cả. Ah còn nữa, xuất ra LCD và dùng MikroC thì càng tốt.

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X