北京工业大学 微机原理 实验十二 交通灯控制实验 实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理实验报告
——实验九交通灯控制实验
姓名:
学号:
一、实验要求
用8255、8253芯片模拟实现交通灯控制,要求亮灯时间用8253控制
二、延时置数设计
提供的时钟频率为1MHz,而8253最大工作频率为2MHz,所以无需分频。
延时5秒对应的计数初值为N=5秒/1MHz=5000000,因为8253有3个16位计数器,每个计数器最大计数初值为:65535<5000000,所以将两个计数器串联使用。计数器0计数初值为1000,计数器1计数初值为5000。
三、实验内容
1.实验电路原理图
2.实际电路图
2.实验流程图
3.实验代码
IOPORT EQU 5400H-280H ;定义CPU输出地址
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL, 00100101B ;设置8253用计数器0,只读高字节,方式2(自动重复),
10进制
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 10H ;给计数器0置数1000(0001 0000 0000 0000)
MOV DX, IOPORT+290H
OUT DX, AL
MOV AL, 10010000B ;初始化8255,1--控制字,A口方式0输入,C口输出,
B口输出
MOV DX, IOPORT+28BH
OUT DX, AL
INOUT: MOV AL, 00100100B ;南北路口绿灯亮,东西路口红灯亮
MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电
平
OUT DX, AL
MOV AL, 01100001B ;设置8253通道1,只读高字节,方式0(不自动重复),
10进制
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 50H ;置数5000,与计数器0串联即:延时5秒
MOV DX, IOPORT+291H
OUT DX, AL
LOP1: MOV DX, IOPORT+288H ;A口查询,判断延时是否结束
IN AL, DX
CMP AL, 0
JE LOP1 ;延时结束,顺序执行,否则继续查询
MOV AL, 01000100B ;南北路口黄灯亮,东西路口红灯亮
MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电
平
OUT DX, AL
MOV AL, 01100001B ;设置8253通道
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 30H ;延时3秒(1000*3000),原理与延时5秒一致
MOV DX, IOPORT+291H
OUT DX, AL
LOP2: MOV DX, IOPORT+288H ;A口查询,判断延时是否结束
IN AL, DX
CMP AL, 0
JE LOP2 ;延时结束,顺序执行,否则继续查询
MOV AL, 10000001B ;南北路口红灯亮,东西路口绿灯亮
MOV DX, IOPORT+28AH ;C口0方式输出,所以可以直接控制PC0~PC7的输出电
平
OUT DX, AL
MOV AL, 01100001B ;设置8253通道1
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 50H ;延时5秒
MOV DX, IOPORT+291H
OUT DX, AL
LOP3: MOV DX, IOPORT+288H
IN AL, DX
CMP AL, 0
JE LOP3
MOV AL, 10000010B ;南北路口红灯亮,东西路口黄灯亮
MOV DX, IOPORT+28AH
OUT DX, AL
MOV AL, 01100001B ;设置8253通道1
MOV DX, IOPORT+293H
OUT DX, AL
MOV AL, 30H ;延时3秒
MOV DX, IOPORT+291H
OUT DX, AL
LOP4: MOV DX, IOPORT+288H
IN AL, DX
CMP AL, 0
JE LOP4
MOV AH, 0BH ;检查键盘状态(不等待),AL=FFH 表示有键入,AL=00H
表示无键入
INT 21H
CMP AL,0FFH ;有键入,程序退出
JNZ INOUT
MOV AH, 4CH
INT 21H
CODE ENDS
END START
四、实验中遇到的问题
地址书上要求定义的范围是从280H开始的,而我们在编写程序的时候是从288H开始使用的,再连线的时候,忘记了这一点,而致使结果一直出不来,后来再检查连线的时候发现了这个问题,即使进行了改正,出现了预计效果,试验成功。
五、心得体会
这个实验是与现实生活是比较接近,通过这个实验,我大概知道了交通灯的工作原理,也加深了以前学的知识,更进一步认识了8255、8253芯片,并且掌握了对并行接口的使用。