实验八 交通灯控制实验.doc
文本预览下载声明
计算机科学系实验报告
课程名称 微型计算机技术及应用 实验班级
实验名称 实验八 交通灯控制 指导教师
学生姓名 学生学号
实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
实验设备
PC机一台
专用导线若干
TPC-H通用微机接口实验系统一台
MASM汇编及调试程序
实验原理和内容
如图1,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。
图1
注意:
十字路口交通灯的变化规律要求:
南北路口的绿灯、东西路口的红灯同时亮30秒左右。
南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
南北路口的红灯、东西路口的绿灯同时亮30秒左右。
南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
转(1)重复。
实验的流程图如下:
程序代码
data segment
portc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能的状态数据
db 81h,82h,80h,82h,80h,82h,80h,0ffh;
db 0ffh ;结束标志
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,28bh
mov al,90h
out dx,al ;设置8255为C口输出
mov dx,28ah
re_on: mov bx,0
on: mov al,portc1[bx]
cmp al,0ffh
jz re_on
out dx,al ;点亮相应的灯
inc bx
mov cx,20 ;参数赋初值
test al,21h ;是否有绿灯亮
jz de1 ;没有,短延时
mov cx,600 ;有,长延时
de1: mov di,5000 ;di赋初值5000
de0: dec di ;减1计数
jnz de0 ;di不为0
loop de1
mov ah,1 ;是否有键按下
int 16h
je on ;没有,转到on
exit: mov ah,4ch ;返回DOS
int 21h
code ends
end start
实验现象
通过实验看到的现象是:LED灯有类似交通灯形式的闪烁。
心得体会
这个实验是与现实生活是比较接近,通过这个实验,我大概知道了交通灯的工作原理,也加深了以前学的知识,更进一步认识了8255的芯片。但是,要完全理解程序的代码,需要扎实的汇编语言知识,尽管我在这方面的知识有所欠缺,但是查询相关资料后,能够基本明白这个实验的编程思想。
显示全部