06A13142李长波微机实验报告.docx

上传人:b****7 文档编号:11073668 上传时间:2023-02-24 格式:DOCX 页数:15 大小:71.78KB
下载 相关 举报
06A13142李长波微机实验报告.docx_第1页
第1页 / 共15页
06A13142李长波微机实验报告.docx_第2页
第2页 / 共15页
06A13142李长波微机实验报告.docx_第3页
第3页 / 共15页
06A13142李长波微机实验报告.docx_第4页
第4页 / 共15页
06A13142李长波微机实验报告.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

06A13142李长波微机实验报告.docx

《06A13142李长波微机实验报告.docx》由会员分享,可在线阅读,更多相关《06A13142李长波微机实验报告.docx(15页珍藏版)》请在冰豆网上搜索。

06A13142李长波微机实验报告.docx

06A13142李长波微机实验报告

东南大学电子科学与工程学院

 

实验报告

 

课程名称:

微机原理与接口实验

 

第六次实验

 

实验名称:

交通灯控制实验

姓名:

李长波学号:

06A13142

实验室:

406实验组别:

同组人员:

实验时间:

2015年5月18日

评定成绩:

审阅教师:

实验报告要求

实验准备

1.实验目的和要求(或主要性能指标)

2.实验原理及实现方案

3.实验方案设计与参数选择

4.需测量参数及数据测量方法

5.理论计算数据或软件模拟数据

6.实验数据记录格式

7.实验使用仪器设备(包括仪器设备名称、型号、规格、编号、使用状况)

8.实验过程或实验步骤

实验过程

1.实验步骤和实验数据记录

2.实验最终方案和方案参数

3.实验中出现的问题及解决方法

实验总结

1.实验数据处理

2.实验误差分析

3.实验结果讨论

4.实验心得

注:

页面不够可以加页

一、实验目的与要求

1、通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行接口的使用;

2、假设L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。

编程使六个灯按交通灯变化规律亮灭。

具体要求为:

(1)南北路口的绿灯、东西路口的红灯同时亮30秒左右。

(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。

(3)南北路口的红灯、东西路口的绿灯同时亮30秒左右。

(4)南北路口的红灯继续亮,同时东西路口的黄灯亮闪烁若干次。

(5)转

(1)重复。

二、实验原理及实现方案

1、实验硬件连接图

 

红黄绿红黄绿

L7L6L5L2L1L0

288h~28fh

图一

8255芯片的控制字介绍:

8255的控制寄存器总共有8位及D0~D7,其中D0为C3~C0的输入输出控制字,0为输出,1为输入;D1为B组端口的输入输出控制字,0为输出,1为输入;D2为B组的工作方式控制字,0为方式0,1为方式1;D3为C7~C4的输入输出控制字,0为输出,1为输入;D4为A组端口的输入输出控制字,0为输出,1为输入;D6D5为A组的工作方式控制字,00为方式0,01为方式1,1X为方式2;D7等于1,是CPU写方式控制字的特征位。

 

2、实验软件设计框图

图二

3、程序代码及解释

;***********************************;;

;*端口各灯的设置:

*;

;*1红1黄1绿002红2黄2绿*;

;***********************************;

datasegment

ioportequ0b800h-0280h

io8255aequioport+28ah

io8255bequioport+28bh

portc1db24h,44h,04h,44h,04h,44h,04h;六个灯可能

db81h,82h,80h,82h,80h,82h,80h;的状态数据

db0ffh;结束标志

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,io8255b

moval,90h

outdx,al;设置8255为C口输出

movdx,io8255a

re_on:

movbx,0

on:

moval,portc1[bx]

cmpal,0ffh

jzre_on

outdx,al;点亮相应的灯

incbx

movcx,2000;参数赋初值

testal,21h;是否有绿灯亮

jzde1;没有,短延时

movcx,50000;有,长延时

de1:

movdi,50000;di赋初值50000

de0:

decdi;减1计数

jnzde0;di不为0

loopde1

pushdx

movah,06h

movdl,0ffh

int21h

popdx

jzon;没有,转到on

exit:

movah,4ch;返回

int21h

codeends

endstart

代码部分函数解释:

Io8255a为8255的C端口地址,io8255b为8255的控制寄存器地址,在数组protc1中存放了所有交通灯的可能的工作状态。

整体的循环中,分为两种循环方式,分别为长延时循环和短延时循环,循环是通过cx和di共同实现的,长延时循环时cx=50000,di=50000,则延时为t=50000*50000;短延时循环时cx=2000,di=50000,则延时为t=2000*50000。

另外,程序中还存在一个DOS系统功能的调用,具体为功能浩06h的调用,这个函数的功能是直接控制台I/O(等待至有输入为止),入口参数为DL=FF(直接控制台输入)=其他值(显示输出),出口参数为AL=输入字符的ASICII码和ZF=0。

利用这个函数就可以实现判断是否有按键按下,若有按键按下,则退出程序;否则,继续循环。

三、实验步骤

1、根据硬件连接图连接好实验电路;

2、将编写好的程序,编译链接运行;

3、出现问题进行调试、解决,排除问题,完成实验。

四、实验中遇到的问题及排除方法

问题:

试验中发现交通灯可以实现循环,但存在某些灯的循环顺序不正确。

排除方法:

一开始,我认为是实验的硬件电路搭接有问题,所以第一步是对硬件电路重新检查了一遍,但并没有发现连接错误,而后我想是不是试验箱的8255内部存在短接现象,所以我在确定了另一试验箱无问题的前提下,将程序在好的实验箱中又运行了一次,结果发现了相同的错误,所以这个可能的原因又被排除了。

最后,我想问题可能处在了程序上,尽管已经编译成功,但还是有可能存在一些逻辑上的错误,果然,我在检查交通灯的状态值时发现,状态值被我写错了,所以才导致交通灯的亮灭顺序错误,至此,问题得以解决。

五、实验总结

这次试验让我收获了许多,不仅激发了我对微型计算机设计的浓厚兴趣,而且也让我有了重要的实践经历。

这次试验使我有机会将《微机接口》课程中所学到的知识加以运用,让我真的做到了学以致用,融会贯通。

虽然这次实验成功完成,但也并不是一帆风顺,这其中出现的种种问题,也暴露出了我再理论学习中的不足。

例如我对DOS的调用并不是十分熟悉,再设计这部分程序时花费了很多时间。

总之,这次实验让我获益匪浅。

在以后的学习生活中,我一定更加努力,争取取得更大的进步。

六、参考文献

1、微型计算机系统原理及应用(第三版).杨素行等.清华大学出版社.2009年04月.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 家庭教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1