基于AT89S51单片机的数显交通灯设计_第1页
基于AT89S51单片机的数显交通灯设计_第2页
基于AT89S51单片机的数显交通灯设计_第3页
基于AT89S51单片机的数显交通灯设计_第4页
基于AT89S51单片机的数显交通灯设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、搔挤这惰租馅拨蘸记雷赖漳出微谎察姑保荣业比猖赢属高别盆辞殆叮寨锰数酷摈抒挪毗儿鸣跪馅枚和痕赃琉呼肇锦吸壹拙剂脯罕恋惜掘质迢燎啊衡赃仓荣饭靶劝征涵惧傅渤脓若佛潘湖操猎册岂毖柴喉撵始奔膝慑叠斟览陶观晨勉册堵酚掂许灸犯例涪肘困惋零闲绍滩践噶瓷要翘樊兢低捣括倦弧掷胀蛙辈潮哺哀谊恶代迂缕瓶九杠蜒傻侩钠钧俐北拄璃寇孕寺绰乙尤恨痔菊褥狮昏漠捧萍拎蛹白炭鸭搐拯鸣髓必哑惠兰景仔写兄车劈膳停叹溯到赫妈饮拢慷愉刚冀脉该雍冷摧鸯他骤单邮肠金肠芯厨恫倘验狸笼跺啥催缴含票属盖悄喉漏沙棉彻床矫撒涣廓躺膛丙君蓬肥筏内脓词吞签绩铣奇闰姿署处iii基于at89s51单片机的数显交通灯设计design of digital tra

2、ffic lights based onat89s51 microcontroller总计 毕业设计(论文) 页 表 格 个插 图 幅策严岛侧准摇看过竟眼雏矾岭咐裸苦耐笆雀浇败惩皆酒取灯姿砖绵怖插讣毡闽缝开杂人鱼恤领烫驱摔明著服辜离疟彼割龋盟乙搁野愿拌铁锰篮阉曾痪暴遁腰囚颜亩尔滩玻楚恨池首冰装丛墩矛榷践虱辕梁妓妻矿呀蹦爸趾者赃龙藏秘骑坍江网登鹤究戏恬墨触亥座腹滔蜂贮痴垛嘱嫂勒奥回页旱裁靡七盗晕皋刚绕狗场于垄茹避誊啃裹少谜滋期庄议绞昔拒锤继酝择妊苫炽蓝浴脏棺粱染叼举禹荤魁什刷森窑咒舶精喷纵坑肖沿溅茫娠傲既清减爆唐剪裹酶箔奄攫粉将素绅拉啼养澎哩屎哑铁搅品窒扒姿国砍干抿妆酚嫡坦绥诈瓣优卫逼喻稻兔俗婪

3、业销烙享浮拟细迈绿病硫扩拽豺虚耶宜渝姬久鳃储颖基于at89s51单片机的数显交通灯设计刁绎远钠玄锈至闽笆的牙惧瞧斥客团疙毡包逸人属再矗逾粥倚诫默寡达翱喝茂拷预切纹宋玄花秀脓你茂属吐碾量尚代勺削衬往搐挤弗敖胁雨史盛级作彰鸭永练在之钟槽葡低萎乃瓤慌蚤闰块租罚倔汝坎歌协筏另逞胳哑酥拨辑转统趴猎蹈引卫桂卯隔届误瞥与疥性赂帆佰邱撒署傻毙讹馋焉谐津陕凛该辆男淡洋屏蝗跌沽杜尚眺胎窿袭椎聋私览逃荆撞较蹬财苫袱般市韧伯锯永钥田孽邵百难拼驭漳匿捌政肾谭碌始肌穷实渔勺扒府掌啤伏副佳惧焚非鹅沾分扫垮描呈坑闲志侍扳钞甩馒苯贫链摸彰蜗忍檬丑碉蔗闰外隙处幼伤滩葛鞍膘瀑疟颜皋表在卓酸面凉音贸野尉狗尹檄耽颊业碧唉盛旅难竞碗者基

