!!! Chú ý: Trước khi đảo chiều động cơ đang quay ta cần phải chờ động cơ dừng lại hẳn bằng cách cho AB = 00, sau đó mới xuất lệnh đảo chiều, Điều này giúp tránh moment hãm đột ngột có thể làm hỏng mạch lái và động cơ.
Module MCU-51
Vì được thiết kế để hoạt động với cơ chế 3 bus, nên người lập trình chỉ cần truy xuất đến hai bit thứ 4 và 5 của ngoại vi tại địa chỉ của vi mạch ‘573. Như vậy, người lập trình cần xác định địa chỉ ‘573 từ bản đồ địa chỉ. Dùng các lệnh thao tác trên bit như
SETB, CLR để xác định giá trị của các bit thứ 0 và 1 mà không làm ảnh hưởng đến các bit khác và xuất ra ngoại vi
SETB ACC.4 ; cài đặt hai bit điều khiển
CLR ACC.5
MOV DPTR, #IC573B
MOVX @DPTR, A ; xuất ra ngoại vi điều khiển
Dùng dây bus 20 chân để nối hai header 20 chân trên microB-MAIN và microB-EXT. Điều này cho phép điều khiển ‘573B như ngoại vi ở chế độ 3 bus.
PHẦN MỀM GIAO TIẾP DÙNG MODULE BMCU-51 THÍ NGHIỆM 1 THÍ NGHIỆM 1
Mục đích
Nắm được cách thức điều khiển cầu H đơn giản.
Yêu cầu
Viết chương trình cho phép động cơ chạy theo chiều thuận trong vòng 2s, nghỉ 2s, chạy theo chiều ngược 2s, nghỉ 2s và lặp lại.
!!! Một điểm rất quan trọng cần lưu ý là không được đảo chiều quay đột ngột. Do đó khoảng thời gian nghỉ giữa các lần đảo chiều là rất cần thiết và là thao tác điều khiển bắt buộc.
Như vậy giá trị xuất ra ‘573B sẽ có hai bit 0 và 1 lần lượt là 10, 00, 01, 00. Mỗi giá trị được xuất ra cách nhau 2s.
Kiểm tra
Thực thi và kiểm tra hoạt động của chương trình.
THÍ NGHIỆM 2
Mục đích
Nắm được cách thức điều khiển động cơ với phương pháp PWM.
Yêu cầu
Viết chương trình điều khiển động cơ với phương pháp PWM, trong đó thời gian “bật” của xung là 50% chu kỳ.
Hướng dẫn
Để có thể tạo được các độ rộng xung khác nhau trong một chu kỳ cố định, người lập trình có thể dùng hai ngắt Timer. Ngắt Timer0 được dùng để tạo ra chu kỳ ngắt mỗi 1ms (để tạo chu kỳ 1KHz). Ngắt Timer1 được dùng để tạo ra thời gian “bật” của chu kỳ (500µs).
Như vậy, ngắt Timer0 phải xảy ra mỗi 1000 chu kỳ máy (tần số dao động là 11.059MHz). Giá trị nạp ban đầu cho hai thanh ghi TH0, TL0 là -1000. Trong chương trình phục vụ ngắt Timer0, ngoài việc nạp lại giá trị đếm cho Timer0, người lập trình cần cho phép ngắt Timer1 hoạt động để tạo ra ngắt khi hết thời gian “bật”. Cụ thể là Timer1 được khởi động để có thể xảy ra ngắt sau 500 chu kỳ máy.
Trong chương trình phục vụ của ngắt Timer1, người lập trình ngừng Timer1 để sẵn sàng cho lần tạo ra xung mức cao kế tiếp. Chương trình lúc này quay lại trạng thái chờ ngắt Timer0 khi hết chu kỳ.
Kiểm tra
Thực thi và kiểm tra hoạt động của chương trình. So sánh tốc độ quay của động cơ với thí nghiệm 1.
Thử thay đổi độ rộng xung thành 20%, 80% để xác nhận việc thay đổi tốc độ động cơ. THÍ NGHIỆM 3 Mục đích Phối hợp nhiều tốc độ. Yêu cầu
Viết chương trình điều khiển động cơ với phương pháp PWM, trong đó thời gian “bật” của xung lần lượt là 20%, 50%, và 80% chu kỳ. Mỗi độ rộng xung cách nhau 5s. Qui trình được lặp lại liên tục.
Hướng dẫn
Người lập trình có thể sử dụng lại phương pháp trong thí nghiệm 2 với một thay đổi nhỏ là giá trị nạp cho ngắt của Timer1 sẽ thay đổi sau mỗi 5s. Các giá trị này lần lượt là -200, -500, và -800 chu kỳ máy.
Kiểm tra
Thực thi và kiểm tra hoạt động của chương trình.
Thử thay đổi chương trình để có thể thay đổi tốc độ nhờ phím nhấn. Ví dụ, mặc định động cơ sẽ chạy ở độ rộng xung 20%. Khi nhấn phím lần 1, độ rộng xung tăng lên 50%. Khi nhấn phím lần 2, độ rộng xung tăng lên 80%. Khi nhấn phím lần nữa, độ rộng xung giảm xuống còn 20%.
THÍ NGHIỆM 4
Mục đích
Tăng giảm tốc độ động cơ DC.
Yêu cầu
Viết chương trình thực hiện việc tăng hoặc giảm dần tốc độ động cơ nhờ hai nút nhấn P1.4, và P1.5. Khi không nhấn nút, tốc độ động cơ không đổi. Khi nút P1.4 được nhấn và giữ thì tốc độ động cơ tăng dần. Khi nút P1.5 được nhấn và giữ thì tốc độ động cơ giảm dần.
Kết hợp chuơng trình quét phím và chương trình thay đổi tốc độ động cơ ở trên .
Kiểm tra