汇编语言 实验八交通灯控制实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息学院
实验报告
学号:114100136 姓名:熊忠飞班级:11B
课程名称:微机原理、汇编与接口技术实验名称:8255交通灯控制
实验性质:验证性实验
实验时间: 2013 年 5 月 31 日实验地点:睿智4号楼
一、实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二、实验内容及要求
如图1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。
注意:
十字路口交通灯的变化规律要求:
(1)南北路口的绿灯、东西路口的红灯同时亮30秒左右。
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3)南北路口的红灯、东西路口的绿灯同时亮30秒左右。
(4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5)转(1)重复。
实验的流程图如下:
设置8255A口输出C口输出
开 始
南北路口黄灯闪,东西路口红灯亮
南北路口绿灯亮,东西路口红灯亮
长延时
南北路口红灯亮,东西路口绿灯亮
长延时
是否有键按下
N Y
返回DOS
南北路口红灯亮,东西路口黄灯闪
三、实验步骤及结果
1、代码如下:
stack segment stack'stack'
dw 32 dup(0)
stack ends
data segment
outp0 equ 0ec00h-280h+28Bh
outpC equ 0ec00h-280h+28Ah
data ends
code segment
assume cs:code,ds:data,ss:stack
start: mov ax,data
mov ds,ax
start1:mov dx,outp0
mov al,80h
out dx,al ;控制字10000000
mov dx,outpC
mov cx,0ffffh
mov bx,30h
lx1 : mov al,24h ;00100100B,南北绿灯、东西红灯亮 out dx,al
dec cx
jne lx1
dec bx
jne lx1
mov cx ,3
push cx
lx2 : mov al,44h ;01000100B, 南北黄灯亮,红灯继续亮 out dx,al
mov cx,0ffffh
mov bx,3000h
lx21: dec cx
jne lx21
dec bx
jne lx21
mov al,04h ;00000100B, 南北黄灯暗,红灯亮
out dx,al
mov cx,0ffffh
mov bx,3000h
lx22 : dec cx
jne lx22
dec bx
jne lx22
pop cx
dec cx
push cx
jne lx2
mov cx,0ffffh
mov bx,30h
lx3: mov al,81h ;10000001B,南北红灯亮,东西绿灯亮 out dx,al
dec cx
jne lx3
dec bx
jne lx3
mov cx ,3
push cx
lx4 : mov al,82h ;10000010B,南北红灯亮,东西黄灯亮 out dx,al
mov cx,0ffffh
mov bx,3000h
lx41 : dec cx
jne lx41
dec bx
jne lx41
mov al,80h ;10000000B,南北红灯亮,东西黄灯暗
out dx,al
mov cx,0ffffh
mov bx,3000h
lx42 : dec cx
jne lx42
dec bx
jne lx42
pop cx
dec cx
push cx
jne lx4
mov dl,0ffh
mov ah,06h
int 21h
jz start1
ext: mov ah,4ch
int 21h
code ends
end start
四、实验小结
通过本实验,更进一步对8255的了解,特别是加深了对初始化程序的书写和理解。但在一些方面还是有不足之处,比如在各端口控制的时候理解的不是很清楚,导致了实验中出现不了结果。在以后的学习要更加认真思考。
五、教师评价
年月日
注:每学期至少有一次设计性实验。每学期结束请任课老师按时按量统一交到教学秘书处。