接口课程设计模拟红绿灯实验.docx
《接口课程设计模拟红绿灯实验.docx》由会员分享,可在线阅读,更多相关《接口课程设计模拟红绿灯实验.docx(11页珍藏版)》请在冰豆网上搜索。
接口课程设计模拟红绿灯实验
接口课程设计——模拟红绿灯实验
烟台大学文经学院
c謳台再久经宰復
课程:
微型计算机原理与接口技术
模拟交通灯课程设计
系电子信息与计算机科学系
专业计算机科学与技术
班级文计091-1
姓名蒙志伟
学号200990514102
任课教师刘霄
学年学期2011-2012
2011年12月23日
烟台大学文经学院
一(实验名称:
模拟红绿灯实验
二(实验内容:
1.实验原理:
实验原理图如图3,7所示,PB4~PB7和PC0~PC7分别与发光二极管电路
L1~L12相连,本实验为模拟交通灯实验。
交通灯的亮灭规律如下:
设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延
时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。
8255A的PB4~PB7对应黄灯,PCO~PC3对应红灯,PC4~PC7寸应绿灯。
8255A工作于模式0,并置为输出。
由于各发光二极管为反向驱动,使其点亮应使
8255A相应端口置1。
(其中只用了2,3路口即东和北方向,PC7接开关控制有无闯红路灯,开关置1表示有人闯红灯,数码象管显示为0)
2.实验线路连接:
⑴L7—PCOL8—PB6L9—PC13路口即北方向的红黄绿灯接线L10—PC2
L11—PB5L12—PC34路口即西方向的红黄绿灯接线开关一PC7
3.实验原理图:
3北
红黄绿
红黄绿红黄绿4西2东
红黄绿
1南
烟台大学文经学院
L1L2L3L4L5L6L7L8L9L10L11L12
PCOPB6PC1PC2PB5PC3红黄绿红黄绿红黄绿红黄绿
1口南2口东3口北4口西
4.实验电路原理:
本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。
完整系统的硬件连接如图1所示。
硬件电路由R-S触发器电路、发光二极管模块、8255可编程并行接口模块
实验的对应接线关图系图如下所示:
烟台大学文经学院
BOB1B2BC3
DOAOCOD2
D1A1C1D3
D6A2C2D4
D7A38255C3D5
A4C4
东西A5C5南北
A6C6
A7C7
B4B5B6B7
8255A的工作原理
1.8255A的内部结构:
1)数据总线缓冲器:
这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。
输入输出的数据、CPU俞出的控制字以及CPU俞入的状态信息都是通过这个缓冲器传送的。
2)三个端口A,B和C:
A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。
B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。
C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。
3)A组和B组控制电路:
这是两组根据CPU俞出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU俞出的一字节方式控制字或对C口按位复位字命令。
方式控制字的高5位决定A组的工作方式,
烟台大学文经学院
低3位决定B组的工作方式。
对C口按位复位命令字可对C口的每一位实现置位或复位。
A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。
4)读写控制逻辑:
用来控制把CPU俞出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU
2、引脚信号
8255A的引脚如图7.5所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。
D7,D0(databus):
三态、双向数据线,与CPU数据总线连接,用来传送数据。
(chipselect):
片选信号线,低电平有效时,芯片被选中。
A1,A0(portaddress):
地址线,用来选择内部端口。
(read):
读出信号线,低电平有效时,允许数据读出。
(write):
写入信号线,低电平有效时,允许数据写入。
RESET(reset):
复位信号线,高电平有效时,
将所有内部寄存器(包括控制寄存器)清0。
PA7,PA0(portA):
A口输入/输出信号线。
PB7,PB0(portB):
B口输入/输出信号线。
PC7,PC0(portC):
C口输入/输出信号线。
VCC:
5V电源。
GND:
电源地线。
3、8255A的工作方式:
方式0---基本输入输出方式;
方式1---选通输入输出方式;
方式2---双向选通输入输出方式。
二、实验步骤
1、按图连好实验线路
2、运行实验程序
⑴联机时,实验程序文件名为\DVCC\H8EXE\H84S.EXE
(2)单机时,实验程序起始地址为F000:
90E0。
在系统显示监控提示符“P.”时:
输入F000按F1键
烟台大学文经学院
输入90E0按EXEC键
在系统上显示执行符“『”,同时L1~L12发光二极管模拟交通灯显示(程序流程图:
开始
开始置8255控制字88H,使各端口均为输出端口,都工作在方式0使2个口的红灯全亮绿灯、黄灯全灭。
即IOBPT=00H、IOCPT=05H延时,判断有无闯红灯者,有数码管显示0,无则数码管不显示点亮3口绿灯,同时点亮2口红灯即IOCPT=00000110B延时,判断有无闯红灯者,有数码管显示0,无则数码管不显示熄灭3口绿灯,即IOCPT=00000100B(2口的红灯仍然亮着)
3口黄灯循环闪烁8次。
亮的时候,I0BPT=01000000B延时,灭得时候
IOBPT=0延时
点亮2口绿灯,同时点亮3口的红灯。
即IOCPT=00001001B
延时,判断有无闯红灯者,有数码管显示0,无则数码管不显示
熄灭2口绿灯,即IOCPT=00000001B。
(3口的红灯仍然亮着)
2口黄灯循环闪烁8次。
亮的时候,I0BPT=00100000B延时,灭得时候
IOBPT=0延时
四(实验代码:
CODESEGMENT
ASSUMECS:
CODE
IOCONPTEQU0FF2BH
IOAPTEQU0FF28H
烟台大学文经学院
IOBPTEQU0FF29H
IOCPTEQU0FF2AH
ORG10e0H
//开始置8255控制字88H,使各端口均为输出端口,都工作在方式0START:
MOVDX,IOCONPT
MOVAL,88H
OUTDX,AL
//使2个口的红灯全亮绿灯、黄灯全灭。
即IOBPT=00H、IOCPT=05H
MOVDX,IOBPT
MOVAL,00H//黄灯全灭
OUTDX,AL
MOVDX,IOCPT
MOVAL,05H//西口和北口的红灯亮
OUTDX,AL
CALLDELAY1
//点亮3口绿灯,同时点亮4口红灯即IOCPT=00000110BIOLED0:
MOVAL,00000110B//方向北绿灯亮,方向西红灯亮
MOVDX,IOCPT
OUTDX,AL
CALLDELAY1
CALLDELAY1
//熄灭3口绿灯,即IOCPT=00000100B。
(4口的红灯仍然亮着)
MOVAL,00000100B//熄灭3口即方向北绿灯
OUTDX,AL
〃3口黄灯循环闪烁8次,亮的时候,IOBPT=01000000B延时,灭得时候
IOBPT=0延
时
MOVCX,8H
MOVAL,0FFH//黄灯亮时,数码管不亮
MOVDX,0FF22H
OUTDX,AL
烟台大学文经学院IOLED1:
MOVDX,IOBPT
MOVAL,40H//3口即方向北黄灯亮
OUTDX,AL
CALLDELAY2
MOVAL,00H
OUTDX,AL
CALLDELAY2
LOOPIOLED1//CX不为零时循环即8次闪烁//其它的程序段
MOVDX,IOCPT
MOVAL,00001001B//置方向东绿,方向北红
OUTDX,AL
CALLDELAY1
CALLDELAY1
MOVAL,00000001B//熄灭方向西绿灯,方向北的红灯保持亮
OUTDX,AL
MOVCX,8H
MOVAL,0FFH
MOVDX,0FF22H
OUTDX,AL
IOLED2:
MOVDX,IOBPT
MOVAL,20H//方向西黄灯亮OUTDX,AL
CALLDELAY2
MOVAL,00HOUTDX,AL
CALLDELAY2
LOOPIOLED2MOVDX,IOCPT
MOVAL,05H烟台大学文经学院
OUTDX,AL
CALLDELAY2
JMPIOLED0
DELAY1:
PUSHAXPUSHCX
MOVCX,0010H
MOVDX,0FF2AH
INAL,DX//判断闯红灯
ANDAL,10000000B
JNZDISP//不等于零时,跳至DISP
MOVAL,0FFH//无人闯红灯
MOVDX,0FF22H
OUTDX,AL
JMPDELY2
DISP:
MOVAL,0c0H
MOVDX,0FF22H
OUTDX,ALDELY2:
CALLDELAY2
LOOPDELY2
POPCX
POPAX
RET
DELAY2:
PUSHCX
MOVCX,8000HDELA1:
LOOPDELA1
POPCX
RET
CODEENDS
ENDSTART
烟台大学文经学院
五(心得体会:
通过此次实验,使我全面的解了微机接口的运行方式,以及汇编语言与接口之间的关系.同时加深了我对8255,8254芯片的工作方式的认识和使用方法。
本次设计中我们克服了很多难题,在同伴的努力下我们还是按时完成了任务。
而且最难的就是硬件的调试,我们最开始的时候由于机器有问题,我们怎么也不能成功,但是我们换了一台机器后我们终于成功的看到了试验现象。
通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。
通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。