北京工业大学-微机原理-实验十二-交通灯控制实验-实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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芯片,并且掌握了对并行接口的使用。

相关文档
最新文档