单片机的控制系统课程设计
主程序源代码:
MOV R4,A INC R1 CLR R5,A SUBB A,R4 XCH A,R4 DEC R1 SJMP LP2 JB 00H,ROLE
SPEED0 BIT P1.0 ; 门行程行状1 SPEED1 BIT P1.1 ; 门行程行状2 SPEED2 BIT P1.2 ; 门行程行状3 SPEED3 BIT P1.3 ; 门行程行状4 KEYDOOROPEN BIT P1.4 ; 手动门开按钮 KEYDOORCLOSE BIT P1.5 ; 手动门关按钮 MODE BIT P1.6 ; 手动/自动切换 DOOROPEN BIT P3.0 ; 门开驱动信号 DOORCLOSE BIT P3.1 ; 门关驱动信号 SIGNAL BIT P3.2 ; 红外线传感器信号 A0809E0C BIT P3.3 ; A/D转换结束信号 HSPEED BIT P3.4 ; 电机速度变换 DOORSTATE BIT 00H ; 门状态 RERROR BIT 01H ; 系统故障
ORG 0000H AJMP START ORG 0003H AJMP INT0 ORG 000BH AJMP T0 ORG 001BH AJMP T1 ORG 0050H
START: CLR DOOROPEN ; 关电机驱动 CLR DOORCLOSE
17
单片机的控制系统课程设计
MOV TMOD, #11H ; 定时器工作方式 MOV TLO,#OFOH ; 置定时器常数, MOV TH0,#08DH MOV TL1,#0E0H MOV TH1,#0B1H MOV TCON,#50H
MOV IP,#08H ; 优先级设置 LOOP: 序
AUTO: WAIT:
MOV ACALL JB MOV ANL JNZ JB CLR SETB SJMP SETB SJMP SJMP IE,#80H SYSERROR RERROR,WAIT A,P2 A,#OFH
WAIT MODE,AUTO EXO ETO LOOP ETO LOOP
$
18
; 开中断
; 调用系统故障子程 ; 有故障等待处理 ; 无按键等待 ; 运行方式判断 等待
;单片机的控制系统课程设计
4.2.2 开门子程序
N
图4-2 开门子程序流程图
返回 电机停止 N 停止 电机减速 N 减速 电机加速 加速 门状态检测 开始 开门子程序:
DOOR_OPEN:JB DOORSTATE, LOOP3 ; 门已开退出 CLR HSPEED CLR DOORCLOSE
SETR DOOROPEN ; 低速启动 JNP SPEED1,$
SETB HSPEED ; 高速开门 JNB SPEED2,$
19
单片机的控制系统课程设计
CLR HSPEED ; 低速运行 JNB SPEED3,$
CLR DOOROPEN ; 停机 SETB DOORSTATE ; 保存门状态 LOOP3:RET 关门子程序:
DOOR_CLOSE:JNB DOORSTATE, LOOP4 ; 门已关退出 CLR HSPEED CLR DOOROPEN
SETB DOORCLOSE ; 低速启动 JB SPEED2,$
CLR HSPEED ; 高速关门 JB SPEED0,$
CLR DOORCLOSE ; 停机 CLR DOORSTATE LOOP4: RET 4.2.3 开门中断程序
关T0中断
图4-3 开门中断程序流程图
中断返回 装载T0常数开中断 开门否 Y 加速 开门子程序 Y 关门子程序 N N 请按键操作 外部中断服务子程序:
20
单片机的控制系统课程设计
ORG 0300H INT: MOV TLO,#11H MOV THO,#OFCH CPL P1 RETI
INT0: CLR EX0
LOOP8: ACALL SYSERROR ; 故障检查 JB JB ACALL LOOP7: ACALL ACALL JB JNB CLR SETB 低速关门
JNB JB SETB JNB JB CLR JB LOOP6: CLR CLR SETB RET
RERROR,LOOP6 DOORSTATE,LOOP6 DOOR_OPEN DELAY10S SYSERROR RERROR,LOOP6 SIGNAL,LOOP7 HSPEED
DOORCLOSE SIGNAL,LOOP8 SPEED2,$
HSPEED SIGNAL,LOOP8 SPEED1,$
HSPEED SPEED0,$
DOORCLOSE DOORSTATE EX1 21
; 有故障返回 ; 门已开返回 ; 开门 ; 等待10s ; 故障检查 ; 无故障继续 ; 有人等待 ; 无人启动电机,; 有人来打开门 无人快速关门 ; 有人来打开门 无人速度降低 ; 停机 ; 门状态保存 ; ;