资源描述:
《接口课程设计--交通灯的设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、微型计算机与接口技术实验报告---模拟交通灯试验系:电子信息与计算机科学系专业:计算机科学与技术学号:200990514116任课教师:刘霄时间:2011年12月模拟红绿灯实验一、实验目的:1.了解交通灯管理的基本工作原理2.熟悉8255A并行接口的各种工作方式和应用3.掌握LED显示问题的解决二、实验内容:1.实验原理:交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车;延时一段时间后,1、3路口的绿灯熄灭
2、,而1、3路口的黄灯开始闪烁,闪烁8次以后,1、3路口红灯亮,而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。8255A的PB4~PB7对应黄灯,PC0~PC3对应红灯,PC4~PC7对应绿灯。8255A工作于模式0,并置为输出。由于各发光二极管为反向驱动,使其点亮应使8255A相应端口置1。其中实验中只用了2,3路口即东和北方向,PC7接开关K4控制有无闯红路灯,开关置1表示有人闯红灯,数码管显示为0。L4—L9
3、为两个路口的灯显示,PC口的低四位接输出(红灯和绿灯),高四位接输入,PB口接黄灯。2.实验线路连接PC2-----L4PB5-----L5PC3-----L62路口即东方向的红黄绿灯接线PC0-----L7PB6-----L8PC1-----L93路口即北方向的红黄绿灯接线PC7------K4(开关)3.实现功能A.实现四个路口的红绿灯交换显示,利用时间延迟,对红黄绿设置不同时间大小的延时。B.在延时1中进行对闯红绿灯的人进行判断,有闯红灯者,数码管显示为0,无人闯红灯则数码管不显示。C.利用数码管进行对闯红灯者进行表
4、示1.原理图红黄绿红黄绿红黄绿红黄绿1南4西3北2东L1L2L3L4L5L6L7L8L9L10L11L12PC2PB5PC3PC0PB6PC1红黄绿红黄绿红黄绿红黄绿1口南2口东3口北4口西开始1.程序流程:开始置8255控制字88H,使各端口均为输出端口,都工作在方式0使2个口的红灯全亮绿灯、黄灯全灭。即IOBPT=00H、IOCPT=05H延时,判断有无闯红灯者,有数码管显示0,无则数码管不显示点亮3口绿灯,同时点亮2口红灯即IOCPT=00000110B延时,判断有无闯红灯者,有数码管显示0,无则数码管不显示熄灭3口
5、绿灯,即IOCPT=00000100B。(2口的红灯仍然亮着)3口黄灯循环闪烁8次。亮的时候,IOBPT=01000000B,延时,灭得时候IOBPT=0延时点亮2口绿灯,同时点亮3口的红灯。即IOCPT=00001001B延时,判断有无闯红灯者,有数码管显示0,无则数码管不显示熄灭2口绿灯,即IOCPT=00000001B。(3口的红灯仍然亮着)2口黄灯循环闪烁8次。亮的时候,IOBPT=00100000B,延时,灭得时候IOBPT=0延时一、实验结果及分析实验按流程图的过程一一实现,且增加了判断有人闯红灯的功能二、程序
6、代码:CODESEGMENTASSUMECS:CODEIOCONPTEQU0FF2BHIOAPTEQU0FF28HIOBPTEQU0FF29HIOCPTEQU0FF2AHORG10e0H//开始置8255控制字88H,使各端口均为输出端口,都工作在方式0START:MOVDX,IOCONPTMOVAL,88HOUTDX,AL//使2个口的红灯全亮绿灯、黄灯全灭。即IOBPT=00H、IOCPT=05HMOVDX,IOBPTMOVAL,00H//黄灯全灭OUTDX,ALMOVDX,IOCPTMOVAL,05H//东口和北口的
7、红灯亮OUTDX,ALCALLDELAY1//点亮3口绿灯,同时点亮2口红灯即IOCPT=00000110BIOLED0:MOVAL,00000110B//方向北绿灯亮,方向东红灯亮MOVDX,IOCPTOUTDX,ALCALLDELAY1CALLDELAY1//熄灭3口绿灯,即IOCPT=00000100B。(2口的红灯仍然亮着)MOVAL,00000100B//熄灭3口即方向北绿灯OUTDX,AL//3口黄灯循环闪烁8次,亮的时候,IOBPT=01000000B,延时,灭得时候IOBPT=0延时MOVCX,8HMOVA
8、L,0FFH//黄灯亮时,数码管不亮MOVDX,0FF22HOUTDX,ALIOLED1:MOVDX,IOBPTMOVAL,40H//3口即方向北黄灯亮OUTDX,ALCALLDELAY2MOVAL,00HOUTDX,ALCALLDELAY2LOOPIOLED1//CX不为零时循环即8次闪烁//其它的程