广东外语外贸大学信息科学技术学院《微型计算机接口技术》大作业设计报告基于8255,8253的发声人性化交通灯控制设计日期:2011-1-7摘要十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。
井然秩序的实现,靠的是交通信号灯的自动指挥系统。
交通信号灯控制方式有很多。
本系统采用8255A芯片实现了A口设置红、绿、黄灯点亮时间的功能,从而控制LED发光二极管实现红、黄、绿灯循环点亮。
另外结合日常生活经验,并且从亚残会中对残疾人的生活不便中得出感悟,采用8253进行控制扬声器,在红、绿灯变换之间黄灯闪烁时,同时添加了“声音提示"功能。
整个系统具有固定的“红灯—黄灯—绿灯”转换间隔,并自动切换,对东西南北方向的道路进行“自动”的控制。
但是,经过小组成员提出的各种假设,发现此系统需要加入更多人性化的元素:交警可以根据实际的路面情况,针对不同的突发事件,进行手工控制红绿灯的转换。
例如救护车警车执行紧急任务;例如东西道路塞车,南北道路空闲无车辆行驶时,需要灵活调节红绿灯的转化。
通过8255并口控制,可以达到更加人性化的效果从而方便各种人群。
关键字:8255 交通灯控制8253 发声人性化第一部分概论1.1设计任务:交通信号灯的控制(1)通过8255并行接口来控制LED发光二极管的亮灭,并适当延时。
(2)黄灯闪烁时,通过8253控制扬声器发出声音,以提醒灯的转换。
(3)通过8255并口控制,人工进行交通灯的转换。
1.2 任务要求(1)南北路口的绿灯、东西路口的红灯同时亮5秒左右。
(2)南北路口的黄灯闪烁若干次,扬声器鸣叫,同时东西路口的红灯闪烁。
(3)南北路口的红灯、东西路口的绿灯同时亮5秒左右。
(4)南北路口的红灯闪烁、同时东西路口的黄灯亮闪烁若干次,扬声器鸣叫。
(5)转(1)重复。
紧急情况可以手动控制红绿灯的变换。
1.3设计原理本次课程设计是交通灯实时控制器,主要是用发光二极管模拟十字路口的红绿灯。
交通灯控制器的设计与实现主要是通过编写汇编语言程序利用8255的C 口对灯的亮与灭进行控制,用8253对扬声器的发声进行控制。
装有定时计数器8253芯片和可编程接口8255芯片,研究了扬声器发声的软件控制过程,利用软件编程给定8253芯片某一频率的方波信号,并且设定8255芯片的门控信号PA0 =1和PA1 =1 ,则可控制扬声器发声。
第二部分硬件设计2.1线路示意图8255连接图:8253连接图:2.2硬件连接图:第三部分软件设计3.1流程如下主程序中主要是通过初始化8255,然后将PC口设置成为输出口,将PC口与LED灯连接起来。
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,'$' string4 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 segmentassume cs:code,ds:datastart:mov ax,datamov ds,axMOV AH,0FH ; 清屏 INT 10HMOV AH,0hINT 10HLEA DX,string1MOV AH,09HINT 21HLEA DX,string2MOV AH,09HINT 21HLEA DX,string3MOV AH,09HINT 21HLEA DX,string4MOV AH,09HINT 21HLEA DX,STRINGSTART MOV AH,09HINT 21HLEA DX,string5MOV AH,09HINT 21HKEY:MOV AH,01HINT 21HCMP AL,"1"JNZ KEYMOV AH,0FH ; 清屏 INT 10HMOV AH,0hINT 10HLEA DX,string6MOV AH,09HINT 21HLEA DX,STRINGENDMOV AH,09HINT 21HLEA DX,string7MOV AH,09HINT 21Hmov dx,io8255bmov al,80hout dx,al ;设置8255为C口输出 mov dx,io8255are_on: mov bx,0on: mov al,portc1[bx]push axpush Bxpush Cxpush Dxtest al , 42hjz contsin: call singcont: pop DXPOP CXPOP BXPOP AXout dx,alcmp al,0ffhjz re_onout dx,al ;点亮相应的灯inc bxmov cx,250 ;参数赋初值test al,21h ;是否有绿灯亮jz de1 ;没有,短延时mov cx,2000 ;有,长延时de1: mov di,9000 ;di赋初值9000 de0: dec di ;减1计数jnz de0 ;di不为0loop de1push dxmov ah,06hmov dl,0ffhint 21hpop dxjz on ;没有,转到onexit: mov ah,4ch ;返回int 21hsing proc nearmov al,31hsub al,31hshl al,1 ;转为查表偏移量mov bl,al ;保存偏移到bxmov bh,0mov ax,4240H ;计数初值 = 1000000 / 频率, 保存到AX mov dx,0FHdiv word ptr[table+bx]mov bx,axmov dx,io8253b ;设置8253计时器0方式3mov al,00110110Bout dx,almov dx,io8253amov ax,bxout dx,al ;写计数初值低字节mov al,ahout dx,al ;写计数初值高字节mov dx,io8255b ;设置8255 A口输出mov al,10000000Bout dx,almov dx,io8255aamov al,03hout dx,al ;置PA1PA0 = 11(开扬声器)call delay ;延时mov al,0hout dx,al ;置PA1PA0 = 00(关扬声器sing endpdelay proc near ;延时子程序push cxpush axmov ax,15x1: mov cx,0ffffhx2: dec cxjnz x2dec axjnz x1pop axpop cxretdelay endpcode endsend start第四部分系统测试与性能分析4.1系统测试利用微机实验箱上的8255A并行口、发光二级管以及扬声器,构成发声交通灯控制系统。
测试结果与预期相同,东西、南北方向的红、绿灯交错亮灭。
进入系统,根据菜单界面提示,按数字“1”开始执行程序;东西方向绿灯亮,南北方向红灯亮;5秒后东西方向绿灯灭,东西方向的黄灯和南北方向的红灯闪烁;5秒后东西方向红灯亮,南北方向绿灯亮;5秒后南北方向绿灯灭,东西方向的红灯和南北方向的黄灯闪烁;5秒后东西方向绿灯亮,南北方向红灯亮;如此循环,知道按下任意键退出,程序结束。
4.2测试图示图4-21图4-22 交通灯界面菜单:按1后自动演示图4-23 交通灯界面菜单:按任意键后退出图4-24按任意键后退出后界面4.3性能分析本系统实现了交通灯自动变换的基本功能,并通过扬声器提醒灯的转换,使系统更人性化。
利用编程给定8253芯片某一频率的方波信号,控制扬声器发声。
但缺点是用8255递减的方法不能很精确地计算和控制灯亮的时间。
但本次试验的主要目的是通过灯闪速的同时,鸣叫扬声器提醒行人,以达到人性化的效果。
第五部分总结体会5.1课程体会(1)想法很重要。
设计的思想很大程度上决定了实验的高度。
根据亲身的考察和体验,红绿灯加入扬声器这一人性化的功能,提醒行人有很大的实际意义。
除了此项功能,我们也一直在寻找其他的新功能,例如加人行通道的红绿灯,绿灯时播放音乐,以及温馨提示。
但是由于条件资源的限制,我们只能通过8255和8253控制扬声器的鸣叫。
但是也达到了实验的目的。
(2)汇编语言知识和微机原理知识要扎实。
通过这次实验,我们小组三个成员受益匪浅。
实验的完成需要扎实的基础知识,于是我们回去复习了汇编语言的书籍,查阅了相关文献和资料。
这次实验不仅是对课程内容掌握程度的一次考验,而且是一次很好的训练机会,训练了我们查找资料的能力。
通过此次课程设计的锻炼,自己的动手能力有了很大的提高,查找问题、解决问题的能力也有了相应的进步。
(3)做实验,总要信。
在本次的实验过程中,遇到很多我们无法解决的问题。
经过我们小组成员间的相互讨论,寻求同学的指导,就把自己发觉不到的错误找出来了,从而继续进行实验。
过程中遇到很多困难,几天都呆在寒冷的实验室,途中也会遇到挫折,毫无头绪的时候。