Chương trình điều khiển vi bước

Một phần của tài liệu Thiết kế, chế tạo mô hình tay máy gắp sản phẩm (Trang 121 - 127)

org 00h ;dia chi dau chuong trinh ljmp main ;nhay qua trinh vu ngat org 03h ;dia chi vecto ngat ngoai 0 ljmp ngat1

org 30h main:

mov p0,#0f0h ;xoa port 0 mov a,#00h ;xoa thanh chua a

mov R2,#00h ;xoa thanh ghi r2--- mov R3,#1 ;Nap gia tri ban dau cho he so dem =1

mov R7,#50 ;Nap chu ky xung thap - cao la 1s CU 16 mov tmod,#01h ;khoi dong bo dinh thoi 0

mov ie,#81h ;cho phep ngat ngoai 0

mov DPTR,#200h ;nap dia chi dau cho con tro

mov R4,#1 ;Ma vong nap ngay gia tri dau--- setb IT0 ;ngat ngoai tich cuc muc

;clr 00h ;xoa bit BAO Co xung ngat1 ;clr 01h ;xoa bit kiem tra duoc phep nhan ;clr 02h ;xoa bit bao co xung ngat 2 ;CHUONG TRINH KIEM TRA TRINH TU

start: JNB 00h,Loop1 ;neu khong co xung kich thuc hien nhiem vu binh thuong clr 00h ;neu co xoa ngay bit xung

JNB P1.0,quaynguoc ;sau do kiem tra chieu quay

quaythuan: Lcall doiT ;goi chuong trinh tang doi R2 thanh R4 JNB 01h,start11 ;bo qua nhanT neu doiT khong lam viec Lcall nhanT ;Neu khong thuc hien chuong trinh nhan

start11:cjne R4,#17,start12 ;so sanh muc nguong vong xem co vuot 16 hay chua? mov R4,#1 ;hoan doi hai muc nguong vong 17 va 1 neu co vuot start12:jmp Loop1 ;thuc hien hoan tat chu trinh quay thuan

quaynguoc: Lcall doiG ;goi chuong trinh doi giam R2 thanh R4 JNB 01h,start21 ;Bo qua nhanG neu doiG khong lam viec Lcall nhanT ;neu khong thuc hien chuong trinh nhan

start21:cjne R4,#0,start22 ;so sanh muc nguong xem co lui qua 0 hay chua? mov R4,#16 ;hoan doi hai muc nguong 0 va 16

start22: Loop1:

wait11:Cjne R4,#01,loop2 ;kiem tra ma vong mov p0,#00000001b ;

jmp finish ;thoat khoi vong lap 1 loop2: Cjne R4,#02,loop3 ;kiem tra ma vong setb p0.0 ;A=1

lcall kxungB ;B rung clr p0.2 ;C=0 clr p0.3 ;D=0 jmp finish ;tiep tuc

mov p0,#00000011b ;A=1,B=1 jmp finish ;tiep tuc

loop4: Cjne R4,#04,loop5 ;kiem tra ma vong setb p0.1 ;B=1

lcall kxungA ; A rung clr p0.2 ;C=0 clr p0.3 ;D=0 jmp finish ;tiep tuc

loop5: Cjne R4,#05,loop6 ;kiem tra ma vong mov p0,#00000010b ;B=1

jmp finish ;tiep tuc

loop6: Cjne R4,#06,loop7 ;kiem tra ma vong clr p0.0 ;A=0

setb p0.1 ;B=1 lcall kxungC ;C rung clr P0.3 ;D=0 jmp finish ;tiep tuc

loop7: Cjne R4,#07,loop8 ;kiem tra ma vong mov p0,#00000110b ;B=1,C=1

jmp finish ;tiep tuc

loop8: Cjne R4,#08,loop9 ;kiem tra ma vong clr p0.0 ;A=0

setb p0.2 ;C=1 lcall kxungB ;B rung clr P0.3 ;D=0 jmp finish ;tiep tuc

loop9: Cjne R4,#09,loop10 ;kiem tra ma vong mov p0,#00000100b ;C=1 (adsbygoogle = window.adsbygoogle || []).push({});

jmp finish ;tiep tuc

loop10:Cjne R4,#10,loop11 ;kiem tra ma vong clr P0.0 ;A=0

clr P0.1 ;B=0 setb p0.2 ;C=1 lcall kxungD ;D rung jmp finish ;tiep tuc

loop11:Cjne R4,#11,loop12 ;kiem tra ma vong mov p0,#00001100b ;C=1,D=1

jmp finish ;tiep tuc

loop12:Cjne R4,#12,loop13 ;kiem tra ma vong clr P0.0 ;A=0

setb P0.3 ;D=1 Lcall kxungC ;C rung jmp finish ;tiep tuc

loop13:Cjne R4,#13,loop14 ;kiem tra ma vong mov p0,#00001000b ;D=1

jmp finish ;tiep tuc

loop14:Cjne R4,#14,loop15 ;kiem tra ma vong clr P0.1 ;B=0

clr P0.2 ;C=0 setb P0.3 ;D=1 Lcall kxungA ;A rung jmp finish ;tiep tuc

loop15:Cjne R4,#15,loop16 ;kiem tra ma vong mov p0,#00001001b ;D=1,A=1

jmp finish ;tiep tuc

loop16:Cjne R4,#16,loop17 ;kiem tra ma vong clr P0.1 ;B=0

clr P0.2 ;C=0 setb P0.0 ;A=1 Lcall kxungD ;D rung jmp finish ;tiep tuc loop17:

finish: jmp start

