- 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、掌握并行接口8253的基本原理
2、掌握8253的编程方法
二、实验内容
如图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通变化规律亮灭。
三、编程提示
1、8255控制寄存器地址: 28BH—0C40BH
A口地址: 288H—04C408H
C口地址: 28AH—04C40AH
2、十字路口交通灯的变化规律要求
南北路口的绿灯、东西路口的红灯同时亮三秒;
南北路口的黄灯闪烁三次,同时东西路口的红灯继续亮;
南北路口的红灯、东西路口的绿灯同时亮三秒;
南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁三次;
转(1)重复。
3、程序设计流程
开始
开始
返回DOS
设置8255C口输出
南北路口的绿灯、东西路口的红灯亮
长延时
南北路口的黄灯闪烁,东西路口红灯亮
南北路口的红灯、东西路口的绿灯亮
长延时
南北路口红灯亮、东西路口黄灯亮闪烁
是否有键按下下?吗?
Y
N
四、程序设计及实验调试
程序设计的思想及注意事项:
1.首先是在选择程序时是选用软件延时还是硬件延时。我采用的是C口方式0输入,所以选用了软件延时。
2.在选择循环的时间上,老师上课时说过,长延时可以采用双层嵌套,外层嵌套为0FFFFH,内层嵌套为4000H,我在编程时外层送进了0,相当于初值为65536,内层送进了4000H。为了达到闪烁和延时的区别,我在编闪烁的程序时,给外层嵌套送入初值3000H,内层0100H(这是我通过实验的结果)。人眼感觉闪烁的效果只是短延时的结果。
3.最后程序调用了6号功能键执行键盘输入,当有输入改变标志位时,则返回操作系统。
南北红
南北黄
南北绿
东西红
东西黄
东西绿
亮
亮
闪烁
亮
亮
亮
亮
闪烁
亮
亮
实验程序:
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,0C40BH
MOV AL ;C口方式0输入
OUT DX
FIRST: MOV DX,0C40AH
MOV AL
OUT DX,AL ;南北绿,东西红写入C口
MOV CX,0 ;送入初值65536
MOV AX,4000H ;软件长延时,由经验值确定
DELAY1: DEC AX
JNZ DELAY1
LOOP DELAY1
MOV BL,4 ;控制黄灯亮的次数
SECOND:MOV DX,0C40AH
MOV AL
OUT DX,AL ;南北黄,东西红
MOV CX,3000H
MOV AX,0100H
LI1:
DEC AX
JNZ LI1
LOOP LI1
MOV DX,0C40AH ;软件短延时
MOV AL ;南北黄灭
OUT DX
MOV CX,3000H
MOV AX,0100H
WEN1:
DEC AX
JNZ WEN1 ;软件短延时
LOOP WEN1
DEC BL
JNZ SECOND ;黄灯闪烁4次
THIRD: MOV DX,0C40AH ;写入C口
MOV AL
OUT DX,AL ;南北红,东西绿
MOV CX,0
MOV AX,4000H
DELAY2: DEC AX ;软件长延时
JNZ DELAY2
LOOP DELAY2
MOV BL,4 ;控制黄灯亮的次数
FORTH: MOV DX,0C40AH ;写入C口
MOV AL
OUT DX,AL
原创力文档


文档评论(0)