城市交通灯控制系统设计
摘要:新型多功能交通灯控制系统越来越多的被用于个大中小城市中,它的研究有
效地改善了交通堵塞等现象。利用微型计算机8086/8088作为控制器,设计制作城市道口交通灯控制系统。系统由硬件和软件两个部分组成,设计以8255A为核心,提出了系统的硬件实现方案,对各单元电路以及系统的整体硬件部分进行了设计与调试。系统工作稳定可靠,实用性强。最后介绍了系统的存储单元分配,软件流程图,软件源程序及注释等内容。
关键词:城市道口交通灯控制系统;8255A;程序流程图;编写程序
目 录
一.课程设计的题目 二.课程设计目的 三.技术要求及设计数据 四.设计思路及方案的确定 五.设计原理图
六.程序流程图及编写程序 七.收获体会和建议 八.参考文献使用软件
一.设计题目:
城市交通灯控制系统设计
二.设计目的:
通过对红,绿,黄LED的控制熟练掌握8255A可编程并行接口的编程方法。
三.设计要求:
⑴ 使用微型计算机8086/ 8088作为控制器。
⑵ 纵向与横向的交通灯定时60秒交换红绿灯一次。
⑶ 灯光有三种颜色:红、黄、绿。灯光亮时车辆行驶,红灯亮时车辆停止,从绿灯亮到红灯亮之间有一过度状态:黄灯闪烁,闪烁的次数自定。起始状态为纵向与横向的红灯都是点亮状态。
四.设计思路及方案的确定
相关知识及重要元器件作用的说明:
Intel 8255A是一个通用的可编程的并行接口芯片,它有三个并行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/O 2.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组数据信号,用来连接外设或者作为控制信号。Intel 8255A
是一个通用的可编程的并行接口芯片,它有三个并行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/O 2.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/O 2.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组数据信号,用来连接外设或者作为控制信号。