模拟电梯控制系统-微机原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微机应用系统设计》课程设计报告
题目:基于数码管的电梯显示系统
专业班级:电子信息科学与技术12101班
设计学生:
指导教师:
完成时间:2014年6 月23 日
物理与电子科学学院
设计思路1.键盘扫描程序
采用的是直接取值法,PB口有8个口,分别对应8个不同楼层,当有任一键按下,就可以取到对应的值,并保存到LDKEY1中。
2.LED灯显示程序
本程序用到了两个LED灯,分别是上升灯和下降灯,通过PC口高半部分进行输出控制,通过程序向其输出高电平即可发亮。
3.喇叭发声部分
先初始化8253,向其写入计数值,然后向PC6口输出高电平,经过非门后,控制三态门,使喇叭发声
4.电梯调度算法
在设计时将电梯一次从下到上视为一次运行(注意不一定从底层到顶层),同理,电梯一次从上到下也视为一次运行(注意不一定从顶层到底层)。当电梯向上运行时:通过LDKEY变量值自增调用显示子程序来演示电梯上升过程。当电梯向下运行时:通过LDKEY变量值自减调用显示子程序来演示电梯下降过程。
5.数码管显示
程序通过LDKEY的值取到数据段的值,向PA口输出相应的显示码(LDKEY的值
围为1—8)。
系统设计原理图
程序流程图
源程序:
DATA SEGMENT
SEGCOD DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
LDKEY DW ? ;保存的楼层
LDKEY1 DW ? ;取到的楼层
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START: MOV AX,DATA
MOV DS,AX
MOV AX,0
MOV LDKEY,AX ;将变量的值赋值为0
;初始化8255,
MOV DX,0206H ;8255控制口地址
MOV AL,83H ;A口作为输出,B口作为输入,C口低4位作为输入,高4
位作为输出
OUT DX,AL
;初始化8253
MOV DX,0406H ;初始化8253工作方式
MOV AL,36H ;计数器0,方式3
OUT DX,AL
MOV CX,0
MOV DX,0400H ;装入计数初值
MOV AL,7CH ;37500分频
OUT DX,AL
MOV AL,92H
OUT DX,AL
;楼层处理部分
XU: CALL KEY ;调用扫描按键
GO: MOV DX,0204h
IN AL,DX
TEST AL,1
JNZ GO ;等待按下OK键
MOV AX,LDKEY1
CMP AX,LDKEY
JB JIAN ;取到的楼层比目前楼层低
JMP JIA
;上升处理
JIA: CMP AX,LDKEY
JE XU ;按键与原来值相等,则继续扫描
MOV CX,10H
CALL DENG ;点亮上升灯
CALL DELAY
MOV AX,LDKEY1
JIAE: MOV CX,LDKEY ;LDKEY加1 ADD CX,1
MOV LDKEY,CX
CALL DISP
CALL DELAY
CMP AX,LDKEY
JNZ JIAE
CALL SPEAK
JMP XU
;下降处理
JIAN: MOV CX,20H
CALL DENG ;点亮下降灯
CALL DELAY
MOV AX,LDKEY1
JIANE: MOV CX,LDKEY ;LDKEY减1 SUB CX,1
MOV LDKEY,CX
CALL DISP
CALL DELAY
CMP AX,LDKEY
JNZ JIANE
CALL SPEAK
JMP XU
;发声子程序
SPEAK: MOV DX,0204H
MOV AL,40H
OUT DX,AL
CALL DELAY
MOV DX,0204H ;灯灭部分
MOV AL,0H
OUT DX,AL
RET
;灯显示
DENG: MOV DX,0204H ;PC口地址
MOV AX,CX
OUT DX,AL
RET
;数码管显示
DISP: MOV BX,OFFSET SEGCOD
ADD BX,LDKEY
MOV AL,[BX]
MOV DX,0200H ;向端口A输出,使数码管显示
OUT DX,AL
SUB BX,LDKEY ;将BX值变为原来值
MOV AX,LDKEY1
RET
;按键扫描
KEY: MOV DX,0202H
IN AL,DX
CMP AL,0FFH
JZ KEY ;等待按键按下
NOT AL ;将键值取反
MOV BL,1
MOV CX,8
JIXUY: SHR AL,1 ;判断按键值
JC FOUND
INC BL
JMP JIXUY
FOUND: MOV BH,0
MOV LDKEY1,BX
RET
;延迟子程序
DELAY: MOV CX,0FFFFH
DELAY1: NOP