Ở hai đầu cầu thang lên và cầu thang xuống có lắp hai cặp cảm biến hồng ngoại thu phát.
Khi có người đi đến thang, tín hiệu hồng ngoại từ LED phát phát ra đến cơ thể người bị cản lại và phản xạ lại, LED thu thu được tín hiệu sẽ phát tín hiệu về bộ xử lý trung tâm (IC AT89C51), bộ xử lý trung tâm se xử lý dữ liệu và phát tín hiệu điều khiển cho động cơ quay kéo cấu thang đi lên ( đi xuống). Khi hết hành trình bộ xử lý trung tâm ngắt tín hiệu để dừng cầu thang lại.
2.5.3.Chương trình điều khiển
;****************************************************************** ***************
;*********************** khai bao dau ra **********************************
;
******************************************************************* **************
dc_len bit p0.0 ;dat cho thang chay len la bit p0.0 dc_xuong bit p0.1 ;dat cho thang chay xuong la bit p0.1
cb_len bit p1.3 ;dat cho cam bien co nguoi len la bit p1.3
cb_xuong bit p1.2 ;dat cho cam bien co nguoi xuong la bit p0.1 ;
******************************************************************* **************
;********************** chuong trinh chinh
******************************** ;
******************************************************************* **************
ORG 0000H ;dia chi ban dau
JMP MAIN
ORG 001BH ;dia chi time1 JMP delay_cau_thang
ORG 0030H ;dia chi bat dau chuong trinh MAIN:
MOV IE,#10001000B ;CHO PHEP NGAT TIME 1 VA NGAT NGOAI 0 ie= 88h
SETB TR1;CHO PHEP TIME 1 HOAT DONG (bo dinh thoi 1 hoat dong)
cau_thang_len:
jnb cb_len,cau_thang_xuong ;neu cam bien cau thang len =0 thi kiem tra cam bien cau thang xuong
setb dc_len ;neu no bang 1 thi thang len chay
mov r1,#70h ;dat vong lap de tre time (time cau thang chay)
cau_thang_xuong:
jnb cb_xuong,cau_thang_le ;neu cam bien cau thang xuong =0 thi kiem tra cam bien cau thang len
setb dc_xuong ;neu no bang 1 thi thang xuong chay mov r2,#70h ;dat vong lap de tre time (time cau thang chay)
jmp cau_thang_len ;lap lai qua trinh kiem tra delay_cau_thang:
MOV TMOD,#10H ;khoi dong bo dinh thoi 1 o che do 16bit - 00010000b
MOV TH1,#HIGH(-50000) ;nap vao byte cao gia tri 50000 =0.0005s
MOV TL1,#LOW(-50000) ;nap vào byte thap gia tri 50000 =0.0005s
DEC r1 ;tru R1 di 1
DEC r2 ;tru R2 di 1
dung_cau_thang_len:
cjne r1,#00h,dung_cau_thang_xuong ;neu chua het thoi gian thi kiem tra cau thang xuong
clr dc_len ;neu het thoi gian roi thi dung cau thang len dung_cau_thang_xuong:
cjne r2,#00h,ket_thuc ;neu chua het thoi gian thi quay ve kiem tra tu dau
clr dc_xuong ;neu het thoi gian roi thi dung cau thang xuong
ket_thuc:
reti ;ket thuc chuong trinh ngat (# RET la ket thuc chuong trinh con)
END