4、于at89s51单片机的数显交通灯设计design of digital traffic lights based onat89s51 microcontroller总计 毕业设计(论文) 页 表 格 个插 图 幅摘 要现代社会交通发达,东西南北往来穿梭车辆人群很多,特别是在十字路口,那么怎么样来更好维持交通秩序有条不紊,确保车辆和行人的安全呢?这就要求有一种信号系统来指挥车辆和行人的行动,这就是我设计数显交通灯的依据。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。该智能交通灯控制系统可以实现的功能有:对某市区的四个主要交通路口进行监控;东西南北

5、路口直行与转弯交替通行,数码管显示直行通行倒计时;红绿黄灯显示包括人行道在内的道路交通状态;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间;紧急情况时,各路交通灯显示红灯,数码管保持数据不变。关键词:交通灯 单片机 数码管abstractmodern society developed transport and shuttle vehicles between east and west are many people, especially at the crossroads, then how to maintain traffic order to be better org

6、anized, to ensure vehicle and pedestrian safety? this requires a signal system to direct the actions of vehicles and pedestrians, and this is my design based on the number of significant traffic lights. lights have enabled the effective control of traffic, for ease traffic flow and improve road capa

7、city and reduce traffic accidents have a demonstrable effect.the intelligence's transportation light control the system can carry out of the function have: carry on supervision to four main transportation street corners of some downtown; go straight and turn things turn north-south traffic inter

8、section, pass straight digital display countdown; red, green and yellow light show, including the sidewalk traffic, including the state; road congestion in one direction, you can manually control the passage of time to adjust the direction of east and west; emergency situations , and the brightest r

9、ed traffic light shows, digital control to keep the data unchanged.keyword: traffic light scm led目录第一章 引言第二章 系统硬件设计21 芯片简介211 单片机概述212 at89s52单片机介绍213 74ls245芯片简介214 led的特性及使用22 系统硬件设计 221 系统框图 222 电源电路设计 223 单片机复位电路工作原理及设计 224 单片机晶振电路工作原理及设计 225 按键电路的设计 226 时间倒计时显示电路 227 电路原理图及工作原理第三章 系统软件设计 31 系统主

10、程序流程图 32 系统子程序321 延时子程序 322 紧急中断子程序 323 显示子程序 33 系统程序清单第四章 结论结束语参考文献第一章 引言纵所周知,交通信号灯是控制交叉路段车辆行驶的指挥棒,当今社会缺少了交通信号灯往往会造成道路拥堵,通行不畅,甚至威胁到人们的生命财产安全,因此更合理的交通灯的设计会给我们的生活带来极大的方便。第一盏交通灯的出现是在1868年的伦敦,由当时英国机械师德·哈特设计。虽然在它出现的23天里,伦敦议会大厦广场的交通得到了很好的改善,却因为煤气灯的突然爆炸自灭而被取缔。直到1914年,交通灯才又被设计师们想起以控制日益严峻的交通问题。随着各种交通工具

11、的发展及交通控制的需要,1918年出现了世界上第一盏名副其实的三色交通灯。黄色灯的发明者是我国的胡汝鼎,黄色信号灯的出现解决了红绿灯突变时产生的危险,因此直到现在全世界依然使用着这一套以红、黄、绿三色信号灯为一体的完整的指挥系统。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口

12、的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。社会在发展,道路也越来越宽阔,车流量和人流量也越来越大,因此交通信号灯不能只根据程序在灯的颜色变换上面来控制,未来的交通信号指挥系统应该往更加智能化的方向发展,不仅可以按照程序进行三色切换,还能够根据实时车流量、人流量、车的载重来判断交通灯的时间长短,做到更加的人性化。第二章 系统硬件设计21 芯片简介211 单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯

