Thông báo

Collapse
No announcement yet.

Giải thích giùm mình code ASM này với !

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

  • Giải thích giùm mình code ASM này với !

    Đề: Viết chương trình tạo sóng vuông tần số 10KHz tại chân P1.0 dùng timer 0 ( tan so thach anh f=12MHz )
    Giải:
    Do f(thach anh)= 12mhz nen chu ky máy la T=1us.
    để tạo tần số 10KHz mất T= 1/f = 0.1ms = 100us => một chu lỳ sóng vuông mất 100 chu ki máy. để thõa
    Code:
    MOV TMOD,#02h
    MOV TH0,#(-50)
    MOV TL0,#(-50)
    SETB TR0 ; Cho phép timer 0 chạy
    Lap:
    JNB TF0,Lap ; Nếu Timer chưa tràn thì chờ
    CLR TF0
    CPL P1.0 ; Đảo bit P1.0 để tạo xung vuông
    SJMP Lap
    END\

    Hỏi:
    1/ Dấu trừ trước số 50 có ý nghĩa gì ?
    2/ giait thích giùm em hoạt động code trên ?
    " Muốn biết phải hỏi, muốn giỏi phải học "

  • #2
    đề bài của bạn yêu cầu "một chu lỳ sóng vuông mất 100 chu ki máy" --> nếu bạn làm 50%-50% thì múc cao 50 chu kỳ và mức thấp 50 chu kỳ... điều này lý giải tại sao có số 50.
    còn dấu "-" là vì bạn phải chờ tràn, nguyên tắt hoạt động của timer là TF sẽ bật khi có sự tràn TH-TL khi đếm lên FFFF->0000 vậy nên phải thiết lập TH-TL = -50 để đếm 50 chu kỳ cuối cùng (FFCE --> 0000 = 50 chu kỳ máy) mình nhớ code phải là
    MOV TH0,#HIGH(-50)
    MOV TL0,#LOW(-50)
    còn hoạt động bên dưới thì đơn giản chỉ là chờ
    Lap:
    JNB TF0,Lap
    nó kiểm tra có tràn hay không, nghĩa là TF0 có lên 1 hay chưa
    nếu lên 1 thì nó sẽ
    CLR TF0 // xóa cờ TF0 về 0
    CPL P1.0 ; // lật trạng thái.

    Comment


    • #3
      nhưng tại sao phải nạp giá tri 50 cho TH làm gì? nếu như vậy thì độ rộng xung là 100 chứ ko phải là 50 vì khi TL đếm hết 50 thì đến TH đếm thêm 50 lần nữa thì TF mói tràn ????????????????
      " Muốn biết phải hỏi, muốn giỏi phải học "

      Comment


      • #4
        Xin lỗi, mình xóa ko được.
        Last edited by ngocthanh03; 12-05-2010, 11:16.

        Comment


        • #5
          mình hiểu rồi ! do đây là chế độ 8bit tự nạp lại nên khi TL đếm hết 50 thì TF tràn , còn giá trị ở thanh TH chỉ dóng vai trò nạp vào TL thôi. để tạo nên vòng khép kín
          haaaaaaaaaaaaaaaaaaaaa
          " Muốn biết phải hỏi, muốn giỏi phải học "

          Comment


          • #6
            #02h có nghĩa là gì nhỉ

            Comment


            • #7
              Nguyên văn bởi mattroicodon Xem bài viết
              #02h có nghĩa là gì nhỉ
              Có nghĩa là dùng bộ định thời 0 (timer 0) chế độ 2 (chế độ tự nạp lại).

              Comment

              Về tác giả

              Collapse

              fan.8051 Say mê Điện tử Tìm hiểu thêm về fan.8051

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

              Collapse

              Đang tải...
              X