红绿灯实验报告 - 图文

更新时间:2023-10-19 14:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

微机原理与接口技术实

验报告

综合实验 红绿灯仿真及实现

专业:电气工程及其自动化 班级: 电气1311

学号: 201301001206 姓名: 龚玉辛 预习报告成绩: 实验成绩: 实验日期及时间:(1) 2016年5月20日

(2) 2016年5月26日 (3)

机位号:

一 实验一: 在Proteus仿真实现交通信号灯系统。 (1) 交通信号灯系统设计描述(实现内容)

a) 在DATAS 数据段内可以任意初始化红灯,绿灯,黄灯所要显示的秒数,实现通用化。。

b) 紧急情况下按下按钮,所有红灯亮,数显管全部显示0 c) 紧急情况解除后,恢复正常,用另一个按钮(8259中断)

(2) Proteus中实现原理图

所用元件:7SEG-BCD、74LS138、74LS373、8086、8253A、8255A、

8259、BUTTON、LED-GREEN、LED-YELLOW、LED-RED.

(3) 源程序清单 DATAS SEGMENT

hong DB 55 lv dW 52

huang db 2h,1h,0h z=$-huang zt1 db ? zt2 db ?

ZT3 DB ? DATAS ENDS

STACK SEGMENT 'STACK' SUR1 DB 1000 DUP(?) STACK ENDS

CODES SEGMENT

ASSUME CS:CODES,DS:DATAS START:

MOV AX,DATAS MOV DS,AX CLI PUSH DS mov al,80h mov dx,8006H OUT DX,AL

MOV DX,0A006H MOV AL,00110001B OUT DX,AL

MOV DX,0A000H MOV AL,00 OUT DX,AL MOV AL,10 OUT DX,AL

MOV AX,0 MOV DS,AX MOV DI,4*60H

MOV AX,OFFSET NEXT2 MOV [DI],AX

MOV AX,SEG NEXT2 MOV [DI+2],AX

mov ax,0 mov ds,ax MOV DI,4*61H

MOV AX,OFFSET NEXT1 MOV [DI],AX

MOV AX,SEG NEXT1 MOV [DI+2],AX

MOV AX,0 MOV DS,AX MOV DI,4*62H

MOV AX,OFFSET NEXT MOV [DI],AX

MOV AX,SEG NEXT MOV [DI+2],AX POP DS

MOV DX,9000H ;icw1 MOV AL,13H OUT DX,AL

MOV AL,60H

MOV DX,9002H ;icw2 OUT DX,AL

MOV AL,00010001B ;icw4 OUT DX,AL

MOV AL,00000000B

OUT DX,AL ; ocw 8259 STI again:

mov dx,8000h mov al,00100001b mov zt1,al out dx,al

MOV CL,HONG MOV BP,LV AGAIN2:

MOV AL,CL MOV AH,0 MOV DL,10 DIV DL MOV CH,AH MOV DH,16 MUL DH ADD AL,CH mov dx,8002h out dx,al

初始化 默认 MOV AL,CL

SUB AL,3 MOV AH,0 MOV DL,10 DIV DL MOV CH,AH MOV DH,16 MUL DH ADD AL,CH MOV DX,8004H OUT DX,AL DEC CL

MOV ZT3,0

MOV DX,0A006H MOV AL,00110001B OUT DX,AL

MOV DX,0A000H MOV AL,00 OUT DX,AL MOV AL,10 OUT DX,AL

again3: NOP

CMP ZT3,0

JZ AGAIN3 ;yan 1s DEC BP jnz AGAIN2

mov dx,8000h

mov al,00010001b mov zt1,al out dx,al

MOV SI,OFFSET HUANG MOV BH,Z AGAIN4: MOV AL,[SI] mov dx,8002h out dx,al MOV DX,8004H OUT DX,AL

;初始化8259 MOV DX, K8255

MOV AL, 10001001B; 方式0,A输出,C输入 OUT DX, AL AGAIN:

MOV DX,A8255

MOV AL,00100001B;南北绿灯东西红灯30s OUT DX,AL

MOV DX,A8253;给计数器0赋初值 MOV AX,3000H; OUT DX,AL MOV AL,AH OUT DX,AL

AGAIN1:

MOV AL,0

MOV DX,C8255 IN AL,DX

AND AL,00000001B CMP AL,1B JNZ AGAIN1

MOV DX,A8255

MOV AL,00010001B;南北黄灯东西红灯5s OUT DX,AL

MOV DX,A8253;给计数器0号赋初值 MOV AX,500H; OUT DX,AL MOV AL,AH OUT DX,AL

AGAIN2:

MOV AL,0 MOV DX,C8255 IN AL,DX

AND AL,00000001B

MOV DX,A8255

MOV AL,00001100B;南北红灯东西绿灯30s OUT DX,AL

MOV DX,A8253;给计数器0赋初值 MOV AX,3000H; OUT DX,AL MOV AL,AH OUT DX,AL

AGAIN3:

MOV AL,0

MOV DX,C8255 IN AL,DX

AND AL,00000001B CMP AL,1B JNZ AGAIN3

MOV DX,A8255

MOV AL,00001010B;南北红灯东西黄灯5s OUT DX,AL

MOV DX,A8253;给计数器0赋初值 MOV AX,500H; OUT DX,AL MOV AL,AH OUT DX,AL

AGAIN4:

MOV AL,0 MOV DX,C8255 IN AL,DX

AND AL,00000001B CMP AL,1H JNZ AGAIN4

JMP AGAIN

;中断服务程序 BREAK:

PUSH DX PUSH AX

MOV DX,A8255 MOV AL,00001001B OUT DX,AL MOV AL,20H OUT 20H,AL POP AX POP DX STI IRET

CODES ENDS END START

(4) 实验操作及实验结果描述

a) 由于没有BCD 灯管,无法完成数字显示功能,在原有程序的基础上,改动8253,8255,8259的初始化地址为实现箱的默认地址,按照仿真中的元件,以及之前做实验的经

验连线即可。

b) 由于只有两个中断单元,固也无法完成全部功能,只能实现每秒中断正常显示,以及中断后全部显示红灯亮起的功能,无法中断返回,因为只有两个中断按钮,MIR6和MIR7 c) 由于没有黄灯,且初始编码时未考虑顺序因素,固灯的颜色显示也不正确

d) 实际结果为正常时,按照时间“红”、“绿”、“黄”灯按次序显示,按下MIR7,则亮两个“红”灯。

(5) 遇到的问题几解决方法

a) 由于编程之前并未考虑更换地址,所以并没有设置静态变量,导致更换变量复杂,最后,仍先设置静态变量,照源程序改动完毕后,再改动地址。 b) 实验设备不足,没有办法实现所有功能。

三 对课程及教学方法的建议

建议老师上课的时候多进行提问互动,进行分小组讨论学习,

尽量让每个同学都知道自己学习的什么,不会感到不知所措。

本文来源:https://www.bwwdw.com/article/yzwf.html

Top