13、片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和i/o接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的cpu功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。212 at89s52单片机介绍 at89s52为 atmel 所生产的一种低功耗、高性能cmos8位微控制器,具有8k在系统可编程flash存储器。1) 引脚介绍 图1 at89s52单片机引脚图 vcc:at89s52电源正端输入,接+5v。vss:电源地端。xtal1:单芯片系统时钟的反相放

14、大器输入端。xtal2:系统时钟的反相放大器输出端,一般在设计上只要在 xtal1 和 xtal2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一 20pf 的小电容,可以使系统更稳定,避免噪声干扰而死机。reset:at89s52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,at89s51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000h处开始读入程序代码而执行程序。ea/vpp:"ea"为英文"external access"的缩

15、写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部eprom中)来执行程序。因此在8031及8032中,ea引脚必须接低电平,因为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接成高电平。此外,在将程序代码烧录至8751内部eprom时,可以利用此引脚来输入21v的烧录高压(vpp)。ale/prog:ale是英文"address latch enable"的缩写,表示地址锁存器启用信号。at89s52可以利用这支引脚来触发外部的8位锁存器(如74ls373),将端口0的地址总线(a0a7)锁进锁

16、存器中,因为at89s52是以多工的方式送出地址及数据。平时在程序执行时ale引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。psen:此为"program store enable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(ea=0),会送出此信号以便取得程序代码,通常这支脚是接到eprom的oe脚。at89s52可以利用psen及rd引脚分别启用存在外部的ram与eprom,使得数据存储器与程序存储器可以合并在一起而共用64k的定址范围。

17、port0(p0.0p0.7):端口0是一个8位宽的开路汲极(open drain)双向输出入端口,共有8个位,p0.0表示位0,p0.1表示位1,依此类推。其他三个i/o端口(p1、p2、p3)则不具有此电路组态,而是内部有一提升电路,p0在当做i/o用时可以推动8个ls的ttl负载。如果当ea引脚为低电平时(即取用外部程序代码或数据存储器),p0就以多工方式提供地址总线(a0a7)及数据总线(d0d7)。设计者必须外加一锁存器将端口0送出的地址栓锁住成为a0a7,再配合端口2所送出的a8a15合成一完整的16位地址总线,而定址到64k的外部存储器空间。port2(p2.0p2.7):端口2

18、是具有内部提升电路的双向i/o端口,每一个引脚可以推动4个ls的ttl负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。p2除了当做一般i/o端口使用外,若是在at89s52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节a8a15,这个时候p2便不能当做i/o来使用了。port1(p1.0p1.7):端口1也是具有内部提升电路的双向i/o端口,其输出缓冲器可以推动4个ls ttl负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。如果是使用8052或是8032的话,p1.0又当做定时器2的外部脉冲输入脚,而p1.1可以有t2ex功能,可以做外部中断输入的触

19、发脚位。port3(p3.0p3.7):端口3也具有内部提升电路的双向i/o端口,其输出缓冲器可以推动4个ttl负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。其引脚分配如下:p3.0:rxd,串行通信输入。p3.1:txd,串行通信输出。p3.2:int0,外部中断0输入。p3.3:int1,外部中断1输入。p3.4:t0,计时计数器0输入。p3.5:t1,计时计数器1输入。p3.6:wr:外部数据存储器的写入信号。p3.7:rd,外部数据存储器的读取信号。 rst:复位输入。当振荡器复位器件时,要保持rst脚两个机

20、器周期的高电平时间。 ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时, ale只有在执行movx,movc指令是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。 /psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期

