Thông báo

Collapse
No announcement yet.

nhờ các anh chị giải giúp đỡ e bài tập về vdk 8051

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

  • nhờ các anh chị giải giúp đỡ e bài tập về vdk 8051

    Viết CT dùng Timer tạo 2 sóng vuông có cùng f= 1KHz tại P1.6 và P1.7. Biết rằng sóng vuông tại P1.7 chậm pha hơn sóng vuông tại P1.6 100µs. (Xtal 12MHz).

  • #2
    em làm thế này nhé:
    sử dụng 2 ngắt timer 1 và timer 2

    như sau:

    ORG 000H
    JMP MAIN


    ORG 000BH
    ; LỆNH ĐẢO BIT P1.6
    MOV TH0,#HIGH(-1000)
    MOV TL0,#(-1000)
    CLR TF0
    RETI


    TUƠNG TỰ CHO TIMER 2

    TRONG HÀM MAIN VIẾT NHƯ SAU
    MAIN:
    MOV TCON,# GIÁ TRỊ THÍCH HỢP ( THANH GHI TCON CÓ 8 BIT, BONS BIT THẤP CHO TIMER 0 VÀ 4 BIT CAO CHO TIMER1
    ( CỤ THỂ LÀ CÁC BIT NHƯ SAU: GATE1 - T/C - M1 - M0 - GATE0 - T/C - M1 - M0) - EM TỰ LÀM NHÉ
    MOV IE,#1XXXXXXX
    THANH GHI IE CHO PHÉP NGẮT MỖI KHI TIMER TRÀN ( CẢ CÁC NGẮT KHÁC)
    NHƯNG VÌ MÌNH SỬ DỤNG TIMER 0 VÀ 1 NÊN TA SỬ DỤNG CÁC BIT NHƯ SAU:
    BIT THỨ 7 CỦA IE : BIT NGẮT TOÀN CỤC
    BIT THỨ 1 CỦA IE: CHO PHÉP NGẮT TIMER0
    BIT THỨ 3 CỦA IE: CHO PHÉP NGẮT TIMER1

    VẬY LÀ : MOV IE,#10001010 NHÉ
    HEHE
    CLR P1.6
    CLR P1.7
    JMP $
    END


    TÍNH TOÁN THỜI GIAN NHƯ SAU
    F = 1KHZ
    => T = 1/F = 1/1000 = 1MS
    NẾU SỬ DỤNG THẠCH ANH 12MHZ => CHU KỲ MÁY = 1MS ( CHIA 12 RỒI)
    VẬY LÀ CẦN KHOẢNG 1000 CHU KỲ MÁY THÌ MỚI ĐƯỢC 1MS
    ĐÓ LÀ LÝ DO CẦN CÓ 2 LỆNH MOV TH0,#(-1000) VÀ MOV TL0,#LOW(-1000)
    TRONG CHƯONG TRÌNH CHÍNH EM PHẢI KHAI BÁO SỬ DỤNG TIMER Ở CHẾ ĐỘ 16BIT CHO TIMER 0 VÌ CẦN ĐẾM LÊN ĐẾN 1000 MÀ z( CHẾ ĐỘ 8 BÍT THÌ KHÔNG ĐỰOC)

    CÒN NẾU TRONG CHẾ ĐỘ 8 BIT EM VẪN LÀM ĐƯỢC NHƯNG VIẾT LẠI NHƯ SAU

    MOV GIÁ TRỊ 250 VÀO TH VÀ TL
    MỖI LẦN NGẮT TĂNG BIẾN ĐẾM LÊN 1
    KIỂM TRA NẾU ĐẾM = 4 THÌ CHO ĐẾM VỀ 0 , ĐỒNG THỜI ĐẢO CHÂN P1.6 HOẶC P1.7


    ĐƠN GIẢN VẬY THUI. CHÚC OKIE
    THÂN ÁI
    Be quan. Plz contact through email:

    Comment


    • #3
      bài hướng dẫn rất chi tiết. em xin chân thành cảm ơn anh ah.chúc anh luôn mạnh khỏe và gặp nhiều may mắn.

      Comment


      • #4
        bạn có thể giả chi tiết bài này dc ko?

        Comment


        • #5
          chi tiết như sau:


          0RG 000H
          JMP MAIN

          ORG 003H

          CPL P1.6 // ĐẢO TRẠNG THÁI CHÂN P1.6
          MOV TH0,#HIGH(-1000)
          MOV TL0,#LOW(-1000)
          CLR TF0 // KHÔNG CẦN THIẾT LỆNH NÀY VÌ MỖI KHI TRÀN CHIP TỰ ĐỘNG XÓA CỜ BÁO NGẮT

          RETI



          ORG 003H

          CPL P1.7 // ĐẢO TRẠNG THÁI CHÂN P1.6
          MOV TH1,#HIGH(-1000)
          MOV TL1,#LOW(-1000)
          CLR TF1 // KHÔNG CẦN THIẾT LỆNH NÀY VÌ MỖI KHI TRÀN CHIP TỰ ĐỘNG XÓA CỜ BÁO NGẮT

          RETI



          MAIN:
          MOV TMODE,#( GIÁ TRỊ ) - BẠN TỰ TRA NHÉ ( CẤU HÌNH TIMER 0 VÀ 1 HOẠT ĐỘNG Ở 16 BIT, BIT T/C = 1 VÌ HOẠT ĐỘNG Ở TIMER, BIT GATE = 0 VÌ ĐIỀU KHIỂN BẰNG PHẦN MỀM, GIỐNG NHAU Ở CẢ 4 BIT CHO TIMER0 VÀ 1)
          MOV TCON,#10000101 - CHO PHÉP NGẮT Ở CẢ TIMER 1 TIMER0
          CLR TF0
          CLR TF1
          MOV TH0,#HIGH(-1000)
          MOV TL0,#LOW(-1000)

          MOV TH1,#HIGH(-1000)
          MOV TL1,#LOW(-1000)

          SETB TR0
          SETB TR1

          CLR P1.6
          CLR P1.7


          JMP $ - NHAY TAI CHO DE CHO MOI KHI CỜ BÁO TRÀN THÌ QUAY VỀ CHUƠNG TRÌNH NGẮT ĐẢO CHÂN P1/6 HOẶC P1/7
          Be quan. Plz contact through email:

          Comment


          • #6
            ai viet giup em mot chuong trinh tong? hop dc ko? gom 32 led sang dan doi tat dan> sang don tat het > nhat' len tuc 5 lan > sang sao bang > sang duoi?
            gui vao mail cho em nha tinhyeudonphuong_dt2000@yahoo.com
            emm xin cam on nhieu^

            Comment

            Về tác giả

            Collapse

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

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

            Collapse

            Đang tải...
            X