Phân tích sơ đồ điều khiển các động thái của motor dùng ic AT89C

Một phần của tài liệu Giới thiệu ma trận chi tiếp lập trình ứng dụng (Trang 100)

8 nút nhấn dùng điều khiển 2 motor DC gắn trên xe đều cho kết nối trên cảng p1. Motor DC gắn bên phải qua ic BA6209, chân p3.0 điều khiển chiều quay thuận, chân p3.1 điều khiển chiều quay nghịch và chân p3.2 điều khiển tốc độ quay. Motor DC gắn bên trái qua ic BA6209, với chân p3.3 điều khiển chiều quay thuận, chân p3.4 điều khiển chiều quay ngược và chân p3.5 điều khiển tốc độ quay.

org 0000h qua0:

jb p1.0, qua1

call del ; gọi trình làm trể, tránh ảnh hưởng rung phím jnb p1.0, $

jmp chay_toi ; Cho chạy tới, 2 motor quay cùng chiều qua1:

jb p1.1, qua2 call del jnb p1.1, $

jmp chay_lui ; chạy lùi, 2 motor cho quay ngược chiều qua2:

jb p1.2, qua3 call del jnb p1.2, $

jmp queo_trai ; quẹo trái, motor trái dừng, motor phải quay tới qua3:

jb p1.3, qua4 call del jnb p1.3, $

jmp queo_phai ; quẹo phải, motor phải dừng và motor trái quay tới qua4:

jb p1.4, qua5 call del jnb p1.4, $

jmp dung ; dừng, cả 2 motor đều dừng, không quay qua5:

jb p1.5, qua6 call del jnb p1.5, $

qua6:

jb p1.6, qua7 call del jnb p1.6, $

jmp quay_trai ; quay vòng qua trái, motor trái quay ngược, motor phải quay thuận

qua7:

jb p1.7, qua0 call del jnb p1.7, $

jmp quay_phai ; quay vòng qua phải, motor trái quay thuận, motor phải quay ngược

chay_toi: ; trình cho chạy tới setb p3.0 clr p3.1 setb p3.2 setb p3.3 clr p3.4 setb p3.5

jmp qua0 ; trở lại chương trình qué phím chay_lui: ; trình cho chạy lùi

clr p3.0 setb p3.1 setb p3.2 clr p3.3 setb p3.4 setb p3.5

jmp qua0 ; trở lại trình quét phím queo_trai: ; cho quẹo trái

setb p3.0 clr p3.1 setb p3.2 setb p3.3 clr p3.4

jmp qua0 ; trở lại trình quét phím queo_phai: ; cho quẹo phải

setb p3.0 clr p3.1 clr p3.2 setb p3.3 clr p3.4 setb p3.5

jmp qua0 ; trở lại trình quét phím dung: ; cho dừng setb p3.0 clr p3.1 clr p3.2 setb p3.3 clr p3.4 clr p3.5

jmp qua0 ; trở lại trình quét phím cham_lai: ; cho chậm lại

setb p3.0 clr p3.1 setb p3.3 clr p3.4 mov r4, #100 llai: setb p3.2 setb p3.5 call delay clr p3.2 clr p3.5 call delay djnz r4, llai

jmp qua0 ; trở lại trình quét phím quay_trai: ; cho quay vòng qua trái setb p3.0

clr p3.3 setb p3.4 setb p3.5

jmp qua0 ; trở lại trình quét phím quay_phai: ; cho quay vòng qua phải clr p3.0 setb p3.1 setb p3.2 setb p3.3 clr p3.4 setb p3.5

jmp qua0 ; trở lại trình quét phím del: ; đặt tên nhãn dùng cho lệnh nhẩy

mov r3, # 10 ; nạp trị 10 vào thanh ghi r3 mov r4, #200 ; nạp trị 200 vào thanh ghi r4 v_r4: ; đặt tên nhãn dùng cho lệnh nhẩy

djnz r4, $ ; giảm -1 đến khi trị trong r4 băng 0

djnz r3, v_r4 ; giảm trị trong r3 theo bước -1, r3 0?, định hướng nhẩy ret ; quay lại sau lệnh call del

delay: ; đặt tên nhãn cho trình làm trể

mov r5, #100 ; nạp trị 100 vào thanh ghi r5 v_r6: ; đặt tên nhãn dùng cho lệnh nhẩy

mov r6, #250 ; nạp trị 250 vào thanh ghi r5

djnz r6, $ ; giảm theo bước -1 cho đến khi bằng 0

djnz r5, v_r6 ; giảm r5 theo bước -1, r5=0? chọn hướng nhẩy ret ; quay lại sau lệnh call delay

end ; dừng biên dịch tại dòng này

Phân tích các câu lệnh viết trong chương trình trên:

Một phần của tài liệu Giới thiệu ma trận chi tiếp lập trình ứng dụng (Trang 100)

Tải bản đầy đủ (DOCX)

(197 trang)
w