Welcome & Happy Holidays!
Kết quả 1 đến 5 của 5
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    Về lập trình điều xung bằng 89s52

    [IMG]http://*************/attachments/51353/[/IMG]

    Hiện mình đang làm một con robot điều khiển bằng tay. Mình muốn điều khiển tốc độ cho động cơ bằng 89s52. Khi mình đặt nhãn cho thanh ghi đặc biệt PWM thì chương trình đều báo lỗi như hình. Mong mọi người đi qua ai có phương pháp và cách thức giải quyết xin mách mình với. Cảm ơn vì đã đọc bài.

  2. #2
    Ngày tham gia
    Apr 2016
    Bài viết
    0
    MCU 89s52 làm gì có thanh ghi CCAPx1H mà làm PWM bạn,muốn làm thì phải dùng P89V51RD2 mới có nhé..
    còn trình dịch báo lổi là có thể do thiếu file ''mod51fx'' bạn phải include vào để hổ trợ dịch cho dòng P89V51RD2..

    p/s:Chỉ có một vấn đề bạn không nên mở hai luồng như thế phí tài nguyên và gây khó chịu cho người đọc..

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Ý bạn này là tạo PWM bằng chương trình, bản chất là thay đổi độ rộng xung ở chân ra nào đó thôi. Không có phần cứng sẵn nên có thể dùng timer, ngắt...rồi tạo. Cách này cũng có thể được.fb

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    89s dùng ngắt tạo xung thì tạm ổn ,nhưng nó không bằng avr hay pic , arm ...được

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Em cũng đang cần viết 1 chương trình tạo xung pwm, em viết theo kiểu bình thường không dùng timer thì em dùng 1 thanh ghi mình có thể thay đổi độ rộng xung mong muốn được. VÌ em muốn viết 1 chương trình con nó có thể chay song song với các chương trình khác, em định dùng timer để viết mà không rõ cách thay đổi độ rộng xung thế nào.
    Em có đoạn code phía dưới mọi người có thể giải thích giùm em với ạ ! Có phải độ rộng xung được thay đổi bằng giá trị mình nạp vào TL0 với TH0 không ạ?
    Em có thể thay giá trị đó bằng 1 thanh ghi có được không ạ? để mình có thể thay đổi thích hợp hơn không vây



    Mã:
    ORG 0h
       MOV TMOD,#01H  ; Chon Timer0, che do 1 (16 bit)
                                    
                         ; Chu ky xung: 1/12K=83 us
                         ;chu ky may: 12/12M=1 us         
                         ; => 70/30 = 58/25
                         ; 58-8=50   
                         ; 25-10=15   
                      
    HERE:
       SETB P0.1        ;1 Bat P0.1
       MOV TL0, #0CEH  ;2 byte thap;CE
       MOV TH0, #0FFH  ;2 byte cao 
       SETB TR0  ;1 Khoi dong Timer0
     
    AGAIN1:
      JNB TF0, AGAIN1  ;1 Kiem tra co bo dinh thoi TF0
      CLR TR0   ;1 Dung bo dinh thoi
      CLR TF0     ;1 Xoa co bo dinh thoi cho vong sau
    
      CLR P0.1            ;1 Lat P0.1
      MOV TL0, #0F1H  ;2 byte thap;F1
      MOV TH0, #0FFH  ;2 byte cao
      SETB TR0  ;1 Khoi dong Timer0
     
    AGAIN2:
      JNB TF0, AGAIN2  ;1 Kiem tra co bo dinh thoi TF0
      CLR TR0   ;1 Dung bo dinh thoi
      CLR TF0     ;1 Xoa co bo dinh thoi cho vong sau
    Em cảm ơn!

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 11:59 PM. Diễn đàn sử dụng vBulletin® Phiên bản 4.2.5.
Bản quyền của 2025 vBulletin Solutions, Inc. Tất cả quyền được bảo lưu.
Ban quản trị không chịu trách nhiệm về nội dung do thành viên đăng.