您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 城市交通灯控制系统设计
城市交通灯控制系统设计摘要:新型多功能交通灯控制系统越来越多的被用于个大中小城市中,它的研究有效地改善了交通堵塞等现象。利用微型计算机8086/8088作为控制器,设计制作城市道口交通灯控制系统。系统由硬件和软件两个部分组成,设计以8255A为核心,提出了系统的硬件实现方案,对各单元电路以及系统的整体硬件部分进行了设计与调试。系统工作稳定可靠,实用性强。最后介绍了系统的存储单元分配,软件流程图,软件源程序及注释等内容。关键词:城市道口交通灯控制系统;8255A;程序流程图;编写程序目录一.课程设计的题目二.课程设计目的三.技术要求及设计数据四.设计思路及方案的确定五.设计原理图六.程序流程图及编写程序七.收获体会和建议八.参考文献使用软件一.设计题目:城市交通灯控制系统设计二.设计目的:通过对红,绿,黄LED的控制熟练掌握8255A可编程并行接口的编程方法。三.设计要求:⑴使用微型计算机8086/8088作为控制器。⑵纵向与横向的交通灯定时60秒交换红绿灯一次。⑶灯光有三种颜色:红、黄、绿。灯光亮时车辆行驶,红灯亮时车辆停止,从绿灯亮到红灯亮之间有一过度状态:黄灯闪烁,闪烁的次数自定。起始状态为纵向与横向的红灯都是点亮状态。四.设计思路及方案的确定相关知识及重要元器件作用的说明:Intel8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。二、8255A的编程结构8255A由以下几部分组成:8255A内部结构图8255A的引脚排列1、三个数据端口A,B,C这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。·A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。·B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。·C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O2.A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。3.数据总线缓冲器8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。4.读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号CS及系统读信号RD、写信号WR、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。三、8255A的引脚信号引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外设的信号。1、面向CPU的引脚信号及功能·D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;·RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;·CS:片选,输入,用来决定芯片是否被选中;·RD:读信号,输入,控制8255A将数据或状态信息送给CPU;·WR:写信号,输入,控制CPU将数据或控制信息送到8255A;·A1,AO:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A内部共有4个端口:A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。CS,RD,WR,A1,A0这几个信号的组合决定了8255A的所有具体操作。2、面向外设的引脚信号及功能•PA0~PA7:A组数据信号,用来连接外设;•PB0~PB7:B组数据信号,用来连接外设;•PC0~PC7:C组数据信号,用来连接外设或者作为控制信号。Intel8255A是一个通用的可编程的并行接口芯片,它有三个并行I/O口,又可通过编程设置多种工作方式,价格低廉,使用方便,可以直接与Intel系列的芯片连接使用,在中小系统中有着广泛的应用。二、8255A的编程结构8255A由以下几部分组成:1、三个数据端口A,B,C这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。·A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。·B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。·C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O2.A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。3.数据总线缓冲器8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。4.读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号CS及系统读信号RD、写信号WR、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。三、8255A的引脚信号引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外设的信号。1、面向CPU的引脚信号及功能·D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;·RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;·CS:片选,输入,用来决定芯片是否被选中;·RD:读信号,输入,控制8255A将数据或状态信息送给CPU;·WR:写信号,输入,控制CPU将数据或控制信息送到8255A;·A1,AO:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A内部共有4个端口:A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。CS,RD,WR,A1,A0这几个信号的组合决定了8255A的所有具体操作。2、面向外设的引脚信号及功能•PA0~PA7:A组数据信号,用来连接外设;•PB0~PB7:B组数据信号,用来连接外设;•PC0~PC7:C组数据信号,用来连接外设或者作为控制信号。1、三个数据端口A,B,C这三个端口均可看作是I/O口,但它们的结构和功能也稍有不同。·A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。·B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。·C口:可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O2.A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。3.数据总线缓冲器8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。4.读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号CS及系统读信号RD、写信号WR、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。三、8255A的引脚信号引脚信号可以分为两组:一组是面向CPU的信号,一组是面向外设的信号。1、面向CPU的引脚信号及功能·D0-D7:8位,双向,三态数据线,用来与系统数据总线相连;·RESET:复位信号,高电平有效,输入,用来清除8255A的内部寄存器,并置A口,B口,C口均为输入方式;·CS:片选,输入,用来决定芯片是否被选中;·RD:读信号,输入,控制8255A将数据或状态信息送给CPU;·WR:写信号,输入,控制CPU将数据或控制信息送到8255A;·A1,AO:内部口地址的选择,输入。这两个引脚上的信号组合决定对8255A内部的哪一个口或寄存器进行操作。8255A内部共有4个端口:A口,B口,C口和控制口,两个引脚的信号组合选中端口见下表。CS,RD,WR,A1,A0这几个信号的组合决定了8255A的所有具体操作。2、面向外设的引脚信号及功能•PA0~PA7:A组数据信号,用来连接外设;•PB0~PB7:B组数据信号,用来连接外设;•PC0~PC7:C组数据信号,用来连接外设或者作为控制信号。74LS240结构图74LS240八反相缓冲器/线驱动器/线接收器(三态)当/1G和/2G同时为H时,Y=高阻;当/1G和/2G同时为L时,Y=/A。74LS241、74F241、74ALS241、74HCT241、74S241、74HC241八缓冲器/线驱动器/线接收器(三态)当/1G为H、/2G为L时,Y=高阻;当/1G为L、/2G为H时,Y=A。首先了解交通灯的亮灭规律。假设有一个十字路口,1,2为南北方向,2,4为东西。①初态为4个红灯全亮,禁止通行。②1,3路口绿灯亮,2,4路口红灯亮。③1,3路口绿灯灭。④1,3路口黄灯闪烁。⑤4个路口红灯全亮。⑥2,4路口绿灯亮,同时1,3路口红灯亮。⑦2,4路口绿灯灭。⑧2,4路口黄灯闪烁。⑨转向步骤①循环执行。系统硬件设计和软件设计在本次设计中需要用到微型计算机8086/8088作为主控制系统,连接8255A芯片,利用两块74LS240分别控制黄灯和红灯绿灯,各发光二极管阳极通过电阻接+5V。详细见图所示。连接好电路图后,对8255A进行程序编写,然后编译,运行调试。通过多次的调试达到预定的要求。在设计中要注意红灯绿灯的过渡的状态,和黄灯的闪烁时间。五.设计原理图原理图中PB4`PB7对应黄灯,PC0`PC3对应红灯,PC4`PC7对应绿灯。8255A的A端口,B端口,C端口和控制端口的地址分别为:FF28H,FF29H,FF2AH,FF2BH。六.程序流程图:开始↓定义8255A各寄存器地址↓写8255A控制字为80H,A、B、C三口均为方式0输出↓4个路口绿灯、黄灯灭,红灯亮↓延时程序2延时——————————————→↓↓↓↓↓延时程序1,延时约1分钟↓2、4绿灯灭,2、4黄灯闪3次,每次1秒|______________________________↓结束编辑程序如下:CODESEGMENTASSUMECS:CODECONTEQU0FF2BH;定义控制口地址IO_AEQU0FF28H;定义A口地址IO_BEQU0FF29H;定义B口地址IO_CEQU0FF2AH;定义C口地址ORG1003HALL_RED:MOVDX,CONT;写8255A控制字MOVAL,80H;定义A口、B口、C口为输出OUTDX,ALMOVDX,IO_B;灭所有绿灯和黄灯MOVAL,00H亮1、3路口绿灯,同时亮2、4路口红灯延时程序1,延时约1分钟1、3绿灯灭,1、3黄灯闪3次,每次1秒灭1、3黄灯,亮2、4绿灯,亮1、3红灯OUTDX,ALMOVDX,IO_C;亮4个红灯MOVAL,0FHOUTDX,ALCALLDELAY2;延时时间较短GREEN13:MOVAL,01011010BMOVDX,IO_COUTDX,AL;1、3路口绿灯亮,同时2、4路口红灯亮CALLDELAY1;延时1分钟MOVAL,00001010B;灭1、3路口绿灯OUTDX,ALMOVCX,3H;置计数初值为3YELLOW13:MOVDX,IO_BMOVAL,50H;点亮1、3路口黄灯OUTDX,ALCALLDELAY2;延时MOVAL,00H;灭1、3路口黄灯OUTDX,ALCALLDELAY2;延时较短时间LOOPYELLOW13;黄灯闪烁3次GREEN24:MOVAL,10100101B;点亮2、
本文标题:城市交通灯控制系统设计
链接地址:https://www.777doc.com/doc-7311886 .html