《分享一个防盗门的控制程序.doc》由会员分享,可在线阅读,更多相关《分享一个防盗门的控制程序.doc(1页珍藏版)》请在三一文库上搜索。
1、分享一个防盗门的控制程序一个防盗门的控制程序,采用无线遥控方式开门,步进马达执行动作。采用AT89C2051单片机控制,liweiqiang;P3.3接峰鸣器;P3.5接门状态开关信号输入,低电位表示门已关上,高电位表示门已打开;P3.7摇控开门信号输入,低电位表示有开门信号。org 0000hljmp startorg 000bhljmp int_0start:mov sp,#60hmov tmod,#01hmov th0,#0b0hmov tl0,#0b8hmov r1,#00hmov r0,#00hsetb easetb et0setb tr0;= main:;主循环开始 jb p3.5
2、,kss;P35=0,表示门已关门.向下执行 jnb 20H.0,kss;20H.0=0表示已锁门.转手工开锁信号检测处 lcall gs;关锁 clr 20H.0;置20H.0=0,表示已锁一次门.kss:;手工开锁信号检测 jnb p3.5,kst;如果门被手动从里面打开过就向下执行清锁门标志位。 ajmp ddjmkst:;摇控开锁信号检测 jb p3.7,kmjs;有低电平开锁信号?是向下执行 lcall delay;延时消抖动 jnb p3.7,kmjs;确认开锁按键是否已放开。是向下执行 lcall ks;开锁 setb tr0;开锁后计时kmjs:;开门计时 cjne r0,#3
3、0,main;开门计时15秒后检测门的状态 mov r0,#00h clr tr0ddjm: jb p3.5,$;等待门被关上 setb 20h.0;门关上后清已锁门标志位, clr tr0; 停止计数 jmp main;反回主程式;=int_0:push pswpush aCCinc r1cjne r1,#14,extinc r0mov r1,#00hext:mov th0,#0b0hmov tl0,#0b8hpop accpop pswreti;开锁子程序ks:mov r0,#3loop1:mov p1,#10101111bacall delaymov p1,#11001111bacall
4、 delaymov p1,#11010111bacall delaymov p1,#10110111bacall delaydjnz r0,loop1mov p1,#0ffhlcall delay1lcall bzmov r1,#00hsetb tr0ret;关锁子程序gs:lcall delay1lcall delay1lcall delay1lcall delay1mov r0,#3loop2:mov p1,#10110111bacall delaymov p1,#11010111bacall delaymov p1,#11001111bacall delaymov p1,#10101111bacall delaydjnz r0,loop2mov p1,#0ffhlcall delay1lcall bzlcall delaylcall bzret;bz:clr p3.3lcall delay1setb p3.3retdelay:mov r6,#30d1:mov r7,#0d2:djnz r7,d2djnz r6,d1retdelay1:mov r5,#200dd1: mov r4,#100dd2: mov r3,#10dd3: djnz r3,dd3 djnz r4,dd2 djnz r5,dd1 retend