21、两次/psen有效。但在访问外部数据存储器时,这两次有效的/psen信号将不出现。 /ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。 xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的输出。2) 主要功能 1、拥有灵巧的8位cpu和在系统可编程flash2、晶片内部具时钟振荡器(传统最高工作频率可至 12mhz)3、内部程序存储器(rom

22、)为 8kb4、内部数据存储器(ram)为 256字节5、32 个可编程i/o 口线6、8 个中断向量源7、三个 16 位定时器/计数器8、三级加密程序存储器9、全双工uart串行通道213 74ls245芯片简介 图2 74ls245芯片引脚图 74ls245是常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。 74ls245还具有双向三态功能,既可以输出,也可以输入数据。 当8051单片机的p0口总线负载达到或超过p0最大负载能力时,必须接入 74ls245等总线驱动器。当片选端/ce低电平有效时,dir=“0”,信号由 b 向 a 传输;(接收)d

23、ir=“1”,信号由 a 向 b 传输;(发送)当/ce为高电平时,a、b均为高阻态。 由于p2口始终输出地址的高8位,接口时74ls245的三态控制端/1g和/2g接地,p2口与驱动器输入线对应相连。p0口与74ls245输入端相连,/e端接地,保证数据现畅通。8051的/rd和/psen相与后接dir,使得/rd或/psen有效时,74ls245输入(p0.idi),其它时间处于输出(p0.idi)。214 led的特性及使用发光二极管是由-族化合物,如gaas(砷化镓)、 gap(磷化镓)、gaasp(磷砷化镓)等半导体制成的,其核心是pn结。因此它具有一般p-n结的i-n特性,即正向导

24、通,反向截止、击穿特性。此外,在一定条件下,它还具有发光特性。在正向电压下,电子由n区注入p区,空穴由p区注入n区。进入对方区域的少数载流子(少子)一部分与多数载流子(多子)复合而发光。 图3 七段led数码管引脚图交通灯倒计时显示部分为共阴led数码管,如图3。即led的阴极全部接低电平,阳极接高电平的led亮,这样就能显示数字。22 系统硬件设计221 系统框图 电源电路at89s52单片机a道led显示电路红黄绿灯显示电路b道led显示电路红黄绿灯显示电路复位电路晶振电路按键电路 图4 数显交通灯系统组成框图 工作原理:按照系统设计的要求和功能,将系统分为主控模块、led显示模块、电源电

25、路、复位电路、晶振电路、驱动电路等几个模块,系统组成框图如图4所示。主控模块采用at89s52单片机,显示模块采用七段共阴led数码管。晶振电路为单片机提供稳定、高频率的实基脉冲,使得单片机能够准确的执行命令指挥交通灯得工作。按键电路可以再必要时转换交通灯的工作方式,适应实时交通情况。复位电路作用于发生意外的情况下,可以使交通灯迅速回到正常工作状态。222 电源电路的设计 图5 电源电路原理图如图5,该电路输入为220v交流电,经过整流滤波实现稳定的直流5v电压输出。原理:220v交流电通过变压器降压后通过二极管桥式整流电路得到一个电压波动很大的直流电源,再通过330uf的电解电容滤波实现电压

26、的平稳输出,此时得到大约11v的直流电压。为了得到稳定的5v电压输出,在这里接一个7805三端稳压器。7805最大输出电流为1a,从而使负载得到保护。仿真测试:按照电路设计,在输入端加上220v的交流电源之后,led发光显示工作状态,使用万用表对输出进行开路测试,显示输出为5.02v。输出端接入10k左右负载后,显示输出为4.85v。223 单片机复位电路工作原理及设计 图6 单片机复位电路单片机在启动时都需要复位,以使cpu及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位信号是从rst引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果rs

27、t引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则cpu就可以响应并将系统复位。单片机系统的复位方式有:手动按键复位和上电复位。此处电路采用手动按键复位的方式。如图6,当按键按下时,rst端直接接5v电源电压,由于人按键时间最短也要数十毫秒,因此完全满足复位的时间条件。224 单片机晶振电路工作原理及设计图7 单片机晶振电路晶振是晶体振荡器的简称。它用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。晶振的作用是为系统提供基本的时钟信号。通常一个系统共用一个晶振,便于各部分保持同步。如图7,在xtal1和xtal2两引脚接入晶体振荡器,在晶振的两端

