微机原理与接口技术课程设计基于PC机与8255的交通灯电路系统设计.doc
《微机原理与接口技术课程设计基于PC机与8255的交通灯电路系统设计.doc》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计基于PC机与8255的交通灯电路系统设计.doc(17页珍藏版)》请在三一办公上搜索。
1、微机原理与接口技术课程设计 课程设计题目: 基于PC机与8255的交通灯电路系统设计 班级专业: 姓 名: 学 号: 指导老师: 地点: 微机原理与接口技术实验室 基于PC机与8255的交通灯电路系统设计第一部分 概论十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。井然秩序的实现,靠的是交通信号灯的自动指挥系统。交通信号灯控制方式有很多。本系统采用8255A芯片实现了A口设置红、绿、黄灯点亮时间的功能,从而控制LED发光二极管实现红、黄、绿灯循环点亮。另外结合日常生活经验,并且从亚残会中对残疾人的生活不便中得出感悟,采用8253进行控制扬声器,在红、绿灯变换之间黄灯闪烁时,同时添加了
2、“声音提示功能。整个系统具有固定的“红灯黄灯绿灯”转换间隔,并自动切换,对东西南北方向的道路进行“自动”的控制。但是,经过小组成员提出的各种假设,发现此系统需要加入更多人性化的元素:交警可以根据实际的路面情况,针对不同的突发事件,进行手工控制红绿灯的转换。例如救护车警车执行紧急任务;例如东西道路塞车,南北道路空闲无车辆行驶时,需要灵活调节红绿灯的转化。通过8255并口控制,可以达到更加人性化的效果从而方便各种人群。1.1设计任务: 交通信号灯的控制(1)通过8255并行接口来控制LED发光二极管的亮灭,并适当延时。(2)黄灯闪烁时,通过8253控制扬声器发出声音,以提醒灯的转换 。(3)通过8
3、255并口控制,人工进行交通灯的转换。1.2 任务要求(1)南北路口的绿灯、东西路口的红灯同时亮5秒左右。(2)南北路口的黄灯闪烁若干次,扬声器鸣叫,同时东西路口的红灯闪烁。(3)南北路口的红灯、东西路口的绿灯同时亮5秒左右。(4)南北路口的红灯闪烁、同时东西路口的黄灯亮闪烁若干次,扬声器鸣叫。(5) 转(1)重复。紧急情况可以手动控制红绿灯的变换。1.3设计原理电路原理:本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。完整系统的硬件连接如图所示。硬件电路由定时模块、发光二极管模块、数码管
4、显示模块和紧急中断模块组成。定时模块是由8254的计数器0来实现定时100ms。Clk0接实验平台分频电路输出Q6,f46875hz。GATE0接8255的PA0,由8255输出来控制计数器的起停。OUT0接8259的IRQ2,定时完成申请中断,进入中断服务程序。发光二极管显示模块由8255输出来控制发光二极管的亮灭。8255输出为低电平时,对应的发光二极管就点亮,否则就熄灭。程序原理:计数器0的计数初值为25000,由于CLK0接脉冲信号,频率为2.5MHZ,所以每10ms中断一次。利用CX对不同的状态时间计数,用来实现计数器0对1分钟,20秒钟,5秒钟的定时。中断子程序分为数码显示刷新部分
5、和红绿黄灯各种状态切换部分。每进入中断即刷新LED显示。用对于东西车道和南北车道黄灯闪烁利用标志位判断实现,满足比较条件就暗,不满足条件就亮。8254计数的起停由8255的PA0控制,8255的PA0输出1时,8254开始计数,交通灯按正常状态切换工作,PA0输出0时,计数器停止工作,交通灯不再按正常状态切换。8254开始计数后每100ms发出一个中断申请信号,在中断子程序中先刷新数码管,然后判断当前状态,进入相应的处理程序进行处理。主程序负责系统的初始化,然后数码管数据输出显示,同时检测PC键盘按键,有按键就退出程序。主程序的流程图如图所示。定时中断子程序是本设计的重点,负责完成数码管输出数
6、据刷新和各个状态的处理切换。中断子程序包括数码管输出数据刷新程序和各状态处理程序。数码管输出数据刷新子程序是实现倒计时25s,用LEDOUT表示输出的数据,cnt用来软件计时1s,就是计数10个100ms。LED输出是要将输出的数据转化为段选码。根据当前的状态跳转到相应的处理程序,在处理程序中完成定时和状态的切换。状态1和3的流程是一样的,先点亮对应的交通灯,再判断定时到了就可以切换了。状态2和4要实现黄灯的闪烁,间隔点亮和熄灭就可以了。状态1和3处理程序的流程图(以状态1为例)如图所示,其中NUM是状态1对应的PC口输出。外部中断服务子程序主要用来处理紧急情况,将2个方向的车都停止运行,点亮
7、所有红灯。下次中断来时恢复以前的状态。用一个标志位FLAG判断是第一次进入还是恢复状态。第二部分 硬件设计2.1线路示意图8255连接图:8253连接图:2.2 8255A的工作原理1、8255A的内部结构:1) 数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。2) 三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。C端口包含一个8位数据输出锁存器和缓冲器,一个8
8、位数据输入缓冲器(输入没有锁存器)。3) A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。对C口按位复位命令字可对C口的每一位实现置位或复位。A组控制电路控制A口和C口上半部,B组控制电路控制B口和C口下半部。4) 读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。2、8255A的 工作方式:方式0-基本输入输出方式;方式
9、1-选通输入输出方式;方式2-双向选通输入输出方式。3、引脚信号8255A的引脚如有:分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。D7D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。(chip select):片选信号线,低电平有效时,芯片被选中。A1, A0(port address):地址线,用来选择内部端口。(read):读出信号线,低电平有效时,允许数据读出。(write):写入信号线,低电平有效时,允许数据写入。RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。PA7PA0(port A):A口
10、输入/输出信号线。PB7PB0(port B):B口输入/输出信号线。PC7PC0(port C):C口输入/输出信号线。VCC:5V电源。 GND:电源地线。第三部分 软件设计3.1流程如下主程序中主要是通过初始化8255,然后将PC口设置成为输出口,将PC口与LED灯连接起来。 开始芯片初始化,写8255,8253的方式字延时(通过设置指令的循环次数实现)输入数字“1”,开始运行东西方向绿灯亮,南北方向红灯亮,时间约5秒东西方向黄灯闪烁,南北方向红灯闪烁,扬声器鸣叫,时间约5秒东西方向红灯亮,南北方向绿灯亮,时间约5秒东西方向红灯闪烁,南北方向黄灯闪烁,扬声器鸣叫,时间约5秒是否有按任意键
11、退出?结束程序,退出3.2程序清单data segmentio8255a equ 28ahio8255aa equ 288hio8255b equ 28bhio8253a equ 280hio8253b equ 283hportc1 db 24h,44h,04h,44h,04h,44h,04h ;六个灯可能 db 81h,82h,80h,82h,80h,82h,80h ;的状态数据 db 0ffh ;结束标志string1 db *,0ah,0dh,$string2 db * auto traffic lights *,0ah,0dh,$string3 db *,0ah,0dh,$string
12、4 db *,0ah,0dh,$stringstart db PRESS 1 TO START ,0AH,0DH,$string5 db *,0ah,0dh,$string6 db *,0ah,0dh,$STRINGEND DB PRESS ANY KEY TO EXIT ,0AH,0DH,$string7 db *,0ah,0dh,$table dw 524data endscode segment assume cs:code,ds:datastart: mov ax,data mov ds,ax MOV AH,0FH ; 清屏 INT 10H MOV AH,0h INT 10H LEA
13、DX,string1 MOV AH,09H INT 21H LEA DX,string2 MOV AH,09H INT 21H LEA DX,string3 MOV AH,09H INT 21H LEA DX,string4 MOV AH,09H INT 21H LEA DX,STRINGSTART MOV AH,09H INT 21H LEA DX,string5 MOV AH,09H INT 21HKEY:MOV AH,01H INT 21H CMP AL,1 JNZ KEY MOV AH,0FH ; 清屏 INT 10H MOV AH,0h INT 10H LEA DX,string6
14、MOV AH,09H INT 21H LEA DX,STRINGEND MOV AH,09H INT 21H LEA DX,string7 MOV AH,09H INT 21H mov dx,io8255b mov al,80h out dx,al ;设置8255为C口输出 mov dx,io8255are_on: mov bx,0on: mov al,portc1bx push ax push Bx push Cx push Dx test al , 42h jz contsin: call singcont: pop DX POP CX POP BX POP AX out dx,al cm
15、p al,0ffh jz re_on out dx,al ;点亮相应的灯 inc bx mov cx,250 ;参数赋初值 test al,21h ;是否有绿灯亮 jz de1 ;没有,短延时 mov cx,2000 ;有,长延时de1: mov di,9000 ;di赋初值9000de0: dec di ;减1计数 jnz de0 ;di不为0 loop de1 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz on ;没有,转到onexit: mov ah,4ch ;返回 int 21hsing proc near mov al,31h su
16、b al,31h shl al,1 ;转为查表偏移量 mov bl,al ;保存偏移到bx mov bh,0 mov ax,4240H ;计数初值 = 1000000 / 频率, 保存到AX mov dx,0FH div word ptrtable+bx mov bx,ax mov dx,io8253b ;设置8253计时器0方式3 mov al,00110110B out dx,al mov dx,io8253a mov ax,bx out dx,al ;写计数初值低字节 mov al,ah out dx,al ;写计数初值高字节 mov dx,io8255b ;设置8255 A口输出 mo
17、v al,10000000B out dx,al mov dx,io8255aa mov al,03h out dx,al ;置PA1PA0 = 11(开扬声器) call delay ;延时 mov al,0h out dx,al ;置PA1PA0 = 00(关扬声器 sing endpdelay proc near ;延时子程序 push cx待添加的隐藏文字内容3 push ax mov ax,15x1: mov cx,0ffffhx2: dec cx jnz x2 dec ax jnz x1 pop ax pop cx retdelay endp code ends end start
18、第四部分 系统测试与性能分析4.1系统测试 利用微机实验箱上的8255A并行口、发光二级管以及扬声器,构成发声交通灯控制系统。测试结果与预期相同,东西、南北方向的红、绿灯交错亮灭。进入系统,根据菜单界面提示,按数字“1”开始执行程序;东西方向绿灯亮,南北方向红灯亮;5秒后东西方向绿灯灭,东西方向的黄灯和南北方向的红灯闪烁;5秒后东西方向红灯亮,南北方向绿灯亮;5秒后南北方向绿灯灭,东西方向的红灯和南北方向的黄灯闪烁;5秒后东西方向绿灯亮,南北方向红灯亮;如此循环,知道按下任意键退出,程序结束。4.2测试图示图4-21 图4-22 交通灯界面菜单:按1后自动演示图4-23 交通灯界面菜单:按任意
19、键后退出图4-24按任意键后退出后界面4.3性能分析在本次设计中,使用了8259A中断控制器、8254计数器、8255可编程并行接口实现了,对南北、东西方向交通的分别计时、分别控制,但是程序没有实现对双向交通的数码显示,数码显示模块空缺,会尽快将程序补全,使其具有完整的交通灯功与其他设计相比。 十字道口的红绿灯是交通法规的无声命令,是司机和行人的行为准则。十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。在交通灯的通行
20、与禁止时间控制显示中,通常要么东西、南北两方向各50秒;要么根据交通规律,东西方向60秒,南北方向40秒,时间控制都是固定的。交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。但是,实际上不同时刻的车辆流通状况是十分复杂的,是高度非线性的、随机的,还经常受认为因素的影响。采用定时控制经常造成道路有效应用时间的浪费,出现绿灯方向车辆较少,红灯方向车辆积压。它不顾当前道路上交通车辆数的实际情况变化,其最大的缺陷就在于当路况发生变化时,不能满足司机与路人的实际需要,轻者造成时间上的浪费,重者直接导致交通堵塞,导致城市交通效率的下降。 目前,有一种使用“模糊控制”技
21、术控制交通灯的方法。能够根据十字路口两个方向上车辆动态状况,自动判断红绿灯时间间隔,以保证最大车流量,减少道口的交通堵塞。但是却不像定时控制,能用数字显示器显示当前灯色剩余时间,以便于驾驶员随时掌握自己的驾驶动作,及时停车或启动。本次课程设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。第五部分 总结体会此次实习可以说是获益匪浅。通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。在程序中添加了黄灯闪烁,更加醒目。另外加入能够实现各路口绿灯显示时间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 课程设计 基于 PC 8255 交通灯 电路 系统 设计

链接地址:https://www.31ppt.com/p-4193032.html