- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理实训报告--红绿灯控制
目 录
一、实训的目的及意义 1
二、实训题目及需要完成的内容 1
三、实训的设计步骤及完成工作 2
四、实训的软件设计 2
五、程序流程图及代码 3
六、硬件原理连接图 15
七、实训心得 15
八、参考文献 16
一、实训的目的及意义
目的:
1. 了解电梯调度算法。
2. 利用微机实验系统来模拟电梯。
3. 进一步掌握微机接口的设计方法。
意义:
通过接触客观实际,更进一步了解和掌握有关微机原理的相关知识,掌握所学知识在客观实际中的应用,亲自动手完成相关题目设计,提高动手能力。
二、实训题目及需要完成的内容
题目: 模拟电梯
需要完成的内容:
用键盘、按钮、八段码和LED模拟电梯工作过程。楼层设为8层,键盘数字键1~8用来键入希望停的楼层,8个LED显示希望停的楼层,八段码指示电梯当前所在楼层,按钮用来启、停电梯。电梯正常运行时以每2秒1层的速度上升或下降。 “电梯”能按以下方式运行:
(1)设当前电梯停在某层(八段码显示相应楼层,8个LED全灭)。键入1~8数字键,如键入的数字与当前电梯停层同,则什么亦不动作,若不同则相应楼层的LED亮;如再按运行键,则电梯自动判别上升或下降(在运行过程中八段码显示楼层变化)一直到达希望停的楼层(八段码显示该楼层,相应LED灭)。
(2)设当前电梯正在上升或下降运行(此时八段码显示楼层变化,LED指示希望抵达的楼层),若键入新的希望停的楼层数字(相应的LED亮),则对同方向(上升或下降)未到的楼层能停,对其它情况则先停原希望停的楼层,然后按运行键后继续运行)。如下几例:
① 设电梯当前在2层,向上运行,LED指示希望在6层停,此时若键入4,则电梯将在4楼停,若再按运行键,则继续运行至6层停;
② 同上情况,若键入的不是4而是8,则电梯将先停在6层,再按运行键,运行至8层停;
③ 同上情况,若键入的不是4(或8),而是1,则电梯先停在6层,再按运行键,运行至1层停。
模拟更多的电梯运行功能,如:
(1)直达按钮。若按此按钮,电梯按直达方式运行,即对运行期间新键入的停靠楼层(即使是同方向未到楼层)亦不停,直达终点楼层;
(2)急停按钮。电梯运行中,若按此按钮,则电梯立即停在下一到达的楼层;
(3)断电待修按钮。按下该钮电梯不能工作,再按一下才能重新工作;
(4)其它功能按钮(由设计者自由发挥)。
三、实训的设计步骤及完成工作
(1)根据设计要求编程实现其功能。
(2)根据硬件连接图连接电路。
(3)运行程序,验证试验结果
四、实训的软件设计
本项目设计的软件方面,运用了8253和8255两个芯片,通过软件编程使8253输出定时信号申请中断,在中断服务程序中扫描键盘,如果有按键,修改相应的变量位,并输出内部请求变量REQ_IN到发光二极管显示当前的内部请求楼层。在主程序中,查询变量的值,根据电梯调度算法运行电梯,电梯的各种情况下的调度则是用子程序来进行编写的,各个子程序之间非常容易区别,增强了程序的可读性。
五、程序流程图及代码
程序流程图:
图1 模拟电梯项目设计总流程图
代码:
data SEGMENT
ioport EQU 0c400h-0280h
ls273 EQU ioport+2a8h;74ls273芯片地址
io8255a EQU ioport+288h;8255控制端以及a,c端口地址
io8255b EQU ioport+28bh
io8255c EQU ioport+28ah
io8253a EQU ioport+280h;8253控制端以及0,1计数端口地址
io8253b EQU ioport+281h
io8253c EQU ioport+283h
led DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;七段码
data ENDS
code SEGMENT
ASSUME CS:code,DS:data
start: MOV AX,data
MOV DS,AX
MOV DX,io8255b;8255初始化,a口输出,c口输入
MOV AL,8bh
OUT DX,AL
MOV CL,31h;cl代表当前电梯所在楼层,初始值设为1
main: MOV AL,0
CALL disp;显示当前楼层
MOV BL,0;bl为第一次输入的要去的楼层
MOV CH,0;ch为在中途中再次输入的要去的楼层
CALL disp8led
MOV AH,01;键盘输入bl
INT 21h
CMP AL,1bh;是esc则退出
JE exit
exit: MOV AH,4ch
INT 21h
CMP AL,31h;在1-8之间?如不是重新输入
JL main
CMP AL,38h
JG main
MO
文档评论(0)