版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录摘 要1.引言11.1选题背景11.2设计要求11.3 本实验中交通信号灯控制达到的要求11.4实验中交通规则的设定与拓展22. 硬件电路的设计与描述22.1双色发光二极管22.2双色灯与数码管显示的对应关系22.3交通灯的状态32.4硬件连线32.5 827芯片简介43. 软件设计流程与描述53.1主程序流程图53.2紧急处理(外部中断0)63.3根据车流量调整红绿灯的时间73.4辅助寄存器的设置83.5 8279控制字83.6定时时间的确定94. 实验心得与体会9参考文献9附录(交通信号灯模拟系统设计的源程序代码)10摘 要当今世界正处于一个自动化时代,交通灯控制等很多行业的设备都需
2、要计算机来控制。因此,一个好的交通灯控制系统能在道路拥挤、违章控制等方面起到很大作用。本文介绍了一个基于单片机的交通信号灯模拟系统的设计。该模拟系统利用单片机中的定时器、io接口、中断系统等资源以及8279芯片,在爱迪克实验装置上实现。在该交通信号灯的控制模拟系统中,用双色灯模拟交通灯,并采用内部中断的方法实现倒计时并显示,同时用外部中断实现全为红灯的控制,用于特殊情况(如急救,出警等)的处理。此外,模拟系统还可通过按键对红绿灯点亮和熄灭时间进行调整,用于两条路线上车流量不同时的及时疏导。关键词:交通灯;单片机;模拟系统;倒计时显示;紧急处理abstractthe contemporary w
3、orld is an automated time, traffic light control equipment for many industries need to control the computer. therefore, a acceptable traffic light control system in road congestion, illegal control play a big role. this article describes a microcomputer-based simulation system for traffic lights. th
4、e simulation system uses microcomputer timer, io interfaces, interrupt systems, resources, and 8279, achieved in adick experimental device. traffic signal control in the simulation system, simulation of traffic lights with light color, and using the method of internal interrupt the countdown counts,
5、 while all the red lights with the external interrupt control, for special circumstances (such as first aid, the police, etc.) processing. in addition, the simulation system can also lit keys on the traffic lights and go out of time to adjust, for the two routes to ease traffic flow is not simultane
6、ous in time.key words: traffic lights; scm; simulation system; countdown show;emergency treatment161引言1.1 选题背景当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。其实这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示
7、“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968
8、年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。1.2 设计要求利用单片机中的定时器、io接口、中断系统等资源,设计一个十字路口交通信号灯的控制模拟系统。首先能利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭。并且可通过按键对红绿灯点亮和熄灭时间进行调整
9、及设置以及能对红绿灯点亮和熄灭时间进行倒计时时间显示。另外,模拟系统可以进行紧急或特殊情况的人工处理控制,有内部24小时钟,能根据时间表对对红绿灯点亮和熄灭时间进行自动调整(如高峰期:7:30-8:30,17:00-18:30或夜间时段红绿灯主次干道时长比等),能根据交通流量自动调整对红绿灯点亮和熄灭时间。1.3 本实验中交通信号灯控制达到的要求(1)利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭。(2)可通过按键对红绿灯点亮和熄灭时间进行调整及设置。(3)能对红绿灯点亮和熄灭时间进行倒计时时间显示。(4)可进行紧急或特殊情况的人工处理控制,灯全部变红。(5)可根据交通流量自动调整对
10、红绿灯点亮和熄灭时间。1.4 实验中交通规则的设定与拓展部分本次实验中规则略有不同,但不影响实际情况。实验中采取了3态循环,即状态1东西红南北绿灯,状态2四个方向均为黄灯闪烁,状态3为东西绿灯南北红灯。若遇病人急救,火警消防等紧急情况,可拨动开关,令东西南北四个方向均显示红灯,让紧急车辆及时顺利的通过。另外,当某一方向车流量明显大于另一方向时,以东西方向为例,可人为调整该方向上红绿灯持续时间之比,以便及时疏通车流,不至于造成交通堵塞。在本实验中,正常状况下,东西南北四个方向上红绿灯每次持续10秒即会改变状态。拨动另一开关调整时间后,可令东西方向上与南北方向上的红绿灯持续发生改变。2. 硬件电路
11、的设计与描述2.1 双色发光二极管双色发光二极管是将一个红色led管芯和一个绿色led管芯封装在一起、公用负端的一个集成器件。当红色正端加高电平,绿色正端加低电平时,红灯亮;红色正端加低电平,绿色正端加高电平时,绿灯亮;两端都加高电平时,黄灯亮。实验中,采用4只双色发光二极管(dled)分别模拟安装在东、西、南、北4个路口上的4只交通灯,每只双色发光二极管由74ls240反向驱动器驱动,74ls240输入控制端为dr和dg,分别控制dled红灯和黄灯的工作。具体控制如下:表1. 双色发光二极管的控制drdg显示颜色00红+绿=黄01红10绿11不发光2.2 双色灯与数码管显示的对应关系数码管编
12、号76543210名称dr4dr3dr2dr1dg4dg3dg2dg1颜色红红红红绿绿绿绿对应方向南东西北南东西北2.3 交通灯的状态(1)正常状态:状态数值持续时间工作状况110010110(96h)5秒东西红灯南北绿灯211111111(ffh)1秒东西南北黄灯闪烁301101001(69h)5秒东西绿灯南北红灯4(2)11111111(ffh)1秒东西南北黄灯闪烁(2)紧急状态状态数值持续时间工作状况101010101(55h)一直东西南北全部红灯(3)根据车流量调整状态数值持续时间工作状况110010110(96h)可设置东西红灯南北绿灯211111111(ffh)可设置东西南北黄灯闪
13、烁301101001(69h)可设置东西绿灯南北红灯4(2)11111111(ffh)可设置东西南北黄灯闪烁每一种状态的时间都可以设置,其中状态2和状态4为同一种状态。2.4 硬件连线(1)采用p1口输出,p1.0p1.7分别与dg1,dr1,dg2,dr2,dg3,dr3,dg4,dr4相连;(2)p3.2和p3.3分别与按键开关k1、k2相连,k1的优先级高于k2;(3)在爱迪克实验教学机上,数码管和8279内部已经连接好,不需再连线。 p1口的基本连线如图所示:2.5 8279使用简介8279 是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广
14、泛。8279内部有键盘 fifo(先进先出堆栈)/传感器,双重功能的 8*8=64b ram,键盘控制部分可控制 8*8=64 个按键或 8*8 阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示 ram容量为 16*8,即显示器最大配置可达 16 位 led 数码显示。8279 有三种工作方式:键盘方式、显示方式和传感器方式。(1) 键盘工作方式 8279 在键盘工作方式时,可设置为双键互锁方式和 n 键循回方式。双键互锁方式:若有两个或多个键同时按下时,不管按键先后顺序如何,只能识别最后一个被释放的键,并把该键值送入 fifo ram 中。n 键循回方式:一次按下任意个键均可被
15、识别,按键值按扫描次序被送入 fifo ram 中。 (2) 显示方式8279 的显示方式又可分为左端入口和右端入口方式。显示数据只要写入显示 ram,则可由显示器显示出来,因此显示数据写入显示 ram 的 顺序,决定了显示的次序。左端入口方式即显示位置从显示器最左端 1 位(最高位)开始,以后显示的字符逐个向右顺序排列;右端入口方式即显示位置从显示器最右端 1 位(最低位)开始,已显示的字符逐个向左移位。但无论左右入口,后输入的总是显示在最右边。(3) 传感器方式 传感器方式是把传感器的开关状态送入传感器 ram 中。当 cpu 对传感器阵列扫描时, 一旦发现传感器状态发生变化就发出中断请求
16、(irq 置 1),中断响应后转入中断处理程序。 实验箱内8279连接线路图如下所示,8279的数据口为0ff80h,状态/命令口地址为0ff82h。3. 软件设计流程与描述3.1 主程序流程图初始状态开关k1、k2均置为高电平,不做任何人工处理。开始初始状态东西南北都是红灯倒计时5秒 关中断状态1东西红灯南北绿灯状态2东西南北黄灯闪烁1秒状态3东西绿灯南北红灯倒计时5秒状态4东西南北黄灯闪烁1秒3.2 紧急处理(中断服务程序)开关k1置为低电平,产生外部中断0请求信号,处理紧急状态外部中断0入口保护现场东西南北全为红灯恢复现场中断返回3.3 根据车流量调整红绿灯显示时间开关k2置为低电平,开
17、关k1置为高电平,产生外部中断1请求信号,对红绿灯的显示时间进行调整。开始k2置为低电平是否为e键按下扫描键盘是否为a键按下n是否为b键按下是否为c键按下ynnn设置红灯亮的时间(0-99秒)设置绿灯亮的时间(0-99秒)设置黄灯亮的时间(0-99秒)是否为d键按下是否为d键按下是否为d键按下nnnyyy时间设置结束返回3.4 辅助寄存器的设置辅助寄存器r0r1r2r3设置flag标志位数码管显示位置数码管显示值辅助寄存器r4r5r6r7设置南北方向计数初值东西方向计数初值计数器初值秒常数3.5 8279控制字(1)8279命令字及其格式8279 的各种工作方式都要通过对命令寄存器的设置来实现
18、。8279 共有 8 种命令,通过这些命令设置工作寄存器,来选择各种工作方式。命令寄存器共 8 位,格式为: d7 d6 d5 d4 d3 d2 d1 d0命令类型 命令内容 如上,8279 的一条命令由两大部分组成,一部分表征命令类型,为命令特征位,由命令寄存器高 3 位 d7-d5 决定。d7-d5 三位的状态可组合出 8 种形式,对应 8 类命令。另一部分为命令的具体内容,由 d4-d0 决定。每种特征所代表的命令如下表所示8279 命令特征表d7 d6 d5代表的命令类型0 0 0键盘/显示命令0 0 1时钟编程命令0 1 0读 fifo/传感器 ram 命令0 1 1读显示器 ram
19、 命令1 0 0写显示命令1 0 1显示禁止/熄灭命令1 1 0清除命令1 1 1结束中断/出错方式设置命令(2)8279状态字及其格式状态字显示出 8279 的工作状态。状态字和 8 种命令字共用一个地址口。当 a0=1 时,从 8279 命令/状态口地址读出的是状态字。状态字各位意义如下:d7:d7=1 表示显示无效,此时不能对显示 ram 写入。d6:d6=1 表示至少有一个键闭合;在特殊错误方式时有多键同时按下错误。d5:d5=1 表示 fifo ram 已满,再输入一个字则溢出。d4:d4=1 表示 fifo ram 中已空,无数据可读。d3:d3=1 表示 fifo ram 中数据
20、已满。d2-d0:fifo ram 中数据个数。显然,状态字主要用于键盘和选通工作方式,以指示 fifo ram 中的字符数及有无错误发生。3.6定时时间的确定采用软件延时的方法进行定时,从而维持交通灯某一时段的工作状态。执行如下为延时程序段。注释项“;”后面的数值表示执行该条指令所用的时间,以机器周期为单位。 movr1,#t1 ; 1loop: movr2,#t2 ; 1 djnz r2,$ ; 2 djnz r1, loop ; 2执行上述程序所需要的时间t=(2t2+1+2) 20+1 (1t1256,1t2256)。当t1=t2=256时,最大延迟时间tmax=131841个机器周期
21、。实验装置使用的晶振频率为11.0592mhz,将tmax折算成实际时间=13184112/11059200143ms;类似当t1=t2=1时,最小延迟时间tmin=6个机器周期。故当需要延迟规定的时间 (用符号tw表示,tmintwtmax),可在先确定t2的前提下,用公式t1=(tw-1)/(2t2+3) (1)算出t1的数值,或在先确定t1的前提下,用公式t2=(tw-1)/t1-3)/2 (2)算出t2的数值,注意这里的tw必须用机器周期作为单位。例如若需要50ms的延迟时间,先将500ms折算成机器周期数并确定t1=256,再利用公式(2),就可得出t2=(50100011.0592
22、/12-1)/256-3)/2884. 实验心得与体会实验课可以促进我们的动手能力,尤其是自主性设计实验,意义更加突出。在实验课中,不仅是对知识的理解,更是对我们动手操作以及遇到问题时,发现问题解决问题这种能力的锻炼与提高。对于自主性设计实验,不仅要求我们对知识的深刻理解,而且需要我们对知识的应用环境有足够的认识。只有这样,才能做好设计性实验。本次实验对我们编写汇编程序是一次提高。对于较长较大的程序,不需要逐句地去编写,而是需要我们从已有的程序中去发现、去获得哪些有用的模块然后根据自己的需要和程序需要达到的功能,去进行整合和调试修改。实验报告的要求不同于其他实验,而是较为正式,与论文格式相近。
23、同时在写报告时用到了多种工具软件,如visio画流程图、protel画简单电路图等,这种要求对我们以后的毕业设计、科研中科技论文的撰写都有很大帮助。参考文献1 李朝青编著. 单片机原理及接口技术. 北京:北京航空航天大学出版社,2004年7月2 茹国宝 刘克刚编. 单片机原理及应用实验指导书. 武汉大学电子信息学院3 周荷琴 吴秀清编著. 微型计算机原理与接口技术.第三版. 中国科学技术大学出版社,2004年12月附 录交通信号灯模拟系统设计的源程序代码:;-z8279 equ 0ff82h ;8279 状态/命令口地址d8279 equ 0ff80h ;8279 数据口地址ledmod eq
24、u 10h ;左边输入 八位字符显示 ;外部译码键扫描方式,双键互锁ledfeq equ 39h ;扫描速率ledcls equ 0d1h ;清除显示 ramledwr0 equ 90h ;设定的将要写入的显示ram地址allred equ 55h ;全红allyel equ 00h ;全黄red equ 69h ;南北绿灯,东西红灯grn equ 96h ;南北红灯,东西绿灯gapry data 30h ;红黄灯间隔gapyg data 31h ;黄绿灯间隔gapgr data 32h ;绿红灯间隔cnt data 33hcur_t data 34hlight data p1 hh data
25、 35hll data 36hedis_t bit 00h ;允许时间显示标志isred bit 01hisyel bit 02hisgrn bit 03hisallred bit 04h set_ry bit 05hset_yg bit 06hset_gr bit 07hpre bit 08h;-org0000hljmp mainorg0003h;外部中断0int0ljmp int0org0013h;外部中断1int1ljmp emergencyorg001bh ;定时器1溢出中断int_t1ljmptimermain:movsp,#60hlcallinit8279mov20h,#00h;初
26、始化地址为20h的存储空间mov21h,#00hclr10h; 外部中断1的标志位清零movr1,#00h; r1存放标志寄存器的状态mov tmod,#10h mov tl1,#00h ;50 ms 的时间常数 mov th1,#04ch mov r7,#20 setb tr1 mov ie,#8dh ; 开中断beginset: jnb00h,weset5movr5,#15h ;初始化红绿灯显示时间ljmpsetnsweset5:movr5,#15hsetns: jnb 01h,nsset5 mov r4,#15h ljmpsetnum;nsset5:movr4,#15hsetnum:jn
27、b08h,setnumwe;不为零,则跳转movr6,4;mov 10h,#69h; 显示南北红东西绿ljmpexitsetsetnumwe:movr6,5mov 10h,#96h ;南北绿灯,东西红灯exitset:here:mova,10hmovp1,ared:jnb10h,lightpushaccmova,#0fh ;紧急状况,全红movp1,apopaccljmpredlight:lcall display; 输出r6的数值cjner6,#00h,here; if r1 !=0 then go on searchinc21h; case+lcallflash; 黄灯闪烁1sljmpbe
28、ginsetflash:pushdphpushdplpushaccmovr6, #01hmovr7,#20repeat:movb,#5mova,r7divabmovr0,acjner0, #0h, flash1ljmpclearflash1:djnzr0,flash2ljmpyellowflash2:djnzr0,flash3ljmpclearflash3:djnzr0,clearyellow:mova,#0ffh;全黄ljmpexitflshclear:mova,#0;全零exitflsh:movp1,a; cjner6,#00h,repeat;闪烁未完,继续 pop acc pop dpl
29、 pop dph retint0: query: acall wait_key cjne a, #0eh, query ;检测按键是否为e acall wait_key cjne a, #0ah, nxtq1 setb set_ry lcall settime sjmp querynxtq1: cjne a, #0bh, nxtq2 ;检测按键是否为b setb set_yg lcall settime sjmp querynxtq2: cjne a, #0ch, query setb set_gr lcall settime sjmp querywait_key: push dph push
30、 dpl mov dptr, #z8279wait_key1: movx a, dptr anl a, #0fh jz wait_key1 mov dptr, #d8279 movx a, dptr pop dpl pop dph ret settime: clr edis_t ;关时钟显示 mov r1, #hh ;r1指向要保存数据的首地址 mov dptr, #z8279 mov a, #ledcls movx dptr, a ;清显示ram mov b, #84hkey_t: acall wait_key mov r1, a ;保存键值 inc r1 cjne a, #0ch, dis
31、key ;不为c则显示按键mov a, hhmov b, #0ahmul abadd a, lljnb set_ry, st_nxt1mov gapry, aclr set_rysjmp st_rtust_nxt1:jnb set_yg, st_nxt2mov gapyg, aclr set_ygsjmp st_rtust_nxt2:jnb set_gr, st_rtumov gapgr, aclr set_grsjmp st_rtudiskey: push acc mov a, b dec b mov dptr, #z8279 movx dptr, a pop acc mov dptr, #
32、d8279 lcall dis_num sjmp key_tst_rtu: mov dptr, #z8279 mov a, #ledcls movx dptr, a setb edis_t ;开时钟显示 ret no_dis:mov a, cur_tcjne a, #0, t1_rtujnb isallred, t1_nxt1mov light, #redmov cur_t, gapryclr isallredsetb isredsjmp t1_rtut1_nxt1:jnb isred, t1_nxt2mov light, #allyelmov cur_t, gapygclr isredset
33、b presetb isyelsjmp t1_rtut1_nxt2:jnb isyel, t1_nxt5jnb pre, t1_nxt3mov light, #grnmov cur_t, gapgrsetb isgrnsjmp t1_nxt4t1_nxt3:mov light, #redmov cur_t, gaprysetb isredt1_nxt4:clr isyelsjmp t1_rtut1_nxt5:jnb isgrn, t1_rtumov light, #allyelmov cur_t, gapygclr isgrnclr presetb isyelt1_rtu: pop dpl p
34、op dph pop acc retiinit8279: mov dptr, #z8279 mov a, #ledcls movx dptr, ainit82791: movx a, dptr jb acc.7, init82791 mov a, #ledmod movx dptr, a mov a, #ledfeq movx dptr, a retdis_time: mov a, cur_t mov b, #0ah div ab mov r0, a mov r1, bdis_time1: mov dptr, #z8279 mov a, #84h movx dptr, a mov a, r0 mov dptr, #d8279acall dis_nummov a, #83h mov dptr, #z8279 movx dptr, a mov a, r1 mov dptr, #d8279 acall dis_num ret dis_num: add a, #02h movc a, a+pc movx dptr, a ret retiemergencycpl 10h retiinit8279: push dph ;8279初始化子程序 push dpl push acc lcall delay ;延时 mov dptr ,#z8279 mov a,#led
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年住宅小区园林景观工程承揽协议版B版
- 暨南大学《和声学》2023-2024学年第一学期期末试卷
- 济宁学院《武术Ⅰ》2021-2022学年第一学期期末试卷
- 全新版权许可使用合同2024年度4篇
- 安全生产常识 第3版 课件 第五章 职业安全技术
- 2024年度防洪应急预案施工合同2篇
- 2024年上半年综治工作总结
- 前台收银员2024年终工作总结
- 2024年师范生个人顶岗实习总结
- 社会保险医疗保险
- 大学生职业生涯规划与就业指导课件(全套)
- WPS Office办公软件实例教程(微课版)完整全套教学课件
- 下肢动脉硬化闭塞症
- 安全工程-突发事件的应急管理概论及应急体系建设论文
- 关于日本动漫介绍ppt
- 煤矿提升机司机安全操作课件
- 骑马下海的人
- 农药安全科学使用技术
- 计算机网络实验教程PPT完整全套教学课件
- 2023北航飞行器空气动力学试卷
- 基于“教学评一体化”的初中英语阅读教学策略探讨
评论
0/150
提交评论