1、 I交通灯智能控制设计摘要本文首先介绍了交通灯的发展历史,微型计算机的发展历史以及微机在各个领域的运用。接着主要对微机 8086 芯片及 8255 可编程并行 I/O 接口芯片的功能和工作原理做了比较详细的介绍,然后以这些芯片为中心器件来设计交通灯控制系统,实现了对红绿灯的燃亮和红绿灯燃亮时间的控制,显示时间通过 8255 输出,由双色 LED 灯显示,本系统系统实用性强,操作简单。关键词:微机 交通灯 控制 IIABSTRACTThe paper introduce the history of the traffic lights、the development of the microp
2、rocessor and the use of the microprocessor. And then have a detail discussion on chip 8086、programming parallel interface I/O chip 8255 and the theory of the working. All the chips which mentioned before are central device to design controller to control traffic lights. Show time is directly exporte
3、d through of 8255. Display used double color LED. The practicality of the system is strong, and the operating of the system is simpleKeywords: microprocessor traffic lights controler III目录第一章 绪论 .11.1 交通灯的发展 .11.2 课题的提出 .1第二章 微型计算机概述 .22.1 微型计算机的发展 .22.2 计算 机的发展趋势 .32.3 汇编语言 .32.3.1 汇编语言程序结构 .3第三章 芯
4、片的选择与介绍 .53.1 微机 8086 系统 .53.1.1 8086 系统的内部结构: .53.1.2 8086 的寄存器结构 .73.2 8086 的引脚信号及工作模式 .103.2.1 8086 的引脚及其功能 .113.3 8255 芯片简介 .153.3.1 8255A 的引脚与结构 .153.3.2 8255A 的工作方式与控制字 .173.3.3 各种工作方式的功能 .183.4 LED 数码管简介 .18第四章 交通灯系统设计 .194.1 交通管理的方案论证 .194.4.1 设计方案 .194.2 8255 模块介绍 .20IV4.2.1 8255 并行接口原理图 .2
5、04.2.2 8255 使用原理分析 .204.3 双色数码管显示模块 .224.3.1 双色数码管显示模块原理图 .224.3.2 原理分析 .224.4 译码电路 .244.4.1 硬件连线图 .244.4.2 GAL 的输出 .244.5 硬件线路连接 .254.6 程序设计 .274.6.1 系统程序框图 .274.6.2 简要程序编写 .28总结与展望 .30致谢 .31参考文献 .32附录 .33附录一 程序清单 .33附录二 外文文献 .39附录三 外文文献翻译 .511第一章 绪论1.1 交通灯的发展在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段,但这
6、一技术在 19 世纪就已出现了。1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868 年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两种以旋转式方形玻璃提灯组成,红色表示“停止” ,绿色表示“注意” 。1869 年 1 月 2 日,煤气灯爆炸,使警察受伤,遂被取消。1914 年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市 5 号大街的一座高塔上。红灯亮表示“停止” ,绿灯亮表示“通行”。1918 年,又出现了带控制的
7、红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968 年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车
8、辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。本文主要从微机的应用上来实现十字路口交通灯智能化的管理,用以控制过往车辆的正常运作。1.2 课题的提出随着社会经济的发展,马路上的车流量越来越大,很多时候会出现严重的拥堵,为了改善这种
9、情况,我们就必须对交通灯系统进行改进,使它具有高度的智能化,使车水马龙能有条不紊的穿梭于马路上。本文利用微处理器实现了对交通灯的智能控制,包括对不同颜色交通灯的燃亮以及燃亮时间的控制,充分显示了交通灯系统的智能化对于车流控制的重要性。2第二章 微型计算机概述2.1 微型计算机的发展第一阶段(19711973):典型的微型机以 Intel 4004 和 Intel 4040 为基础。微处理器和存储器采用 PMOS 工艺,工作速度很慢。微处理器的指令系统不完整;存储器的容量很小,只有几百字节;没有操作系统,只有汇编语言。主要用于工业仪表、过程控制或计算器中。 第二阶段(19741977):以 8
10、位微处理器为基础,典型的微处理器有 Intel 8080/8085、Zilog 公司的 Z80 及 Motorola 公司的 6800。微处理器采用高密度MOS(HMOS)工艺,具有较完整的指令系统和较强的功能。存储器容量达 64KB,配有荧光屏显示器、键盘、软盘驱动器等设备,构成了独立的台式计算机。配有简单的操作系统(如 CP/M)和高级语言。 第三阶段(19781981):以 16 位和准 32 位微处理器为基础,如 Intel 公司的8086、Motorola 的 68000 和 Zilog 的 Z8000。微处理器采用短沟道高性能 NMOS 工艺。在体系结构方面吸纳了传统小型机甚至大型
11、机的设计思想,如虚拟存储和存储保护。 第四阶段(20 世纪 80 年代):80 年代初,IBM 公司推出开放式的 IBM PC,这是微型机发展史上的一个重要里程碑。IBM PC 采用 Intel 80x86(当时为8086/8088、80286、80386)微处理器和 Microsoft 公司的 MS DOS 操作系统并公布了IBM PC 的总线设计。 第五阶段(20 世纪 90 年代开始):RISC(精简指令集计算机)技术的问世使微型机的体系结构发生了重大变革。 几十年来,随着物理元、器件的变化,不仅计算机主机经历了更新换代,它的外部设备也在不断地变革。比如外存储器,由最初的阴极射线显示管发
12、展到磁芯、磁鼓,以后又发展为目前通用的磁盘,近几年出现了体积更小、容量更大、速度更快的只读光盘(CDROM) 。微型计算机的发展70 年代以来,微型计算机的发展尤为迅速,几乎令人目不暇接。以采用 Intel 微处理器芯片的微机主流机型的发展为例:1971 年 Intel 公司推出 4 位微处理器芯片4004 及 4040;1974 年出现采用 8 位微处理器芯片 8080 的微机;1979 年电脑巨人 IBM公司介入微机行业,开发出采用准 16 位 8088 芯片的 IBMPC 兼容机。该系列微机不断地推陈出新,1982 年推出采用 16 位微处理器芯片 80286 的微机;1989 年推出
13、80486微机。1993 年,80586 又问世了。出于专利保护的考虑,不再称 8058,命名为Pentium(简称 P5,中文名“奔腾” ) 。 Pentium 芯片集成了 310 万个晶体管,使用 64位的数据总线。由于更新换代迅速,微机型号的生存周期也越来越短。据统计,自1982 年以来,微机性能指标平均每一年半提高一倍,目前的微机性能指标已达到 1982年时的 200 倍,1970 年时的 3000 倍,而成本和价格则大幅度地降低了。计算机网络的发展:近年来,计算机网络也得到持续不断的发展,并可大致分为四个阶段:1. 远程终端联机阶段2. 由大型主机利用通信线连接多个远程终端,组成联机
14、系统。微型计算机网络得到广泛的应用和发展,出现了局域网(LAN) 、城域网(MAN)和广域网(WAN) 。33.计算机网络互连阶段根据国际标准化组织(ISO)公布的开放系统互连模型( OSI)实现了网络间的互连,并产生了综合业务数字网(ISDN)及无线通讯的卫星网。4.信息高速公路阶段将把所有的计算机资源都用高速通信网连接起来,实现最大范围的信息资源共享。2.2 计算机的发展趋势当前计算机发展的趋势是由大到巨(追求高速度、高容量、高性能) ,由小到微(追求微型化,包括台式、便携式、笔记本式乃至掌上型,使用方便,价格低廉) ,网络化,智能化。同时,现代计算机在许多技术领域都取得了极大的进步,比如
15、多媒体技术、计算机网络、面向对象的技术、并行处理技术、人工智能、不污染环境并节约能源的“绿色计算机”等。许多新技术、新材料也开始应用于计算机,比如超导技术、光盘等。但毕竟还没有出现第五代计算机。日本于 1981 年宣布了雄心勃勃的研制五代机的计划,至今未能实现并搁浅了。至于什么是第五代计算机也尚无定论,但突破迄今一直沿用的冯诺依曼原理是必然趋势、前四代计算机是按构成电子计算机的主要元器件的变革划分的,第五代计算机可能是采用激光元器件和光导纤维的光计算机,也可能不是按元器件的变革作为更新换代的标志,而是按其功能的革命性突破作为标志,比如是能够处理知识和推理的人工智能计算机,甚至可能发展到以人类大
16、脑和神经元处理信息的原理为基础的生物计算机等。总之,计算机的发展仍然是方兴未艾,其发展前景是极其广阔而诱人的。新观点划分阶段:目前,国内外的许多专家又对计算机发展的历史作了进一步的总结归纳,把计算机的发展粗略地划分为三个阶段。把从产生第一台机械式计算机至 1946 年第一台电子计算机 ENIAC 诞生以前称为近代计算机阶段,即机械式和机电式计算机阶段。将 ENIAC问世以后传统大、中型机占主导地位的时期,按物理器件的变比划分为四代,称为传统大型机阶段。将微型计算机和计算机网络崛起后计算机与通信结合的时期,称为微机与网络阶段。2.3 汇编语言指令系统中的指令,在计算机内存中,都是以二进制编码的形
17、式存储的,这种编码称为机器码,或者称为机器指令.在程序运行时,指令由内存读入 cpu,然后译码,执行.只有内存中的机器码,计算机才能执行. 现在,可以用指令助记符和表示地址或数据等的各种符号,按照规定的格式,来编制程序,这样的程序,称为汇编语言程序.这些表示指令,地址,数据等的符号以及有关规定,是计算机进行:“思想”的工具,亦即计算机汇编语言汇编语言源程序经过汇编程序的语法检查和翻译,形成二进制代码表示的目的码文件.如果源程序中有语法错误,汇编程序会指出错误的类型和出错所在的语句,以便用户重新进行编辑修改,再形成新的源程序.源文件和有其生成的目的码文件可以是一个或者是几个.2.3.1 汇编语言
18、程序结构汇编语言源程序通常由一个或几个程序模块组成,每个模块包括数据段,堆栈段和若干个代码段.有时程序中可以不设堆栈段,而利用系统中已设定的堆栈段.代码段中有4若干个过程,过程又称子程序。过程中的语句分为两类,两类是指示性语句,另一类是指示性语句.指示性语句是计算机能执行的指令,而指示性语句,计算机并不能执行。汇编时,依据指示性语句的规定,汇编程序对源程序进行相应的处理操作,进行诸如定义数据、分配存储区、指示程序开始和结束等服务性工作,以减轻编程员的负担。指示性语句又成伪指令。这里,用等式表示程序和过程的结果内容:程序=块数据段,堆栈段,代码段(过程 1,过程 2,),快过程=指示性语句,指令
19、性语句指示性语句的格式如下:名字 伪指令 操作数 ;注释例如:SUM PROC FAR ;定义一个过程SUM ENDP ;过程定义结束指令性语句的格式为:标号:前缀指令助记符操作数;注释例如:LP1: MOV BX , OFFSET DAREA ;DAREA 的地址送 BX语句中名字和符号,又称为符标识符,是程序员自己确定的,它不允许与指令助记符或伪指令同名,也不允许有数字打头,字符个数不得超过 31 个。5第三章 芯片的选择与介绍3.1 微机 8086 系统3.1.1 8086 系统的内部结构:8086 的功能结构如图 3.1 所示。图 3.11.总线接口部件 BIUBIU 是 CPU 与外
20、部存储器及 IO 的接口,负责与存储器和 I0 系统进行数据交换。BIU 由下列各部分组成:4 个 16 位段地址寄存器,即代码段寄存器 CS,数据段寄存器 DS,附加段寄存器ES 和堆栈段寄存器 SS,它们分别用于存放当前代码段、数据段、附加段和堆栈段的段基址。段基址表示 20 位段起始地址的高 16 位,段起始地址的低 4 位固定是 0。16 位指令指针 IP:IP 用于存放下一条要执行指令的有效地址 EA(即偏移地址),IP的内容由 BIU 自动修改,通常是进行加 1 修改。当执行转移指令、调用指令时,BIU 装入 IP 中的是转移目的地址。偏移地址表示离段起始地址之间的距离,用字节数表
21、示。如偏移地址=0064H,表示该地址距离段起始地址有 100 个字节,偏移地址为 0 就表示该地址为段起始地址。由段基址(段寄存器的内容)和偏移地址两部分构成了存储器的逻辑地址,如6CS:IP=3000:2000H,CS:IP=0200:1020H 等,都是逻辑地址。20 位物理地址加法器:加法器用于将逻辑地址变换成读写存储器所需的 20 位物理地址,即完成地址加法操作。方法是将某一段寄存器的内容(代表段基址)左移 4位(相当乘 16)再加上 16 位偏移地址以形成 20 位物理地址。6 字节的指令队列:当执行单元 EU 正在执行指令中,且不需要占用总线时,BIU会自动进行预取下一条或几条指
22、令的操作,并按先后次序存入指令队列中排队,由 EU按顺序取来执行。总线控制逻辑:总线控制逻辑用于产生并发出总线控制信号,以实现对存储器和IO 端口的读写控制。它将 CPU 的内部总线与 16 位的外部总线相连,是 CPU 与外部打交道(读写操作)必不可少的路径。2.执行部件 EU执行部件 EU 的功能就是负责指令的执行。由图 3.1 可知,EU 包括下列几个部分:算术逻辑单元 ALU: ALU 完成 16 位或 8 位的二进制数的算术逻辑运算,绝大部分指令的执行都由 ALU 完成。在运算时数据先传送至 16 位的暂存寄存器中,经 ALU 处理后,运算结果可通过内部总线送入通用寄存器或由 BIU
23、 存入存储器。标志寄存器 FR:它用来反映 CPU 最近一次运算结果的状态特征或存放控制标志。FR 为 16 位,其中 7 位未用。通用寄存器组:它包括 4 个数据寄存器 AX、BX、CX、DX,其中 AX 又称累加器,4个专用寄存器,即基址指示器 BP、堆栈指示器 SP、源变址寄存器 SI 和目的变址寄存器 DI。EU 控制器:它接收从 BIU 中指令队列取来的指令,经过指令译码形成各种定时控制信号,向 EU 内各功能部件发送相应的控制命令,以完成每条指令所规定的操作。3.BIU 和 EU 的动作管理 BIU 和 EU 并不是同步工作的,但是两者的动作管理是有原则的。BIU 从内存取指令,并
24、送到指令队列。取指令时的地址由代码段寄存器 CS 中的 16位段基址的最低位后补 4 个 0,再与指令指针 IP 中的 16 位偏移地址在地址加法器中相加得到 20 位物理地址。然后通过总线控制逻辑发出存储器读命令,从而 RD 启动存储器,从存储器中取出指令并送入指令队列供 EU 执行。BIU 必须保证指令队列始终有指令可供执行。指令队列允许预取指令代码,当指令队列有 2 个字节的空余时,BIU 将自动取指令到指令队列。EU 是直接从 BIU 的指令队列中取指令执行,由于指令队列中至少有一个字节的指令,EU 就不必因取指令而等待。在 EU 执行指令过程中需要取操作数或存结果时,先向 BIU 发
25、出请求,并提供操作数的有效地址,BIU 将根据 EU 的请求和提供的有效地址,形成 20 位的物理地址并执行一个总线周期去访问存储器或 IO 端口,从指定存储单元或 IO 端口取出操作数送交 EU 使用或将结果存入指定的存储单元或 IO 端口。如果 BIU 已准备好取指令但同时又收到 EU 的申请,则 BIU 先完成取指令的操作,然后进行操作数的读写。当 EU 执行转移、调用和返回指令时,BIU 先自动清除指令队列,再按 EU 提供的新地址取指令。BIU 新取得的第一条指令将直接送到 EU 中去执行。然后,BIU 将随后取得的指令重新填入指令队列。早期的微处理器中,程序的执行是由取指和执行指令交替进行的,取指期间,CPU必须等待。如图 3.2(a)所示,指令的提取和执行是串行进行的。在 8086 中,由于 EU 和 BIU 两部分是按流水线方式并行工作的,在 EU 执行指令的