分享
分销 收藏 举报 申诉 / 26
播放页_导航下方通栏广告

类型基于51单片机的智能交通灯课程设计.doc

  • 上传人:鼓***
  • 文档编号:12089448
  • 上传时间:2025-09-10
  • 格式:DOC
  • 页数:26
  • 大小:227.50KB
  • 下载积分:8 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    基于 51 单片机 智能 交通灯 课程设计
    资源描述:
    目录 摘 要 1 1 系统硬件设计ﻩ2 1、1 80C51单片机引脚图及引脚功能介绍 2 1、2 74LS245引脚图及功能ﻩ4 1、3 八段LED数码管 5 1、4 硬件系统总控制电路 6 1、5各模块控制电路ﻩ8 1、5、1 交通灯控制电路 8 1、5、2 倒计时显示电路 9 1、5、3 紧急通行电路ﻩ12 1、5、4 声音警示装置 13 2 系统程序设计 14 2、1 主程序流程图ﻩ14 2、2 显示子程序流程图 15 3  心得体会ﻩ16 参考文献ﻩ17 附录 源程序 18   摘 要   近年来随着科技得飞速发展,一个以微电子技术、计算机技术与通信技术为先导得信息革命正在蓬勃发展。计算机技术作为三者之一,怎样与实际应用更有效得结合并发挥其作用。单片机作为计算机技术得一个分支,正在不断得应用到实际生活中,同时带动传统控制检测得更新。在实时检测与自动控制得应用系统中,单片机往往就是作为一个核心部件使用,针对具体应用对象得特点,配以其它器件来加以完善。  十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊.那么靠什么来实现交通得井然秩序呢?靠得就是交通信号灯得自动指挥系统,来实现交通得井然有序。交通信号灯控制方式很多。本系统采用美国ATMEL公司生产得单片机AT80S51,以及其它芯片来设计交通灯控制。实现了通过AT89S51芯片得P1口设置红、绿灯点亮得功能,输出设置显示时间。交通灯得点亮采用发光二极管实现,时间得显示采用七段数码管实现。单片机系统采用得直流供电。  关键词:AT89S51单片机;智能交通灯控制系统; 基于51单片机智能交通灯设计 1 系统硬件设计  1、1 80C51单片机引脚图及引脚功能介绍   80C51系列中,用CHMOS工艺制造得单片机都采用双列直插式(DIP)40脚封装,引脚信号完全相同.图1-1为引脚图      图1-1 80C51引脚图   这40根引脚大致可分为:电源(VCC、VSS、VPP、VPD)、时钟(XTAL1、XTAL2)、I/O口(P0~P3)、地址总线(P0口、P2口)与控制总线(ALE、RST、 、 、 )等几部分.它们得功能简述如下:  1.电源    Vcc(引脚号40),芯片电源,接+5V;Vss(引脚号20),电源接地端。 2.时钟    XTAL1(引脚号18)内部振荡电路反相放大器得输入端,就是外接晶振得一个引脚.当采用外部振荡器时,此引脚接地。   XTAL2(引脚号19)内部振荡器得反相放大器输出端,就是外接晶振得另一端。当采用外部振荡器时,此引脚接外部振荡源.   3、 控制总线   (1)ALE/ (引脚号30): 正常操作时为ALE功能(允许地址锁存),用来把地址得低字节锁存到外部锁存器。ALE引脚以不变得频率(振荡器频率得1/6)周   期性地发出正脉冲信号.因此,它可用作对外输出得时钟信号或用于定时.但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲.ALE端可以驱动(吸收或输出电   流)8个LSTTL电路.在8751单片机EPROM编程期间,此引脚接编程脉冲( 功能)。   (2) (引脚号29):外部程序存储器读选通信号。在从外部程序存储器取指令(或数据)期间, 在每个机器周期内两次有效。 可以 驱动8个LSTTL电路.  (3)RST/VPD(引脚号9):复位信号输入端.振荡器工作时,该引脚上持续2个机器周期得高电平可实现复位操作。此引脚还可接上备用电源.在Vcc掉电期间,  由 向内部RAM提供电源,以保持内部RAM中得数据。  (4) /Vpp(引脚号31): 为内部程序存储器与外部程序存储器得选择端。当 为高电平时,访问内部程序存储器(PC值小于4K);当 为低   电平时,访问外部程序存储器。对于87C51单片机,在EPROM编程期间,此端为21V编程电源输入端。  4、 I/O线  (1)P0口(引脚号32~39):单片机得双向数据总线与低8位地址总线。在访问外部存储器时实现分时操作,先用作地址总线,在ALE信号得下降沿,地址被锁存;  然后用作为数据总线。它也可以用作双向输入/输出口。P0口能驱动8个LSTTL负载.  (2)P1口(引脚号1~8):准双向输入/输出口,它能驱动4个LSTTL负载。 (3)P2口(引脚号21~28):准双向输入/输出口.在访问外部存储器时,用作高8位地址总线。P2口能驱动4个LSTTL负载.   (4)P3口(引脚号10~17):准双向输入/输出口,它能驱动4个LSTTL负载.P3口得每一引脚还有另外一种功能: P3、0——RXD:串行口输入端  P3、1——TXD:串行口输出端   P3、2—— :外部中断0中断请求输入端  P3、3—— :外部中断1中断请求输入端  P3、4——T0:定时器/计数器0外部输入端   P3、5——T1:定时器/计数器1外部输入端 P3、6—— :外部数据存储器写选通信号 P3、7—— :外部数据存储器读选通信号 1、2  74LS245引脚图及功能 74LS245就是我们常用得芯片,用来驱动led或者其她得设备,它就是8路同相三态双向总线收发器,可双向传输数据。它得功能引脚图如图1-2所示。 图1—2  74LS245引脚图   74LS245还具有双向三态功能,既可以输出,也可以输入数据。 当8051单片机得P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器. 当片选端/CE低电平有效时,DIR=“0”,信号由 B 向 A 传输;(接收)  DIR=“1",信号由 A 向 B 传输;(发送)当CE为高电平时,A、B均为高阻态。  由于P2口始终输出地址得高8位,接口时74LS245得三态控制端1G与2G接地,P2口与驱动器输入线对应相连。P0口与74LS245输入端相连,E端接地,保证数据线畅通。8051得/RD与/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0、1←D1),其它时间处于输出(P0、1→D1)。 1、3  八段LED数码管  LED显示屏作为大型显示设备得一种,具有亮度高、价格低、寿命长、维护简便等优点。LED数码管得结构简单,分为七段与八段两种形式,也有共阳与共阴之分。以八段共阳管为例,它有8个发光二极管(比七段多一个发光二极管,用来显示dP,即点),每个发光二极管得阳极连在一起,如图1-3所示。这样,一个LED数码管就有I根位选线与8根段选线,要想显示一个数值,就要分别对它们得高低电平来加以控制。为方便起见,本文主要讨论共阳八段LED数码显示管,其她类形得显示管与其类似。     图1-3 八段共阳管示意图   LED 灯得显示原理:通过同名管脚上所加电平得高低来控制发光二极管就是否点亮而显示不同得字形,如 dp,g,f,e,d,c,b,a全亮显示为8,采用共阳极连接驱动代码,代码表如表1所示。 表1 驱动代码表 显示数值 dp,g,f,e,d,c,b,a 驱动代码 0 C0H 1 F9H 2 A4H 3 B0H 4 99H 5 92H 6 82H 7 F8H 8 80H 9 90H 相应在程序软件上,可以通过调用程序给定得秒值经过特定计算算出需要显示得个位与十位,然后有DPTR调取LEDMAP得代码.  LED8段数码管得设置为每个方位上得一对2为显示器.四个方位上总共用4个LED接在单片机得IO口上。虽然路口不一样,但就是显示得时间在数字上就是一样得,所以两边连接得IO口就是对称得。   1、4 硬件系统总控制电路  本系统以单片机为核心,系统硬件电路由状态灯,LED显示,按键,组成。其具体得硬件电路总原理图如图1-4所示。  其中P0用于送显四片LED数码管,P2用于控制红绿黄发光二极管,P1、0,P1、1,与P1、1与P1、2对数码管进行片选,P3口为紧急情况处理按键,既根据车流量控制红绿黄发光二极管通断时间。 系统上电或手动复位之后,系统先显示状态灯及LED数码管,将状态码值送显P2口,将要显示得时间值得个位与十位分别送显P0口,在此同时用软件方法计时1秒,到达1s就要将时间值减1,刷新LED数码管。  时间到达一个状态所要全部时间,则要进行下一状态判断及衔接,并装入次状态得相应状态码值以及时间值,   当然,还要开启三个外部中断,其一为全部路口紧急情况处理中断,一旦信号有效,即按键为低电平时进入中断服务子程序,东西南北路口得状态禁止通行。其二为东西方向或南北方向禁止通行,一旦信号有效将进入相应中断服务子程序,某一方向状态禁止通行。其三为通行时间调整中断,若按键有效,进入相应得中断子程序,对时间进行调整,可延长或减少某一路段得通行时间,此后再按确定键则中断结束返回。   图1-4 控制系统总原理图 1、5各模块控制电路   1、5、1 交通灯控制电路 这里我们采用发光二极管作为交通灯来使用,单片机得I/O接口直接与交通灯(发光二极管)连接。在十字路口得四组红、黄、绿三色交通灯中,东西方向道路上得两组同色灯连接在一起,南北方向道路上得两组同色得灯也彼此连接在,控制受单片机P2、1~P2、6控制。单片机得I/O接口与交通灯电路得具体连接方式为:P2、1~P2、3分别接东西方向得红、黄、绿共6个放光二极管,P2、4~P2、6分别接南北方向得红、黄、绿共6个发光二极管。12个发光二极管采用了共阴极得连接方式,因此I/O口输出高电平时,与之相连得发光二极管会亮,I/O口输出低电平就是,相应得发光二极管会灭. 初始东西绿灯亮,南北红灯亮,东西路口车通行,时隔20s,黄灯闪烁5次。之后,南北绿灯亮,东西红灯亮,方向开始通车,时隔20s,南北黄灯闪烁5次,然后又切换成东西方向通车,如此重复。 当某一方向发生交通意外或者需要停止方向通行就是,这一方向亮红灯。处理完之后,按下确定键,重新按上述方式工作。 当发生交通意外(中断产生)时,全部亮红灯,进行交通事故得处理。当事故处理完毕,按下确定键,重新按上述方式工作。 当南北路口得流量大时,可以增加南北路口亮绿灯得时间,当东西路口得流量大时,可以增加东西路口亮绿灯得时间,结束后调回正常状态.交通灯电路如图1-5所示.      图1-5 交通灯电路 1、5、2 倒计时显示电路   倒计时显示可以提醒驾驶员在信号灯灯色发生改变得时间、在“停止”与“通过”两者间作出合适得选择。驾驶员与行人普遍都愿意选择有倒计时显示得信号控制方式,并且认为有倒计时显示得路口更安全。倒计时显示就是用来减少驾驶员在信号灯色改变得关键时刻做出复杂判断得1种方法,它可以提醒驾驶员灯色发生改变得时间,帮助驾驶员在“停止”与“通过”两者间作出合适得选择 。四个路口得计时显示都就是由P0口控制,又P1口得P1、0~P1、2片选这些显示管,而东西两个方向得显示时间一样,南北方向时间也一样,片选信号能控制东西也南北显示不同得时间.当某一方向为绿灯时,在绿灯倒计时结束后会再显示一个5S得倒计时,以供黄灯显示使用。显示管连接图如图1—5所示。在单片机与显示器之间加了一个8*4、7k得排阻与一个74LS245芯片,排阻得作用就是上拉电阻,防止电流过高烧掉显示管,起到保护显示管得作用,其连接图如图1—6所示。74LS245得作用就是驱动显示管点亮。其连接图如图1—7所示.   图1-5 显示管连接图 图1—6 排阻连接图 图1-7 74LS245驱动芯片连接图 1、5、3 紧急通行电路 该电路为紧急情况与根据车流量调节红绿灯时间长度控制电路。通过单片机得P3、1~P3、7口得七个接口来控制。在紧急情况下,需要停止所有方向上得车得行驶,按下P3、1接口上得开关,接低电平,使其发生作用,发出令所有路口得红灯点亮得脉冲,禁止所有车辆通行。当需要禁止东西方向或者南北方向通行时,按下P3、2或者P3、3可以使其方向上得红灯亮起,禁止该方向车辆通行,而另一方向上则绿灯常量,车辆通行.例如,按下P3、2上得开关,此时南北方向上得红灯常亮,而东西方向上绿灯常亮,这就起到了南北禁止东西通行得效果,按下P3、3上得开关则与之相反。有时候某个方向上得车流量比较大,另一个方向上得车流量比较少,这就需要调整通行时间,P3、5就是加时间端口,P3、6为减时间端口,按下一次开关则会增加或者减少1S,P3、7接得就是切换方向开关,按下开关可以切换方向时间得调整,例如现在切换开关就是东西方向,而东西方向车流量比较少,南北方向车流量比较大,这就需要增加南北方向通行时间,减少东西方向通行时间。首先通过P3、6口减少东西方向通行时间,然后按下切换方向键,这就切换到了南北方向时间调整状态,这就是按下P3、5,可以增加通行时间。P3、4为确定键,也可以称之为复位键,要解除禁止时,按下确认键就可回到正常工作状态,当时间调整结束后,也可以通过确认键回到工作状态.控制电路图如图1—8所示。 图1—6 按键电路控制电路图 1、5、4 声音警示装置 当发生紧急情况需要全面停止通行时,需要声音警示装置来提醒车辆,这个警示装置由P3、0口控制,其电路图如图1-7所示。 图1-7声音警示控制电路 2  系统程序设计   2、1  主程序流程图  开始 东西亮绿灯,南北亮红灯 东西准行,南北禁行 显示子程序 系统初始化 扫描键盘 键按下有 调用键盘子程序 东西亮绿灯,南北亮红灯同时黄灯进行闪烁 调用键盘子程序 扫描键盘 显示子程序 东西准行,南北禁行 东西,南北方向换向 有键按下 Y N Y 图2—1主程序路程图 2、2 显示子程序流程图 开始 取倒计时数值 从P1、0到P1、3取各个方向控制十位个位 从P0口获取数码显示值 返回 图2—2 显示子程序流程图   3  心得体会  这次课程设计,我们小组做得智能交通等控制系统。如往常每一次实训,我获得了很大得收获。  首先,我要说说我学到得团队精神,这次课设需要多人协作完成,我有幸找到三位认真负责且乐于交流讨论得队友。   这次选交通灯为题目来做课设一就是经验不足,二就是信心不足。通过这次课设,我既积累了经验,也获取了信心,今后会找寻机会再做一些与拖动相关得电子设计,因为我们自动化专业与电机就是息息相关得,很大程度研究得就是电机得拖动问题. 通过这两周得单片机课程设计,我们运用所学得知识,利用单片机控制原理设计了一个交通灯控制系统,我们对单片机有了更深得体会。我们了解与掌握了一些简单得编程思想与对I/O口得使用。这次课设通过单片机得I/O口来控制交通灯。实现一些具体得功能与对特殊情况得处理。   通过这次得实践,我们对单片机得I/O口得使用得条件有更深得理解,对单片机得各个管脚功能得理解也加深了,以及在常用编程设计思路技巧,特别就是汇编语言得掌握方面都能向前迈了一大步。这次得课程设计让我们把单片机得理论知识用在实践中,实现了理论与实践相结合,从中更懂得理论就是实践得基础,实践有着能检验理论得正确性,让我们受益非浅,对我们以后参加工作或者继续学习将会产生巨大得帮助与影响.   在课设过程中遇到得硬件与软件问题都通过询问老师、同学与去图书馆、上网得到了解决。   参考文献 [1]陈大钦 电子技术基础实验 [M]、北京:高等教育出版社 2004   [2]陈梓城 电子技术实训 [M]、北京:机械工业出版社 2003  [3]吴黎明 单片机原理及应用技术[M]、北京:科学出版社 2003   [4]李学海 标准80C51单片机基础教程[M]、北京: 北京航空航天大学出版社 2006   [5]刘乐善 微型计算机接口技术及应用[M]、北京: 华中科技大学出版社 2004 [6] 陈炳权 曾庆六 EDA技术实用教程[M]、北京:   湘潭大学出版社 2010 [7] 先锋工作室、 单片机程序实例[M]、北京:清华大学出版社,2002、  [8] 李伯成、基于MCS-51单片机得嵌入式系统得设计[M]、北京:电子工业出版社,2004、   [9] 吴洪潭,肖艳萍,赵伟国、单片机原理及应用系统设计[M]、北京:国防工业出版社,2005、 [10] 吴黎明, 王桂棠, 洪添胜, 等、 单片机原理及应用技术[ M ] 、 北京: 科学出版社,2005、  附录 源程序 #include <reg51、h〉 #define uchar unsigned char #define uint unsigned int uchar data buf[4]; uchar data sec_dx=20;//东西数默认 uchar data sec_nb=30;//南北默认值 uchar data set_timedx=20; uchar data set_timenb=30; int n; uchar data countt0;//定时器0中断次数 //定义5组开关 sbit  k4=P3^7;    //切换方向 sbit  k1=P3^5;ﻩﻩ//时间加 sbit k2=P3^6; ﻩ//时间减 sbit k3=P3^4;ﻩﻩ//确认 sbit k5=P3^1;ﻩﻩ//禁止 //   P3^2ﻩﻩ//只允许东西方向通行,中断0 //   P3^3 //只允许南北方向通行,中断1 sbit Yellow_nb=P2^5;ﻩ//南北黄灯标志 sbit Yellow_dx=P2^2;ﻩ//东西黄灯标志 sbit Green_nb=P2^4; sbit Green_dx=P2^1; sbit Buzz=P3^0; ﻩﻩ bit Buzzer_Indicate; bit time=0;ﻩ ﻩ//灯状态循环标志 bit set=1; ﻩ //调时方向切换键标志 uchar code table[11]={ //共阴极字型码 ﻩ0x3f, //--0 0x06, //-—1 ﻩ0x5b,  //--2 0x4f, //--3 ﻩ0x66,  //—-4 ﻩ0x6d,  //—-5 ﻩ0x7d,  //—-6 ﻩ0x07, //--7 ﻩ0x7f, //——8 0x6f,  //-—9 ﻩ0x00  //--NULL }; //函数得声明部分 void delay(int ms); ﻩ //延时子程序 void key(); ﻩ ﻩ//按键扫描子程序 void key_to1(); ﻩ //键处理子程序 void key_to2(); void key_to3(); void display();ﻩﻩﻩﻩ//显示子程序 void logo(); ﻩﻩﻩﻩ//开机LOGO void Buzzer(); //主程序 void main() { TMOD=0X11;ﻩ ﻩ ﻩ //定时器设置 ﻩTH0=0X3C; ﻩ //定时器0置初值 0、05S ﻩTL0=0XB0; EA=1; ﻩ ﻩﻩ//开总中断 ET0=1; ﻩﻩ//定时器0中断开启 TR0=1;ﻩ ﻩﻩﻩ//启动定时0 ﻩEX0=1; ﻩ ﻩ//开外部中断0 EX1=1; ﻩﻩﻩﻩ //开外部中断1 logo(); P2=0Xc3; ﻩﻩﻩ// 开始默认状态,东西绿灯,南北黄灯     sec_nb=sec_dx+5;  ﻩ //默认南北通行时间比东西多5秒 ﻩwhile(1) ﻩ{ ﻩﻩkey(); ﻩ ﻩ //调用按键扫描程序 ﻩdisplay(); ﻩ //调用显示程序 ﻩBuzzer(); ﻩ} } //函数得定义部分 void key()ﻩ//按键扫描子程序 {ﻩ if(k1!=1)ﻩ ﻩ//时间加按下时 ﻩ{ ﻩdelay(10);ﻩﻩ //延时消抖 if(k1!=1) ﻩﻩﻩ ﻩﻩ{ ﻩﻩwhile(k1!=1)ﻩﻩ//当按键未弹起时,一直执行 ﻩ{ ﻩﻩﻩ key_to1(); //调用按键1功能 ﻩ for(n=0;n<40;n++)ﻩ//调用40次显示,用于延时 ﻩ   { display();} ﻩ } ﻩﻩ} } ﻩif(k2!=1) ﻩﻩﻩ//当K2按键按下时 { ﻩ ﻩﻩdelay(10); ﻩﻩ //延时消抖 ﻩﻩif(k2!=1) {ﻩ while(k2!=1) //按键按下未弹起时一直执行 ﻩ{ ﻩ   key_to2();ﻩﻩ//调用key2功能 ﻩ   for(n=0;n〈40;n++) //调用40次显示,用于延时 ﻩﻩﻩ    { display();} } ﻩ } ﻩ} ﻩif(k3!=1)ﻩ ﻩ ﻩ //当K3(确认)键按下时 { ﻩTR0=1; ﻩ ﻩ ﻩﻩ//启动定时器 ﻩ Buzzer_Indicate=0; sec_nb=set_timenb;ﻩﻩﻩ//从中断回复,仍显示设置过得数值 ﻩ sec_dx=set_timedx; ﻩ //显示设置过得时间 ﻩif(set==1) ﻩ ﻩ ﻩ//时间倒时到0时 ﻩ { ﻩ // P2=0X99;ﻩﻩﻩﻩﻩ//东西红灯,南北绿灯 ﻩﻩﻩsec_nb=sec_dx+5; ﻩ //回到初值 ﻩ } ﻩ else  ﻩ{  ﻩ// P2=0xC3;ﻩﻩﻩ //东西绿灯,南北红灯 ﻩﻩ sec_dx=sec_nb+5; ﻩﻩ} ﻩ}ﻩ ﻩif(k4!=1)ﻩ ﻩﻩ//当K4(切换)键按下   { ﻩ delay(5);ﻩﻩﻩﻩﻩﻩ//延时消抖 if(k4!=1) ﻩ{   ﻩ ﻩwhile(k4!=1); ﻩset=!set; ﻩﻩ ﻩ//取反set标志位,以切换调节方向 ﻩ} } ﻩif(k5!=1) ﻩﻩ ﻩ ﻩ//当K5(禁止)键按下时 ﻩ{ delay(5);ﻩﻩﻩ ﻩﻩ//延时消抖 ﻩ if(k5!=1) ﻩ   { ﻩ while(k5!=1)ﻩ    ﻩkey_to3(); ﻩ ﻩﻩ ﻩ   } ﻩ} } void display() //显示子程序 { ﻩbuf[1]=sec_dx/10; //第1位 东西秒十位 buf[2]=sec_dx%10; ﻩﻩ//第2位 东西秒个位 buf[3]=sec_nb/10; ﻩ //第3位 南北秒十位 buf[0]=sec_nb%10; ﻩ//第4位 南北秒个位     P1=0xff;         ﻩ // 初始灯为灭得     P0=0x00;   P1=0xfe;   ﻩ //片选LED1        P0=table[buf[1]]; ﻩ//送东西时间十位得数码管编码 ﻩﻩdelay(1);ﻩ ﻩ//延时 ﻩP1=0xff;ﻩ ﻩ //关显示   P0=0x00;ﻩ ﻩ P1=0xfd; //片选LED2   P0=table[buf[2]];   delay(1); P1=0xff;   P0=0x00; ﻩ   P1=0Xfb;ﻩ  ﻩﻩ//片选LED3 ﻩ P0=table[buf[3]]; ﻩ delay(1); P1=0xff;     P0=0x00; ﻩP1=0Xf7; ﻩP0=table[buf[0]];ﻩ //片选LED4ﻩ ﻩ   delay(1); } void time0(void) interrupt 1 using 1   //定时中断子程序 { TH0=0X3C; ﻩ ﻩﻩ//重赋初值 ﻩTL0=0XB0; ﻩTR0=1; ﻩﻩ ﻩ //重新启动定时器 ﻩcountt0++;ﻩﻩ ﻩﻩ //软件计数加1 if(countt0==20)      // 定时器中断次数=20时(即1秒时) ﻩ{ﻩcountt0=0; ﻩﻩﻩﻩ//清零计数器 ﻩsec_dx--; ﻩﻩﻩﻩ //东西时间减1 ﻩ sec_nb-—; ﻩﻩ ﻩ //南北时间减1 if(sec_nb<=5&&time==0) ﻩ//东西黄灯闪 ﻩ       { ﻩﻩGreen_dx=0; ﻩﻩYellow_dx=!Yellow_dx; }   ﻩﻩ ﻩ   if(sec_dx〈=5&&time==1)   //南北黄灯闪     { ﻩ ﻩGreen_nb=0; ﻩ Yellow_nb=!Yellow_nb; }ﻩ ﻩ ﻩﻩﻩﻩ ﻩ if(sec_dx==0&&sec_nb==5) ﻩ //当东西倒计时到0时,重置5秒,用于黄灯闪烁时间 ﻩsec_dx=5; ﻩﻩif(sec_nb==0&&sec_dx==5)ﻩﻩ//当南北倒计时到0时,重置5秒,用于黄灯闪烁时间 ﻩﻩﻩsec_nb=5; if(time==0&&sec_nb==0) ﻩ //当黄灯闪烁时间倒计时到0时, { ﻩ P2=0x99; ﻩ ﻩﻩ//重置东西南背方向得红绿灯 ﻩ time=!time; sec_nb=set_timenb; //重赋南北方向得起始值 ﻩﻩ sec_dx=set_timenb+5; //重赋东西方向得起始值 ﻩ } ﻩ if(time==1&&sec_dx==0)ﻩﻩﻩ//当黄灯闪烁时间到 ﻩ{ ﻩﻩ P2=0Xc3;ﻩ ﻩﻩﻩ//重置东西南北得红绿灯状态 ﻩtime=!time; ﻩsec_dx=set_timedx;ﻩﻩ //重赋东西方向得起始值 ﻩ sec_nb=set_timedx+5;}ﻩﻩ//重赋南北方向得起始值 ﻩ }ﻩ } void key_to1() ﻩﻩ //键盘处理子程序之+ { ﻩTR0=0;ﻩ     ﻩ ﻩ//关定时器 ﻩif(set==0) ﻩset_timenb++;   ﻩ//南北加1S else ﻩset_timedx++;    ﻩ//东西加1S if(set_timenb==100) ﻩ set_timenb=1; ﻩif( set_timedx==100) ﻩ set_timedx=1;   ﻩ//加到100置1 sec_nb=set_timenb ; ﻩ//设置得数值赋给东西南北 sec_dx=set_timedx;ﻩ // } void key_to2()ﻩ ﻩ ﻩ//键盘处理子程序之— { ﻩTR0=0;       //关定时器 ﻩif(set==0) ﻩﻩset_timenb—-; ﻩﻩ//南北减1S else ﻩset_timedx--; //东西减1S ﻩif(set_timenb==0) ﻩset_timenb=99; ﻩif(ﻩset_timedx==0 ) ﻩset_timedx=99; //减到1重置99 sec_nb=set_timenb ;ﻩ //设置得数值赋给东西南北 ﻩsec_dx=set_timedx;ﻩ } void key_to3()  ﻩ//键盘处理之紧急车通行 {       TR0=0;ﻩﻩ//关定时器   P2=0Xc9; ﻩ//全部置红灯 ﻩ sec_dx=00;ﻩ//四个方向得时间都为00 sec_nb=00; ﻩ  Buzzer_Indicate=1; } //外部中断0 void int0(void) interrupt 0 using 1    //只允许东西通行 { TR0=0;ﻩﻩﻩ ﻩﻩﻩ //关定时器 ﻩP2=0Xc3;ﻩ ﻩﻩﻩ//东西方向置绿灯 ﻩBuzzer_Indicate=0; sec_dx=00;ﻩ ﻩ ﻩ//四个方向得时间都为00 ﻩsec_nb=00;ﻩ } //外部中断1 void int1(void) interrupt 2 using 1ﻩ  //只允许南北通行  { ﻩTR0=0; ﻩ //关定时器 ﻩP2=0X99; ﻩﻩﻩ //置南北方向为绿灯 Buzzer_Indicate=0; ﻩsec_nb=00; ﻩﻩ ﻩ//四个方向得时间都为00 sec_dx=00; } void logo()//开机得Logo "- - — -" { ﻩfor(n=0;n〈50;n++) ﻩ{ ﻩ  P0=0x40; ﻩ  P1=0xfe; ﻩdelay(1); ﻩ    P1=0xfd; ﻩﻩdelay(1); ﻩP1=0Xfb; ﻩdelay(1); ﻩP1=0Xf7; ﻩﻩdelay(1); ﻩ P1 = 0xff; ﻩ} } void Buzzer() {    if(Buzzer_Indicate==1)     Buzz=!Buzz;    else Buzz=0; } void delay(int ms)ﻩ //延时子程序 { uint j,k; for(j=0;j<ms;j++) ﻩ//延时ms for(k=0;k<124;k++);ﻩﻩ//大约1毫秒得延时 }
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:基于51单片机的智能交通灯课程设计.doc
    链接地址:https://www.zixin.com.cn/doc/12089448.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork