当前位置:文档之家› 微机大作业实验报告 (1)

微机大作业实验报告 (1)

微机技术综合实验课程报告题目交通灯控制设计学生姓名李松阳张磊学号***********/68院系信息与控制学院专业自动化指导教师陈逸菲二OO一三年十二月二十七日目录交通灯控制设计--------------------------------------------------------------1 预期功能------------------------------------------------------------------------------------------------------1 设计方案------------------------------------------------------------------------------------------------------1 硬件电路设计------------------------------------------------------------------------------------------------2 软件设计------------------------------------------------------------------------------------------------------2 仿真结果------------------------------------------------------------------------------------------------------6 小结------------------------------------------------------------------------------------------------------------8 参考文献------------------------------------------------------------------------------------------------------8交通灯控制设计李松阳张磊南京信息工程大学自动化系南京 210044摘要:随着社会经济的发展,城市交通问题越来越引起人们的关注.人、车、路三者关系的和谐,已成为交通治理部分须要解决的主要问题之一.城市交通节制系统是用于城市交通数据监测、交通讯号灯把持与交通劝导的盘算机综合治理体系,它是现代城市交通监控指挥体系中最主要的组成部分.随着城市灵活车量的不断增添,很多大城市如北京、上海、南京等呈现了交通超负荷运行的情形,因此,自80年代后期,这些城市纷纭修建城市高速道路,在高速途径建设完成的初期,它们也曾有效地改良了交通状态.然而,随着交通量的快速增加和缺少对高速道路的系统研讨和掌握,高速道路没有充足施展出预期的作用.而城市高速道路在结构上的特色,也决议了城市高速途径的交通状态必定受高速道路与普通途径耦合处交通状态的制约.所以,如何采取适合的控制方式,最大限度应用好消耗巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地域的交通拥堵状况,越来越成为交通运输治理和城市计划部分亟待解决的重要问题.为此,本文就城乡交通灯模仿控制系统的电路原理、设计盘算和试验调试等问题来进行具体剖析讨论. 本设计以proteus仿真软件为载体,结合,8086芯片、8255芯片、8253芯片、74LS138芯片以及7段数码管等的功能,用汇编语言编程实现了十字路口交通灯的模拟实验。

关键词:NMI不可屏蔽中断、74LS138译码器、8253计数器、并行接口8255、最小系统一、预期功能:东西南北各有红黄绿三个交通灯,交通灯亮灭规则为:先东西的红灯亮,南北绿灯亮,持续9s;四个路口黄灯亮1s;东西的绿灯亮,南北红灯亮,持续5s;四个路口黄灯亮1s;重复以上过程。

二、设计方案:本次仿真实验用到的芯片为8086、74HC373、74LS138译码器、8253计数器、并行接口8255。

初次之外还要用到红黄绿三色的LED发光二极管各四个、100欧姆的电阻12个、7段数码管一个。

其中利用一个8086和3个74HC373以及一个74LS138构成一个最小系统,连接方式可以见面报告中的附图。

8255A并行接口中PA0~PA6控制7段数码管,PC0~PC3控制东西南北四个路口的红灯,PB4~PB7控制东西南北四个路口的黄灯,PC4~PC7控制东西南北四个路口的绿灯。

PA口工作在方式0,输出;PB口的工作方式在方式0,输出;PC口工作在方式0,输出,所以可以确定控制字为10000000B。

8253A的功能是用来计数,本实验中的8253A采用通道0,工作在方式2(速率波发生器方式),输入时钟为100HZ,输出到非屏蔽中断NMI,所以可以确定控制字为00100101B。

三、硬件电路设计:8255A的选通端接的是74LS138的IO0,因此可以确定PA口的端口地址为8000H,PB口的端口地址为8002H,PC口的端口地址为8004H,8255A的控制字地址为8006H。

8253A的选痛端接的是74LS138的IO2,因此可以确定端口0的地址为A000H,端口1的地址为A002H,端口2的地址为A004H,控制字地址为A006H。

