Thông báo

Collapse
No announcement yet.

Trợ giúp về giao tiếp giữa ADC0804 với 8051, code ASM

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

  • Trợ giúp về giao tiếp giữa ADC0804 với 8051, code ASM

    Em đang mô phỏng cái mạch đo nhiệt độ sử dụng Sensor nhiệt LM35 và ADC0804 giao tiếp với 8051 hiển thị trên led 7 đoạn. Code em đã viết xong nhưng hoạt động không đúng. Cụ thể là khi em thay đổi nhiệt độ trên LM35 thì hiển thị không chính xác. Em loay hoay đã rất lâu mà không biết lỗi tại đâu.
    Mong các anh chị bớt chút thời gian chỉ giúp !
    Dưới đây là code và file mô phỏng đính kèm.

    Code:
    ;*******************************************************************************
    ; CHUONG TRINH        : DO NHIET DO HIEN THI TREN LED 7 DOAN
    ;                          ******************************
    ; MO TA            :
    ;     - Phan cung    :
    ;        + AT89C51 (thach anh 12MHz)
    ;        + 4 Led 7 Seg (Anot chung)
    ;        + 1 IC chuyen doi tin hieu tuong tu - so ADC0804
    ;        + 1 Temperature Sensors LM35
    ;    - Ket noi        :
    ;        + Cac thanh A-B-C-D-E-F-G cua Led 7 Seg lan luot noi voi P3.0, ... , P3.7 cua 8051
    ;        + Anot cua cac Led 1 den 4 (tinh tu trai sang) P1.0 den P1.3 thong qua cac Tranzito dem PNP
    ;        + Cac dau ra DB0 den DB7 cua ADC duoi noi toi P0.0 den P0.7 cua 8051
    ;        + Cac chan RD, WR, INTR cua ADC duoc noi voi P2.0, P2.1, P2.2 cua 8051
    ;    - Chu thich    :
    ;        + Cac LED 7 doan tich cuc muc 0
    ;    - Ten file        : ADC0804_LM35_LED7Seg.asm
    ;
    ; HOAN THANH        : ... - Successful
    ;
    ; COPYRIGHT            : Ck33spkt
    ;*******************************************************************************
    ;
    ;--------------------------------------------
    ;        C O N S T A N T                        ;
    ;--------------------------------------------
        DATA_IN        equ        P0
        READ        bit        P2.0
        WRITE        bit        P2.1
        INTR        bit        P2.2
        CS            bit        P2.3
        DATA_OUT    equ        P3
        MACHU_C        equ        30h                    ; cac o nho tu 30h den 33h luu giu ma 7 doan
        MACHU_DO    equ        31h
        LED_DV        equ        32h
        LED_CH        equ        33h
    ;
        org        0000h
        mov        P2, #0ffh                        ; chon P0, P2 lam dau vao
        mov        P0, #0ffh
        mov        P1, #0ffh                        ; tat LED
        mov        MACHU_C,    #0c6h                ; dua ma 7 seg cua chu C vao o nho 30h
        mov        MACHU_DO,    #9ch                ; dua ma 7 seg cua dau DO vao o nho 31h
        clr        INTR                            ; dat INTR = 0 de dam bao hoat dong binh thuong
    ;--------------------------------------------
    ; MAIN:                                        ;
    ;    - Thuc hien viec doc ADC va hien thi du    ;
    ; lieu ra led 7 doan bang phuong phap quet.    ;
    ;     - Trong main co cac chuong trinh con nhu;
    ; sau:
    ;
    ;===========================================;
    ;    M A I N    P R O G R A M                    ;
    ;===========================================;
    main:
        acall    doc_adc
        acall    xuly
        acall    hien_thi
        sjmp    main
    ;--------------------------------------------
    ; Ket thuc ham main                            ;
    ;--------------------------------------------
    ;
    ;--------------------------------------------
    ; doc _adc:                                    ;
    ;    - Thuc hien viec doc ADC de lay du lieu    ;
    ; dua vao thanh ghi Acc de xu ly.            ;
    ;     - Ket thuc chuong trinh, thanh ghi Acc    ;
    ; chua ma hex.
    ;--------------------------------------------
    doc_adc:
        clr        WRITE                            ; dat WR = 0
        setb    WRITE                            ; dat WR = 1 de bat dau chuyen doi
        jb        INTR, $                            ; cho ket thuc chuyen doi
        clr        READ                            ; ket thuc chuyen doi: cho phep doc du lieu
        mov        A, DATA_IN                        ; doc du lieu vao thanh ghi a
    ret                                            ; ket thuc cong viec doc adc
    ;--------------------------------------------
    ; xuly:                                        ;
    ;    - Thuc hien viec chuyen doi du lieu nhan;
    ; duoc tu ADC thanh ma BCD roi chuyen thanh ;
    ; ma 7 Seg.                                    ;
    ;    - Ket thuc chuong trinh o nho 32h va 33h;
    ; chua ma 7 Seg.                            ;
    ;--------------------------------------------
    xuly:
        mov        B, #100                            ; nap 100 vao thanh ghi B
        div        AB                                ; chia A cho 10 (bo di so hang tram,  chi lay so hang chuc va hang don vi)
        mov        R1, B                            ; luu so du vao R1
        mov        B, #10
        mov        A, R1                            ; luu so du vao A
        div        AB                                ; chia A cho 10
        acall    bcd_to_7seg                        ; doi so bcd hang chuc thanh ma 7 doan
        mov        LED_CH, A                        ; cat ma 7 doan cua led hang chuc
        mov        A, B                            ; dua phan du vao Acc
        acall    bcd_to_7seg                        ; doi so bcd hang don vi thanh ma 7 doan
        mov        LED_DV, A                        ; cat ma 7 doan cua led hang don vi
    ret                                            ; ket thuc cong viec xu ly du lieu
    ;--------------------------------------------
    ;--------------------------------------------
    ;    hien_thi:
    ;    - Thuc hien viec lay ma 7 doan tu cac o    ;
    ; nho va xuat ra P3 va quet Led.            ;
    ;--------------------------------------------
    hien_thi:
        mov        P1, #11111110b                    ; khoi tao xung quet, led chu C sang
        mov        DATA_OUT, MACHU_C                ; xuat du lieu ma chu C
        acall    delay_5ms                        ; tre 5ms
        mov        DATA_OUT, #0ffh                    ; tat LED
    ;    
        mov        A, P1                            ; A = P1
        RL        A                                ; quay trai thanh ghi A 1 don vi
        mov        P1, A                            ; P1 = A: quet led do
        mov        DATA_OUT, MACHU_DO                ; xuat du lieu ma chu DO
        acall    delay_5ms                        ; tre 5ms
        mov        DATA_OUT, #0ffh                    ; tat LED
    ;
        mov        A, P1                            ; A = P1
        RL        A                                ; quay trai thanh ghi A 1 don vi
        mov        P1, A                            ; P1 = A: quet led don vi
        mov        DATA_OUT, LED_DV                ; xuat du lieu ma chu don vi
        acall    delay_5ms                        ; tre 5ms
        mov        DATA_OUT, #0ffh                    ; tat LED
    ;
        mov        A, P1                            ; A = P1
        RL        A                                ; quay trai thanh ghi A 1 don vi
        mov        P1, A                            ; P1 = A: quet led chuc
        mov        DATA_OUT, LED_CH                ; xuat du lieu ma chu hang chuc
        acall    delay_5ms                        ; tre 5ms
        mov        DATA_OUT, #0ffh                    ; tat LED
    ret                                            ; ket thuc cong viec hien thi du lieu
    ;--------------------------------------------
    ; bcd_ to_7seg:
    ;     - Thuc hien viec doi ma bcd thanh ma 7s ;
    ;--------------------------------------------
    bcd_to_7seg:
        mov        dptr, #ma7seg
        movc    A, @A+dptr
    ret
    ;--------------------------------------------
    ;    CHUONG TRINH CON TAO TRE                ;
    ;--------------------------------------------
    delay_5ms:
        push    00
        push    01
        push    02
        mov        R0, #5
        mov        R1, #2
        mov        R2, #248
        djnz    R2, $
        djnz    R1, $-4
        djnz    R0, $-8
        pop        02
        pop        01
        pop        00
    ret
    ;--------------------------------------------
    ma7seg:                                        ; ma 7 doan cho led Anot chung
    ;            0       1     2    3     4    5    6     7    8    9
    ;            |       |     |    |     |    |    |     |    |    |
        db        0c0h, 0f9h, 0a4h, 0b0h, 99h, 92h, 82h, 0f8h, 80h, 90h
    ;--------------------------------------------
    ;
        end
    P/s: Mô phỏng bằng phần mềm Proteus v 7.10
    Attached Files

  • #2
    Code của bạn mình chạy mô phỏng rất tốt, không bị lỗi gì hết. Bạn thử kiểm tra lại phần cứng xem kết nối đúng hay chưa !

    Comment


    • #3
      Nguyên văn bởi tramng Xem bài viết
      Code của bạn mình chạy mô phỏng rất tốt, không bị lỗi gì hết. Bạn thử kiểm tra lại phần cứng xem kết nối đúng hay chưa !
      Cám ơn bạn đã quan tâm. Code của mình biên dịch thì không có lỗi, nhưng khi đang chạy mô phỏng mà ấn thay đổi nhiệt độ của con LM35 thì nó hiển thị không chính xác. Mình không biết sai tại khâu nào nữa. Nếu bạn có thời gian thì xem lại giúp mình với.

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      • mèomướp
        Trả lời cho Công thức điện tử
        bởi mèomướp
        Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
        hôm nay, 21:21
      • mèomướp
        Trả lời cho Xin hỏi về màn hình laptop
        bởi mèomướp
        Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
        hôm nay, 20:31
      • yname11
        Trả lời cho Xin hỏi về màn hình laptop
        bởi yname11
        Ok , thanks bác đã chỉ...
        hôm nay, 15:06
      • nguyendinhvan
        Công thức điện tử
        bởi nguyendinhvan
        Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

        Chập thì thay. Cháy thì tháo
        Làm thì láo. Báo thì hay
        May thì khoe. Rủi thì bỏ
        Thành tích nhỏ. Báo thành to
        Làm cho có. Báo chi li
        Sai cả li. Báo
        ...
        hôm nay, 00:35
      • yname11
        Trả lời cho Xin hỏi về màn hình laptop
        bởi yname11
        có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
        Hôm qua, 22:31
      • mèomướp
        Trả lời cho Xin hỏi về màn hình laptop
        bởi mèomướp
        Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
        Hôm qua, 22:14
      • bactho
        Trả lời cho Tự làm máy đo Cuộn cảm
        bởi bactho
        Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
        Hôm qua, 21:48
      • yname11
        Trả lời cho Xin hỏi về màn hình laptop
        bởi yname11
        màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
        Hôm qua, 21:43
      • bactho
        Trả lời cho các bạn giúp mình về file HEX với!!!
        bởi bactho
        Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
        Hôm qua, 21:21
      • mèomướp
        Trả lời cho Xin hỏi về màn hình laptop
        bởi mèomướp
        Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
        Hôm qua, 20:43
      Đang tải...
      X