- Do nguồn điện cung cấp dưới dạng xung, nên muốn động cơ có đủ moment thì thời hằng điện L/R của động cơ phải lớn hơn đáng kể so với chu kỳ xung
4.8.3 Bài toán điển hình
4.8.3.1 Bài toán 1:
Viết chương trình xuất dữ liệu điều khiển động cơ bước luân phiên quay thuận và quay nghịch.
Mục đích - yêu cầu:
*• Làm quen với chức năng các lệnh nhảy, lệnh xuất dữ liệu.
* Hiểu cách đưa dữ liệu vào điều khiển động cơ bước từ đó sinh viên có thể thiết kế điều khiển đèn giao thông trong thực tế.
1/ Chương trình sử dụng các lệnh: CLO, MOV, OUT, JMP và END.
Động cơ bước trong chương trình mô phỏng được điều khiển bằng cách gởi dữ liệu xuất ra port 5.
Đây là loại động cơ bước có 4 cuộn dây ở stator được điều khiển theo dạng đơn cực nửa bước, nối vào port 5 của hệ vi xử lý nên để điều khiển ta dùng lệnh OUT 5. Chỉ có 4 bit thấp trong port này được sử dụng điều khiển động cơ bước, 4 bit cao không sử dụng.
Ở đây có chương trình ví dụ: baitap02.asm. Ta có thể chép chương trình từ trang giúp đỡ và dán vào trong trình đang soạn thảo. Để chạy chương trình, ta click vào biểu tượng Step lập lại nhiều lần để chạy từng bước hay nhấn vào Run để chạy trọn vẹn chương trình. Để ngừng chương trình ta click vào stop. Khi chương trình đang chạy, click vào RAM - Source hay RAM - Hex hay RAM - ASCII. Ở đó ta sẽ thấy được sự thay đổi luân phiên các nội dung của việc truy xuất bộ nhớ RAM. Nhấn vào tab List - file để thấy mã máy được biên dịch bởi chương trình mô phỏng.
2/ Các nhãn và lệnh JMP:
Nhãn đánh dấu các vị trí thì được sử dụng bởi các lệnh nhảy. Tất cả các lệnh trong chương trình này được lập lại liên tục cho đến khi nhấn Stop. Tên nhãn phải bắt đầu với 1 chữ cái hay 1 ký tự. Tên nhãn không được bắt đầu bằng 1 ký số. JMP Start làm cho chương trình nhảy về và làm lại các lệnh từ lúc đầu. Cuối nhãn phải có dấu 2 chấm. Ví dụ: Start:
3/ Điều khiển động cơ bước:
Nếu bạn quan sát kỹ động cơ bước, bạn có thể thấy được mỗi cuộn dây được điều khiển bởi một bit tương ứng. Ta có thể tìm ra các bit 0 hay 1 để thiết lập trạng thái của cuộn dây. Sử dụng bảng số Hex và số nhị phân trong phần phụ lục để tìm ra số Hex tương ứng. Đưa số Hex này vào thanh ghi AL.
4/ Lệnh OUT 05 (xuất ra P.05):
Lệnh này dùng để chuyển nội dung của thanh ghi AL ra Port 5. Vì hệ thống đèn giao thông được nối với port 5, nên ta có thể điều khiển các cuộn dây theo nội dung trên thanh ghi AL. Số 1 làm cho cuộn dây có điện, số 0 làm cho cuộn dây mấtù điện.
Với cùng một yêu cầu có thể viết chương trình theo nhiều cách khác nhau để thoả mãn các yêu cầu đề bài đặt ra.
Chương trình 1:
; chương trình điều khiển động cơ bước --- CLO ; đóng tất cả các cửa sổ không dùng
Start:
________________________________________________________________________________________________________
MOV AL,01 ; chuyển 01h vào thanh ghi AL OUT 05 ; cuộn dây thứ nhất có điện
MOV AL,02 ; chuyển 11111100 (hay FCh) vào thanh ghi AL OUT 05 ; cuộn dây thứ 2 có điện
MOV AL,04 ; chuyển 00h vào thanh ghi AL OUT 05 ; cuộn dây thứ 3 có điện
MOV AL,08 ; chuyển 11111100 (hay FCh) vào thanh ghi AL OUT 05 ; cuộn dây thứ 4 có điện
MOV AL,04 ; chuyển 00h vào thanh ghi AL OUT 05 ; cuộn dây thứ 3 có điện
MOV AL,02 ; chuyển 11111100 (hay FCh) vào thanh ghi AL OUT 05 ; cuộn dây thứ 2 có điện
MOV AL,01 ; chuyển 00h vào thanh ghi AL OUT 05 ; cuộn dây thứ 1 có điện
JMP Start ; nhảy về nhãn start để thực hiện lại chương trình
END ; kết thúc chương trình
;---
4.8.3.2 Bài toán 2:
Mục đích -yêu cầu:
Giúp sinh viên hiểu về bảng dữ liệu và cách sử dụng bảng trong viết chương trình.
Kiến thức nền:
1/ Lệnh DB 01 :
DB là chữ viết tắt của Define Byte. Lệnh này khai báo số 01H được cất trong RAM tại địa chỉ [02]. Địa chỉ [00] và [01] dành cho mã máy của lệnh JMP Start. 01H đổi sang số nhị phân là 0000 0001.
2/ MOV BL,02:
Chuyển 02 vào thanh ghi BL. [02] là địa chỉ RAM bắt đầu của bảng dữ liệu. BL được sử dụng như là một con trỏ để chỉ đến bảng dữ liệu.