Chủ đề: Topic về ASM
Xem bài viết riêng lẻ
  #7  
Cũ 23-04-2013, 11:00 AM
tiemkinhduongquang tiemkinhduongquang đang online
Junior Member
 
Tham gia ngày: Jun 2012
Bài gửi: 5
Mặc định

Tức là thế này:
V_trungbinh = (t_on/T)* V_nguoncap

Ở đây t_on là thời gian mà động cơ được cấp điện, còn T là chu kỳ của xung
Như vậy thì thời gian t_on càng cao (trong khi chu kỳ không đổi) thì điện áp trung bình cấp cho động cơ càng lớn
Ta giả sử như tốc độ động cơ DC là tỉ lệ thuận với điện áp được cấp và điện áp nguồn là điện áp định mức của động cơ ( cho dễ hiểu) thì:
Khi ta tạo t_on =0 thì động cơ đứng yên
Khi ta tạo t_on= T thì động cơ chạy 100% tốc độ định mức
Khi ta tạo t_on = 50% T thì động cơ chạy 50% tốc độ định mức)
………………………….
Tức là tốc độ sẽ phụ thuộc vào giá trị của t_on
Vậy ta sẽ dùng một chân vdk để tạo ra xung điều khiển
ví dụ cần tạo khoảng t_on là 700us trong khi T là 1000us, bạn có hai cách để đặt timer:
+Cách 1: dùng timer của 8051 ở chế độ 16bit và nạp vào đó số -700 (giả sử thạch anh 12MHz), đặt chân tạo xung lên mức 1 rùi cho timer chạy. Khi timer tràn, báo ngắt thì trong chương trình ngắt mình dừng timer, đặt vào timer số -300 (để có được chu kỳ là 1000us), cho chân tạo xung xuống mức 0, rùi cho nó chạy. Nó ngắt, lại đặt lại -700….
+Cách 2: dùng timer của 8051 ở chế độ 8bit tự nạp lại, đặt vào timer giá trị -100. đặt chân tạo xung bằng 1 rùi cho nó chạy. Mỗi lần ngắt thì mình vào tăng biến đếm lên, nếu biến đếm lên tới 7 thì mình lại hạ chân tạo xung xuống mức 0, đặt biến đếm lại bằng 0. Đợi ngắt, lại tăng biến đếm, kiểm tra coi nó có bằng 3 không. Đúng rùi thì nâng chân tạo xung lên 1, reset biến đếm về 0 rùi cứ vậy mà tiếp tục……….

Thấy hướng dẫn như vậy,dùng C thì cũng ổn nhưng mình muốn dùng ASM để lập trình cho 8051 cơ
Trả lời với trích dẫn