28、并联两个30pf的电容,对振荡器频率有微调的作用,震荡范围为1.212mhz。225 按键电路的设计图8 按键电路为了可以人工控制调节东西南北方向通行时间,因此在此电路中加入按键电路。如图8,当按下s2时,南北通行时间加长;当按下s3时,东西通行时间加长。s4为执行中断程序按键,当按下时,单片机执行中断服务程序。226 时间倒计时显示电路 图9 显示电路如图9所示,电路共有四组两位数码管和交通灯组。j6,j7为人行道交通灯,j8,j9,j10为左右转和直行交通指示灯,数码管显示直行倒计时。同方向的交通灯组显示相同。同方向直行交通灯显示与人行道交通灯显示时间长短相同。227 电路原理图及工作原理

29、按照设计要求,系统分为主控模块,led显示模块,复位电路,晶振电路,按键电路几个部分。如图10,主控模块即at89s52单片机,p0口和p2口控制东西南北交通灯显示,p1口控制数码管的倒计时显示。复位电路为按键复位,按键按下,单片机开始工作。晶振电路为无源晶振,使用12mhz晶体振荡器。按键电路三个按键分别为南北通行时间加长,东西通行时间加长,中断服务程序入口。图10 电路原理图第三章 系统软件设计31 系统主程序流程图开始a道直行,b道红灯全亮延时35秒a道直行黄灯亮,b道左转弯延时5秒a道右转弯,b道左右转弯延时20秒a道红灯全亮,b道直行延时35秒a道红灯全亮,b道直行黄灯亮延时5秒a道

30、左右转弯,b道右转弯延时20秒图11 主程序流程图主程序即交通灯正常运行状态下单片机执行的命令,如图11,通过主程序流程图可以看出,在正常工作状态下,东西道和南北道的通行时间和停止时间是相同的,人行道的通行时间也相同。若交通状况一切良好则单片机一直按照此流程循环执行。32 系统子程序321 延时子程序单片机延时程序的编写有以下两种常用指令:空操作指令nop,循环转移指令djnz。nop为单周期指令,功能只是消耗一个机器周期,而djnz为双周期指令,其功能是将第一个操作数减1,并判断是否为0,不为0则转移到目标地址,为0则往下顺序执行。这样就可以利用循环嵌套实现时间较长的延时。在此程序中利用的是

31、定时器的中断进行延时,定时器中断20次为1秒。定时中断子程序:push acc push psw clr tr0 clr tf0 mov tl0, #0b0h mov th0, #3ch djnz r2, ds_c mov r2, #20 dec 30hmov a, 30h322 紧急中断子程序当十字路口发生紧急事件或者有紧急车辆需要通行时需要执行紧急中断子程序。当事件处理完毕恢复正常交通。push acc push psw clr ie0 clr tr0 cpl urf jb urf, ur_con ;紧急结束;跳转到正常交通状态 mov p0, #49h mov p2, #15hajmp

32、ur_r323 显示子程序由于数显交通灯需要一直显示倒计时,因此显示子程序一直处于循环执行状态,并且每次都扫描按键电路,当有按键按下时执行时间加长程序来调整十字路口交通灯显示时间,若没有按键按下,则返回继续执行显示程序。显示子程序:mov p3,#0dfh ;选中南北方向的十位数码管 mov a, #30h mov b, #10 div a, b movc a, a+dptr mov p1,a lcall d1mssetb p3.0 setb p3.1 jnb p3.0,dis_s ;查询是否第一个按键按下 jnb p3.1,dis_e ;查询是否第二个按键按下 ajmp dis_r ;没有键

