720电梯顺序控制问题硬件课程设计报告包含电气原理图、流程图、模块分析、源代码设计背景完整报告等内容内容摘要:

X,AL ;向第二行行输出低电平扫描到上信号 MOV DX,302H ; C 口 IN AL,DX ;读 C口状态 AND AL,0FH ;只截取列值 CMP AL,0FH ;是否为 1。 JNE ENCODE ;否,转去编码。 向下一行输出低电平,扫描下一 行,确定电梯运行方向 ROL CL,01。 全为 1,向第三行送低电平扫描到下信号 大学硬件 课程设计 22 MOV AL,CL JMP P1 ;查看下一行 MOV DH,01H MOV AH,0FEH JMP L2 S2: ;向所有行送低电平(即零) MOV DX,300H ; A 口 MOV AL,00H OUT DX,AL ;向 A口各行输零 ;读取列,即 C口状态,看是否所有键已经松开 MOV DX,302H ;指向 C口 WAIT_OPEN1:IN AL,DX ;键盘状态读入 C口 AND AL,0FH ;查低四位(列值) CMP AL,0FH ;是否都为 1(各键松开)。 JNE WAIT_OPEN1 ;否,继续查,等待松开 ;各键已经松开,再查列是否有 0,即是否有键按下 WAIT_PRES1:IN AL,DX ;键盘状态读入 C口 AND AL,0FH ;查低四位 CMP AL,0FH ;是否有键按下 JE WAIT_PRES1 ;无,等待 ;有键按下,延时 20ms,消除抖动 MOV CX,16EAH DELAY1:LOOP DELAY1 ;延时 20ms ;再查列,看键是否仍被压着 IN AL,DX AND AL,0FH CMP AL,0FH JE WAIT_PRES1 ;已松开,转出等待压键被压着 ;键仍被被压着 大学硬件 课程设计 23 MOV AL,0FEH ;先使 D0=0 MOV CL,AL ; CL=1111 1110B MOV DX,300H ; A口 OUT DX,AL ;向第一行输出低电平 MOV DX,302H ; C 口 IN AL,DX ;读 C口状态 AND AL,0FH ;只截取列值 CMP AL,0FH ;是否为 1。 JNE ENCODE ;否,转去编码 MOV DI,OFFSET TABLE2 ;取数据段 2 的偏移地址放于 DI T1: CMP BX,DI ;比较键盘有效值地址偏移量和 DI JNZ T2 ;不等,转向 DELAY2 MOV AX,[DI]。 相等,将偏移地址 DI 对应的值放入 AX MOV DX,301H。 指向 B口 OUT DX,AX ;将 DI偏移地址的数据通过 B口输出 T2:INC DI TEST DI,04H JZ START JMP T1 MOV DL,[BX] MOV AL, SI SUB AL, DH MOV AL,CF AND AL,01H JZ L2 S3: ;向所有行送低电平(即零) 大学硬件 课程设计 24 MOV DX,300H ; A 口 MOV AL,00H OUT DX,AL ;向 A口各行输零 ;读取列,即 C口状态,看是否所有键已经松开 MOV DX,302H ;指向 C口 WAIT_OPEN2:IN AL,DX ;键盘状态读入 C口 AND AL,0FH ;查低四位(列值) CMP AL,0FH ;是否都为 1(各键松开)。 JNE WAIT_OPEN2 ;否,继续查,等待松开 ;各键已经松开,再查列是否有 0,即是否有键按下 WAIT_PRES2:IN AL,DX ;键盘状态读入 C口 AND AL,0FH ;查低四位 CMP AL,0FH ;是否有键按下 JE WAIT_PRES2 ;无,等待 ;有键按下,延时 20ms,消除抖动 MOV CX,16EAH DELAY2:LOOP DELAY2 ;延时 20ms ;再查列,看键是否仍被压着 IN AL,DX AND AL,0FH CMP AL,0FH JE WAIT_PRES2 ;已松开,转出等待压键被压着 ;键仍被被压着 MOV AL,0FEH ;使 D1=0。 扫描二、三行,确定方向信号 MOV CL,AL ; CL=1111 1101B P2: MOV DX,300H ; A口 OUT DX,AL ;向第二行行输出低电平扫描到上信号 MOV DX,302H ; C 口 IN AL,DX ;读 C口状态 大学硬件 课程设计 25 AND AL,0FH ;只截取列值 CMP AL,0FH ;是否为 1。 JNE ENCODE ;否,转去编码。 向下一行输出低电平,扫描下一行,确定电梯运行方向 ROL CL,01。 全 为 1,向第三行送低电平扫描到下信号 MOV AL,CL JMP P2 ;查看下一行 MOV DL,[BX] MOV AL, SI SUB AL, DH MOV AL,CF AND AL,01H JZ L2 JNZ L3 ;向所有行送低电平(即零) MOV DX,300H ; A 口 MOV AL,00H OUT DX,AL ;向 A口各行输零 ;读取列,即 C口状态,看是否所有键已经松开 MOV DX,302H ;指向 C口 WAIT_OPEN3:IN AL,DX ;键盘状态读入 C口 AND AL,0FH ;查低四位(列值) CMP AL,0FH ;是否都为 1(各键松开)。 JNE WAIT_OPEN3 ;否,继续查,等待松开 ;各键已经松开,再查列是否有 0,即是否有键按下 WAIT_PRES3:IN AL,DX ;键盘状态读入 C口 AND AL,0FH ;查低四位 CMP AL,0FH ;是否有键按下 大学硬件 课程设计 26 JE WAIT_PRES3 ;无,等待 ;有键按下,延时 20ms,消除抖动 MOV CX,16EAH DELAY3:LOOP DELAY3 ;延时 20ms ;再查列,看键是否仍被压着 IN AL,DX AND AL,0FH CMP AL,0FH JE WAIT_PRES3 ;已松开,转 出等待压键被压着 ;键仍被被压着 MOV AL,0FEH ;先使 D0=0 MOV CL,AL ; CL=1111 1110B MOV DX,300H ; A口 OUT DX,AL ;向第一行输出低电平 MOV DX,302H ; C 口 IN AL,DX ;读 C口状态 AND AL,0FH ;只截取列值 CMP AL,0FH ;是否为 1。 JNE ENCODE ;否,转去编码 MOV DI,OFFSET TABLE2 ;取数据段 2的偏移地址放于 DI T3: CMP BX,DI ;比较键盘有效值地址偏移量和 DI JNZ T 4 ;不等,转向 DELAY2 MOV AX,[DI]。 相等,将偏移地址 DI 对应的值放入 AX MOV DX,301H。 指向 B口 OUT DX,AX ;将 DI偏移地址的数据通过 B口输出 T4 :INC DI TEST DI,04H JZ START JMP T3 大学硬件 课程设计 27 MOV DL,[BX] MOV AL, DL SUB AL, DH MOV AL,CF AND AL,01H JZ L8 JNZ L10 L2: MOV AL,10010000B MOV DX,313H OUT DX,AL MOV SI, DL SUB SI, DH MOV CX, SI MOV AL,A H MOV DX,311H OUT DX,AL L4: CALL L5 RCL AL,1 OUT DX,AL LOOP L4 MOV DH, DL MOV AH,AL RET L8: MOV AL,10010000B MOV DX,313H OUT DX,AL MOV SI, DL SUB DL, DH MOV CX, SI MOV AL,AH 大学硬件 课程设计 28 MOV DX,311H OUT DX,AL L9: CALL L5 RCL AL,1 OUT DX,AL LOOP L4 MOV DH, DL MOV AH,AL JMP S3 L3: MOV AL,10010000B;下降,右移 MOV DX,313H OUT DX,AL MOV SI, DH SUB SI, DL MOV CX, SI MOV AL,AH MOV DX,311H OUT DX, AL L6: CALL L5 RCR AL,1 OUT DX,AL LOOP L6 MOV DH, DL MOV AH,AL RET L10: MOV AL,10010000B;下降,右移 MOV DX,313H OUT DX,AL MOV SI, DH SUB SI, DL 大学硬件 课程设计 29 MOV CX, SI MOV AL,AH MOV DX,311H OUT DX,AL L11: CALL L5 RCR AL,1 OUT DX,AL LOOP L6 MOV DH, DL MOV AH,AL JMP S3 L5: MOV AL,00110011 MOV DX,30BH OUT DX,AL MOV AL,00H MOV DX,308H OUT DX,AL。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。