四、软件设计:开始初始化8255A设置中断NO程序编码如下:CODE SEGMENT;ASSUME DS:DATA,CS:CODEIOCON EQU8006H 8255控制字地址IOA EQU 8000H PA口地址IOB EQU8002H PB口地址IOC EQU8004H PC口地址TCONTRO EQU0A006H 8233控制字地址TCON0 EQU0A000H 0端口地址TCON1 EQU0A002H 1端口地址TCON2 EQU0A004H 2端口地址START:MOV DX,8006H 写入8255的控制字MOV AL,10000000BOUT DX,ALMOV AX,DATAMOV DS,AXPUSH ESMOV AX,0MOV ES,AXMOV AX,08H NMI中断在中断向量表中的地址MOV SI,AX 中断地址的向量送入SIMOV AX,OFFSET NMI_SERVICEMOV ES:[SI],AX 保持中断服务程序的IP地址MOV BX,CSMOV ES:[SI+2],BX 保持中断服务程序的CS地址POP ESMOV DX,0A006H 写入8253A的控制字MOV AL,00100101BOUT DX,ALMOV DX,0A000HMOV AL,01HOUT DX,ALIOLED0:MOV DX,8004H 设置PC端口地址MOV AL,10100101B 东西红灯亮南北绿灯亮OUT DX,ALMOV DX,8002H 设置PB端口地址MOV AL,11110000B 东西南北黄灯灭OUT DX,ALMOV SI,OFFSET TABLEMOV SI,1 将SI指向7段数码管的第一个编码LP0: MOV AL,[SI] 将要显示的数码管的编码送到AL MOV DX,8000H 设置端口地址OUT DX,AL 由端口输出CMP SI,OFFSET [TABLE+11] 比较数码管显示的编码是否到了最后JE IOLED1 到了最后一个就向下执行IOLED1JMP LP0 否则继续执行,指向下一个编码IOLED1:MOV DX,8002H 设置PB端口地址MOV AL,00000000B 东西南北黄灯亮OUT DX,ALMOV DX,8004H 设置PC端口地址MOV AL,11111111B 东西红灯灭南北绿灯灭OUT DX,ALMOV SI,OFFSET TABLEMOV SI,9 将SI指向7段数码管的第九个编码LP1: MOV AL,[SI] 显示的数码管的编码送到ALMOV DX,8000H 设置端口地址OUT DX,AL 由端口输出CMP SI,OFFSET [TABLE+11] 比较数码管显示的编码是否到了最后JE IOLED2 到了最后一个就向下执行IOLED2JMP LP1 否则继续执行,指向下一个编码IOLED2:MOV DX,8004H 设置PC端口地址MOV AL,01011010B 东西绿灯亮南北红灯亮OUT DX,ALMOV DX,8002H 设置PB端口地址MOV AL,11110000B 东西南北黄灯灭OUT DX,ALMOV SI,OFFSET TABLEMOV SI,5 将SI指向7段数码管的第5个编码LP2: MOV AL,[SI] 显示的数码管的编码送到AL MOV DX,8000H 设置端口地址OUT DX,AL 由端口输出CMP SI,OFFSET [TABLE+11] 比较数码管显示的编码是否到了最后JE IOLED3 到了最后一个就向下执行IOLED3JMP LP2 否则继续执行,指向下一个编码IOLED3:MOV DX,8002H 设置PB端口地址MOV AL,00000000B 东西南北黄灯亮OUT DX,ALMOV DX,8004H 设置PC端口地址MOV AL,11111111B 东西绿灯灭南北红灯灭OUT DX,ALMOV SI,OFFSET TABLEMOV SI,9 将SI指向7段数码管的第9个编码LP3: MOV AL,[SI] 显示的数码管的编码送到ALMOV DX,8000H 设置端口地址OUT DX,AL 由端口输出CMP SI,OFFSET [TABLE+11] 比较数码管显示的编码是否到了最后JE IOLED4 到了最后一个就向下执行IOLED4JMP LP3 否则继续执行,指向下一个编码IOLED4:JMP IOLED0 跳转执行IOLED0NMI_SERVICE:INC SI SI自行加一EXIT:IRETCODE ENDSDA TA SEGMENT 7段数码管的定义TABLE DB 44H,6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH,44H DA TA ENDSEND START五、仿真结果:首先东西红灯亮,南北绿灯亮。

7段数码管显示从9开始倒计时到0。

然后东西红灯灭,南北绿灯灭,东西南北四个黄灯亮,7段数码管从1开始倒计时到0 。

东西南北黄灯灭,东西绿灯亮,南北红灯亮,7段数码管从5开始倒计时至0。

东西绿灯灭,南北红灯灭,东西南北黄灯亮,7段数码管从1开始倒计时至0。

按照上面的亮变方式进行循环。

六、小结:经过这段时间的课程设计, 做关于交通灯系统设计,我们认真查阅资料,学习关于这方面的知识,比如说要了解8086芯片中各个引脚的功能,怎么样去使用8255这个可编程并行接口芯片,怎么样使用8253来定时及输出一定频率的脉冲以及交通有哪些规则.在理论学习的基础上,又下了一次苦工夫,算是明白了设计一个系统的过程;也让我们体会到要想成功地设计某个东西,光学好专业知识是不够的,必须要系统的知识,无论在哪方面都要有个明白的概念,只有这样才不至于在设计过程中摸不着头脑,知道去哪些是需要查的资料,还有一点,我觉得我在芯片编程方面,特别是在初始化方面是我们最大的困难,或许是我们的汇编语言学得不够好,我们只能借助参考资料,查每一条指令的作用与功能,这样一来又巩固了我们的对汇编语言的了解.而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。

相关主题