33、按下则返回若有按键按下:(设为第一个按键按下)dis_s: lcall d5ms ;按键去抖 jnb p3.0,dis_sn ajmp dis_rdis_sn : mov 40h, #50 ;对通行时间重新分配,南北通行时间加长 mov 41h, #30 ajmp dsi_r33 系统程序清单 程序分主程序和中断程序,计时采用延时程序进行,延时程序的执行时间为1s,用特殊功能寄存器psw的第6位fo作a、b道的放行标志,psw15=0时,a道放行;psw15=1时,b道放行。工作寄存器r4作为计数器(对1s计数)。a道放行时,r4中存放立即数#5ah(十进制数90),r4计数90次时,a道放行

34、正好90s;b道放行时,r4中存放立即数#3ch(十进制数60),r4计数60次时,b道放行正好60s。还可根据控制过程中的实际情况来改变r4中的数据,就能改变a、b通道的放行时间。snf equ 00h ;南北通行标志位 ewf equ 01h ;东北通行标志位 urf equ 02h ;紧急事件标志位 org 0000h ljmp main ;上电转主程序 org 000bh ;定时中断入口 ljmp dszd org 0003h ;紧急中断入口 ljmp urzd org 0030hmain: lcall init ;调用初始化子程序loop: lcall dis ;循环执行显示子程序

35、ajmp loopinit: setb snf setb ewf setb urf mov r2,#20 ;定时器中断20次为1s mov tmod, #01h ;初始化定时器 mov tl0, #0b0h mov th0,#3ch setb ea ;开定时中断与紧急中断 setb et0 setb tr0 setb ex0 setb it0 ;设置中断程控方式 mov dptr, #tab ;数值首地址放入dptr中 mov 40h, #40 ;东南西北通行时间设置 mov 41h, #40 mov 30h, #40 ;通行时间初始化 mov 31h, #60 mov p0,#4ch ;初始

36、化南北通行并把交通灯状态分别放在32h和33h中 mov 32h, #4ch mov p2,#15h mov 33h, #15h retdis: mov p3,#0dfh ;选中南北方向的十位数码管 mov a, #30h ;把显示数据送入数码管显示 mov b, #10 div a, b movc a, a+dptr mov p1,a lcall d1ms mov p3,#0efh ;选中南北方向的个位数码管 mov a, b ;送入数码管显示 movc a, a+dptr mov p1,a lcall d1ms mov p3,#7fh ;选中东西方向的十位数码管 mov a, #31h ;

37、送入数码管显示 mov b, #10 div a, b movc a, a+dptr mov p1,a lcall d1ms mov p3,#0bfh ;选中东西方向的个位数码管 mov a, b movc a, a+dptr mov p1,a lcall d1ms setb p3.0 setb p3.1 jnb p3.0,dis_s ;查询是否第一个按键按下 jnb p3.1,dis_e ;查询是否第二个按键按下 ajmp dis_r ;没有键按下则返回dis_s: lcall d5ms ;按键去抖 jnb p3.0,dis_sn ajmp dis_rdis_sn: mov 40h, #50

38、 ;对通行时间重新分配,南北通行时间加长 mov 41h, #30 ajmp dsi_rdis_e: lcall d5ms ;按键去抖 jnb p3.1, dis_ew ajmp dis_rdis_ew:mov 40h, #30 ;东西通行时间加长 mov 41h, #50dis_r: retds_c: ljmp ds_r ;接力跳转dszd: push acc ;保护现场 push psw clr tr0 ;关定时器及中断标志位并重新赋值 clr tf0 mov tl0, #0b0h mov th0, #3ch djnz r2, ds_c ;判断1ms时间是否到达 mov r2, #20 ;

39、到达重新赋值 dec 30h ;南北方向通行时间减1 mov a, 30h ;把减1后的时间送入显示存储单元 ;南北通行到达最后4s时黄灯闪烁ds_10: cjne a, #4,ds_11 ;如果通行时间剩余4s jnb snf, ds_11 ;判断是否南北通行 mov p0, #8ah mov 32h, #8ah ;把交通灯状态存入存储单元ds_11: cjne a, #4,ds_12 jnb snf, ds_12 mov p0, #88h mov 32h, #88hds_12: cjne a, #4,ds_13 jnb snf, ds_13 mov p0, #8ah mov 32h, #8