;CHUONG TRINH XU LY NGAT KHI NHAN XUNG ngat1: JNB P1.0,done1 ;Kiem tra chieu quay jmp done2 ;thuc hien neu chieu quay duong done1: Cjne R2,#0,done3 ;thuc hien neu chieu quay am mov R2,#20 ;doi gia tri giua hai nguong 0 va 36

cjne R3,#1,done12 ;so sanh xem da vuot ma nguong duoi hay chua? mov R3,#5 ;doi gia tri giua hai nguong cho he so 0 va 4

done12: dec R3 ;giam he so

done3: dec R2 ;giam R2 neu chieu quay am jmp skipN ;thoat den cuoi trinh ngat

done2: cjne R2,#20,done4 ;thuc hien chieu quay duong mov R2,#0 ;doi muc gia tri hai nguong 36 va 0

cjne R3,#4,done21 ;so sanh xem da vuot ma nguong tren hay chua? mov R3,#0 ; doi gia tri giua hai nguong cho he so 4 va 0 done21: inc R3 ;tang he so

done4: inc R2 ;Tang r2 len 1 don vi neu co xung kich skipN:setb 00h ;bit ra hieu co xung ngat1 dung de tinh R4

reti

;1/chuong trinh con doi R2 thanh R4(doi tang) doiT:

mov A,R2

eq1T: cjne A,#1,eq5T mov A,#2

jmp fdoi1T

eq5T: cjne A,#10,eq6T mov A,#3

jmp fdoi1T (adsbygoogle = window.adsbygoogle || []).push({});

eq6T: cjne A,#11,eq10T mov A,#4 jmp fdoi1T eq10T:cjne A,#20,skipT mov A,#5 fdoi1T:mov R4,A setb 01h skipT: ret

;2/chuong trinh con tinh R4=R4+R3*4 nhanT: clr 01h mov A,R3 mov b,#4 Mul AB ADD A,R4 subb A,#4 mov R4,A ret

;3/chuong trinh con doi R2 thanh R4(doi giam) doiG:

mov A,R2

eq9G: cjne A,#19,eq5G mov A,#4

jmp fdoiG

eq5G: cjne A,#10,eq4G mov A,#3

jmp fdoiG

eq4G: cjne A,#9,eq0G mov A,#2

jmp fdoiG

mov A,#1 fdoiG:mov R4,A setb 01h skipG: ret

kxungA: setb P0.0 ;DUA DONG CUON DAY A LEN MUC CAO lcall kxung ;goi chuong trinh giu muc cao

clr P0.0 ;NGAT DONG TAI CUON DAY A lcall hxung ;duy tri thoi gian ha xung

ret

kxungB: setb P0.1 ;DUA DONG CUON DAY B LEN MUC CAO lcall kxung ;goi chuong trinh giu muc cao

clr P0.1 ;NGAT DONG TAI CUON DAY B lcall hxung ;duy tri thoi gian ha xung

ret

kxungC: setb P0.2 ;DUA DONG CUON DAY C LEN MUC CAO lcall kxung ;goi chuong trinh giu muc cao

clr P0.2 ;NGAT DONG TAI CUON DAY C lcall hxung ;duy tri thoi gian ha xung

ret

kxungD: setb P0.3 ;DUA DONG CUON DAY D LEN MUC CAO lcall kxung ;goi chuong trinh giu muc cao

clr P0.3 ;NGAT DONG TAI CUON DAY D lcall hxung ;duy tri thoi gian ha xung

ret

;CHUONG TRINH CON KICH XUNG CHUNG

kxung: mov a,R2 ;lay tin hieu xung kich tu ngat movc a,@a+dptr ;bien thanh tan so kich xung mov R6,a ;dua vao thanh ghi quy dinh tan so mov R0,a ;cat tam vao R0

Lcall delayxs ;thoi gian kich xung

mov a,R7 ;dua gia tri R7 vao thanh chua

subb a,R0 ;lay R7 tru di R6 sau do luu vao thanh chua ret

;CHUONG TRINH CON HA XUNG

hxung: mov R6,a ;dua noi dung vao thanh ghi quy dinh tan so Lcall delayxs ;thoi gian kich xung (adsbygoogle = window.adsbygoogle || []).push({});

clr 02h ret

delayxs: loop:

mov tl0,#0e7h;D8 setb tr0 wait:JB 02h,exitkx jnb tf0,wait clr tr0 clr tf0 djnz r6,loop exitkx: ret

;CHUONG TRINH DO TANG (12 x200)= 2400 XUNG/VONG(sua db kem sua ngat va tang, giam)

org 200h ; Nap Db

DB #00h ;coi nhu khong kich xung

DB #13 ;kich xung tan so cao nhat DB #22 ;kich xung tan so cao thu nhi

DB #27 ;kich xung tan so cao thu ba DB #32 ;kich xung tan so cao thu tu DB #34 ;kich xung tan so cao thu nam DB #37 ;kich xung tan so cao thu sau DB #39 ;kich xung tan so cao thu bay DB #42 ;kich xung tan so cao thu tam DB #47 ;kich xung tan so cao thu chin

DB #00h ;coi nhu khong kich xung vi tri giua cua 2 cuc 10 DB #47 ;kich xung tan so cao thu chin

DB #42 ;kich xung tan so cao thu tam DB #39 ;kich xung tan so cao thu bay DB #37 ;kich xung tan so cao thu sau DB #34 ;kich xung tan so cao thu nam DB #32 ;kich xung tan so cao thu tu DB #27 ;kich xung tan so cao thu ba

DB #22 ;kich xung tan so cao thu nhi DB #13 ;kich xung tan so cao nhat DB #00h ;coi nhu khong kich xung end

Một phần của tài liệu Thiết kế, chế tạo mô hình tay máy gắp sản phẩm (Trang 121 - 127)