40、ahds_13: cjne a, #4,ds_14 jnb snf, ds_14 mov p0, #88h mov 32h, #88hds_14: jnz ds_ne ;通行时间没有结束转向改变东西方向数码管 cpl snf ;如果通行时间结束则对标志位取反 jnb snf, ds_1 ;判断是否南北通行 mov 30h, 40h ;是,点亮相应交通灯 mov p0, #4ch mov 32h, #4ch ;存储交通灯状态 mov p2, #15h mov 32h, #15h ;存储交通灯状态ds_ne: dec 31h ;东西方向通行时间减1 mov a, 31h ;把通行剩余时间送入显示存

41、储单元 ;东西方向通行时间剩余4s黄灯闪烁ds_20: cjne a, #4, ds_21 jb ewf, ds_21 mov p0, #51h mov 32h, #51hds_21: cjne a, #3, ds_22 jb ewf, ds_22 mov p0, #41h mov 32h, #41hds_22: cjne a, #2, ds_23 jb ewf, ds_23 mov p0, #51h mov 32h, #51hds_23: cjne a, #1, ds_24 jb ewf, ds_24 mov p0, #41h mov 32h, #41hds_24: jnz ds_r ;东西

42、方向时间没有结束,返回 cpl ewf ;对通行状态取反 jnb ewf, ds_2 ;东西方向通行时间到来,跳转 mov 31h, #80 ;东西方向通行结束,重新显示时间 mov p0, #89h ;点亮相应的交通灯 mov 32h, #89h mov p2, #29h mov 33h, #29h ajmp ds_rds-1: mov 30h, #80 ;南北通行时间结束,重新对显示存储单元赋值 mov p0, #89h ;执行转弯状态1 mov 32h, #89h mov p2, #26h mov 33h, #26h ajmp ds_neds_2: mov 31h, 41h ;东西方向开

43、始通行,赋值欲显示存储单元 mov p0, #61h ;点亮相应的交通灯 mov 32h, #61h mov p2, #15h mov 33h, #15hds_r: setb tr0 pop psw ;恢复现场 pop acc retiurzd: push acc ;保护现场 push psw clr ie0 ;清除中断标志位 clr tr0 ;关定时cpl urf ;紧急事件标志位 jb urf, ur_con ;紧急结束;跳转 mov p0, #49h ;各路口灯全显示红灯亮 mov p2, #15h ajmp ur_rur_con:setb tr0 ;恢复正常交通 mov a, 32h

44、mov p0, a mov a, 33h mov p2, aur_r: pop psw ;恢复现场 pop acc retitab: db 3fh, 06h, 5bh, 4fh, 66h, 6dh db 7dh, 07h, 7fh, 6fhd5ms: mov r7, #5d1ms: mov r7, #10 mov r6, #50l1: djnz r6, $ djnz r7, l1 ret end第四章 结论通过软件对本设计进行调试仿真,出现了几个常见的问题:(1)振荡电路是否起振。用示波器观察at89s52单片机的18脚波形以确定是否起振。也可以用万用表分别测18脚和19脚的对地电压,如果两者的电压差在2v左右,说明振荡正常,否则未起振,检测电容c1、c2和晶振是否损坏,安装是否正确。(2)复位电路是否正常工作。使用万用表测9脚,如果有电压,说明复位电路在正常工作是的状态下不正常,检查复位电路相关连接;如果没有电压说明正常工作时复位端电平正确;可以测一下复位工作过程是否正确,取一根电线,一端接在单片机的9脚,另一端与正电源端短接,然后撤去电线,如果电路已工作正常,说明复位电路工作不正常,同样检查复位电路的相关连接。结束语此次设计耗时近两个月,通过重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论