收藏 分销(赏)

综合课程设计基于单片机的交通控制系统的设计.doc

上传人:a199****6536 文档编号:2487671 上传时间:2024-05-30 格式:DOC 页数:24 大小:1.66MB
下载 相关 举报
综合课程设计基于单片机的交通控制系统的设计.doc_第1页
第1页 / 共24页
综合课程设计基于单片机的交通控制系统的设计.doc_第2页
第2页 / 共24页
综合课程设计基于单片机的交通控制系统的设计.doc_第3页
第3页 / 共24页
综合课程设计基于单片机的交通控制系统的设计.doc_第4页
第4页 / 共24页
综合课程设计基于单片机的交通控制系统的设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、综合课程设计报告目录1引言11.1设计背景11.2 设计目的及思路11.2.1 设计目的11.2.2 设计思路12方案选择22.1总体设计方案22.2 控制模块选择方案22.3倒计时显示界面方案23详细设计33.1 交通灯显示时序及状态转换的理论分析及程序流程图33.1.1.理论分析33.1.2.程序流程图43.2系统总体硬件方案论证53.3 STC89C52RC单片机53.4电路图84系统的仿真测试95作品的焊接105.1焊接过程105.2具体程序116总结20参考文献20附录21表1 元器件清单211引言1.1 设计背景自从1858年英国人,发明了原始的机械扳手交通灯之后,随后的一百多年里

2、,交通灯改变了交通路况,也在人们日常生活中占据了重要地位,随着人们社会活动日益增加,经济发展,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效管制,对于交通疏导,提高道路导通能力,减少交通事故有显著的效果。今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示“停止”,绿色

3、表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交

4、通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国道路交通和道路标志信号协定对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。现在交通系统已不能满足经济

5、发展的需求。由于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。 中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。1.2 设计目的及思路1.2.1 设计目的了解交

6、通灯管理的基本工作原理,熟练掌握STC89C52的工作原理和应用编程,熟悉STC89C52单片机并行接口的各种工作方式和应用,并了解计数器/定时器的工作方式和应用编程外部中断的方法,掌握多位LED显示问题的解决。1.2.2 设计思路(1)分析目前交通路口的基本控制技术以及各种通行方案,并以此为基础提出自己的交通控制的初步方案。(2)确定系统交通控制的总体设计,包括,十字路口具体的通行方案设计以及系统应拥有的各项功能,在这里,本设计除了有信号灯状态控制能实现基本的交通功能,还增加了倒计时显示提示。(3)进行显示电路,灯状态电路的设计和对各器件的选择及连接,大体分配各个器件及模块的基本功能要求。(

7、4)进行软件系统的设计,对于本系统,本人采用语言编写程序,对单片机内部结构和工作情况做了充足的研究,了解定时器,中断以及延时原理,总体上完成了软件的编写。2方案选择2.1总体设计方案 根据十字路口交通灯的要求,可将本系统分为三个模块,第一模块是控制模块,主要负责整个系统的控制和运算,从而使各模块正常工作,第二个模块式显示模块包括LED灯和数码管;第三是电源模块,给各模块提供电源,让各模块工作。其系统设计结构如图2.1所示:图2.1系统设计结构图2.2 控制模块选择方案方案一:由计数器74LS161级联组成,配合译码器和秒脉冲信号发生器等器件组成交通灯系统,整个系统简单,控制简单,调试容易等优点

8、。 方案二:采用单片机STC89C52作为控制器。单片机运算能力强,软件编程灵活,自由度大。采用STC89C52单片机稳定可靠、应用广泛、通用性强。方案比较:采用方案一来实现十字路口交通灯控制系统非常方便,电路结构简单,控制单一,但整个系统性能不是很高,倒计时不是非常精确,如果要求系统能设置不同工作时间不容易,因而对于完成题目较困难,而方案二完全能实现设计要求,容易掌握,利于编程,易控制,I/O接口很多,易于扩展外围电路,价格便宜,故选择方案二。2.3倒计时显示界面方案该系统要求完成倒计时功能。只需显示数字,基于上述原因,我考虑了二种方案:方案一:采用全数码管显示。这种方案只显示有限的符号和数

9、码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,且须完成大量的软件工作。综上所述,我选择第一种方案,四个路口分别采用一个二位共阳数码管。3详细设计3.1 交通灯显示时序及状态转换的理论分析及程序流程图3.1.1.理论分析红绿灯状态转换图如图3.1所示。S2S1S4S3图3.1红绿灯状态转换图东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间、指示灯燃亮的

10、方案如表3.1。表3.1 十字路口指示灯燃灯方案状态S1S2S3S4时间87s5s30s5s东西道红灯亮红灯亮绿灯亮黄灯亮南北道绿灯亮黄灯亮红灯亮红灯亮表3.1说明:(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通过,行人禁止通行。时间为60秒。 (2)黄灯闪烁5秒,警示车辆和行人红、绿灯的状态即将切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。时间为80秒。 东西方向车流大 通行时间长。 (4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。 (5)此表可根据车流量动态设定红绿灯初

11、始值。共四种状态,分别设定为S1、S2、S3、S4,交通灯以这四种状态为一个周期,循环执行图3.2所示:图3.2 交通灯状态循程序就是在上述四种状态下循环转化的。3.1.2.程序流程图系统的程序流程图如图3.3所示。图3.3 程序流程图3.2系统总体硬件方案论证本设计以单片机为控制核心,采用模块化设计,共分以下几个功能模块:单片机控制系统、状态显示模块、倒计时模块、电源模块。经上述各模块的方案选择与论证,十字路口交通灯控制系统的控制芯片选用单片机STC89C52作为整个系统的核心控制器件,主要负责整个系统工作的控制和运算,从而使各模块正常工作;采用七段LED数码管和LED灯作为显示器件,用七段

12、LED数码管完成倒计时显示,用LED灯作为状态灯指示功能;以电池供电作为系统电源部分,可对各个模块供电并便于演示。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机振荡电路、复位电路等组成。3.3 STC89C52RC单片机STC89C52RC是STC89系列单片机中应用较为广泛的一种型号,芯片内部有8KB的闪速存储器Flash ROM。内部的8KB存储器用于存放可编程控制器监控程序。 STC89C52RC单片机的40条引脚按功能来分,可以分为3部分,电源及时钟引脚、控制引脚和输入/输出引脚。 其引脚图如图3.4所示。图3.4 STC89C52单片机引脚图89

13、C52单片机引脚功能:主电源及时钟引脚此类引脚包括电源引脚Vcc、Vss、时钟引脚XTAL1、XTAL2。(1)Vcc(40脚):接+5V电源,为单片机芯片提供电能。(2)Vss(20脚)接地。(3)XTAL1(18脚)在单片机内部,它是一个反向放大器的输入端,该放大器构成了片内的振荡器,可提供单片机的时钟控制信号。(4)XTAL2(19脚)在单片机内部,接至上述振荡器的反向输出端。控制引脚此类引脚包括RESET(即RSR/VPD)、ALE、PSEN、EA,可以提供控制信号,有些具有复用功能。(1)RSR/ VPD(9脚):复位信号输入端,高电平有效,当振荡器运行时,在此引脚加上两个机器周期的

14、高电平将使单片机复位(REST)。复位后应使此引脚电平保持为不高于0.5V的低电平,以保证单片机正常工作。掉电期间,此引脚可接上备用电源(VPD),以保持内部RAM中的数据不丢失。当Vcc下降到低于规定值,而VPD在其规定的电压范围内(50.5V)时,VPD就向内部RAM提供备用电源。(2)ALE/PROG(30脚):ALE为地址锁存允许信号。当单片机访问外部存储器时,ALE(地址锁存允许)输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端仍有周期性正脉冲输出,其频率为振荡器频率的1/6。但是每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉

15、冲。ALE端可以驱动8个LSTTL负载。(3)PSEN(29脚):程序存储器允许输出控制端。此输出为单片内访问外部程序存储器的读选通信号。在从外部程序存储器取指令(或取常数)期间,每个机器周期均PSEN两次有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不会出现。PSEN同样可以驱动8个LSTTL负载。(4)EA(31脚):EA功能为内外程序存储器选择控制端。当EA端保持高电平时,单片机访问内部程序存储器,但在PC(程序计数器)值超过0FFFH时将自动转向执行外部程序存储器内的程序。输入/输出引脚此类引脚包括P0口、P1口、P2口和P3口。(1)P0(P0.0P0.7)是

16、一个8位三态双向I/O口,在不访积压处部存储器时,做通用I/O口使用,用于传送CPU的输入/输出数据,当访问外部存储器时,此口为地址总路线低8位及数据总路线分时复用口,可带8个LSTTL负载。(2)P1(P1.0P2.7)是一个8位准双向I/O口(作为输入时,口锁存器置1),带有内部上拉电阻,可带4个LSTTL负载。(3)P2(P2.0P2.7)是一个8位准双向I/O口,与地址总路线高8位复用,可驱动4个LSTTL负载。 (4)P3(P3.0P3.7)是一个8位准双向I/O口,除此之外每位还具有第二功能。P3口功能表如表3.1所示。表3.1 P3口各个位的第二功能表P3口的位第二功能说明P3.

17、0RXD串行数据接收口P3.1TXD串行数据发射口P3.2INT0外部中断0输入P3.3INT1外部中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写信号P3.7RD外部RAM读信号STC89C52内部结构图如图3.5所示:图3.5 STC89C52内部结构图3.4电路图交通控制系统的电路图如图3.6所示。图3.6交通控制系统电路图4系统的仿真测试交通控制系统的仿真图如图4.1所示。(a)(b)图4.1交通控制系统仿真图5作品的焊接5.1焊接过程交通控制系统的焊接图如图5.1所示。(a)(b)(c)图5.3 焊接图5.2具体程序#include #def

18、ineuint unsigned int#define uchar unsigned charucharnight_flag=0;/深夜标志位uchartime_cl=0;/定义时间控制标志位 取0uchar flag=0;/方向通行标志位ucharB_N_D_flag=1;/定义北南通灯行标志位ucharX_D_D_flag=1;/定义西东通灯行标志位uchari,j;/定义变量iuchar t=3;/数码管动态扫描延时时间基数ucharnum=0;/时间基数初始化为0/ucharnum_night=0;/深夜模式时间基数为0uchar time=90;/time初始化定为30秒intbei

19、,nan,xi,dong; /定义 北 南 西 东uchar code Data=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF;/定义数组 数码管 0 1 2 3 4 5 6 7 8 9 -/*定义 红黄绿灯*/#define B_RP1_0/北面 红灯#define B_YP1_1/北面 黄灯#define B_GP1_2/北面绿灯#define N_RP1_3/南面红灯#define N_YP1_4/南面黄灯#defineN_GP1_5/南面绿灯#define X_RP1_6/西面红灯#define X_YP1_7/西面黄灯#

20、defineX_GP3_2/西面绿灯#define D_RP3_3/东面 红灯#define D_YP3_4/东面黄灯#defineD_GP3_5/东面 绿灯/*定义 数码管*/#defineSMG_XSP0/数码管数据显示#defineSMG_KZP2/数码管控制显示void delay(uint time)/扫描延时函数uintx,y;for(x=time;x0;x-)for(y=110;y0;y-);void disp_init()/显示初始化for(i=0;i3;i+)SMG_XS=Data10;/数码管显示-SMG_KZ=0x00;/允许数码管显示P1=0x00;/北,南,西,东 红

21、黄绿灯亮P3=0x00;delay(300);/延时SMG_KZ=0xff;/关闭数码管显示P1=0xff;/关闭北,南,西,东 红黄绿灯P3=0xff;delay(300);/延时void disp(bei,nan,xi,dong) /显示(北 南 西 东)时间函数SMG_XS=Databei/10;/显示北的十位SMG_KZ=0xfd;/允许北十位显示delay(t);/小延时一下,使数码管显示更清楚SMG_KZ=0xff;/关闭数码管显示(消隐)SMG_XS=Databei%10;/显示北的个位SMG_KZ=0xfe;/允许北个位显示delay(t);/小延时一下,使数码管显示更清楚SM

22、G_KZ=0xff;/关闭数码管显示(消隐)SMG_XS=Datanan/10;/显示南的十位SMG_KZ=0xf7;/允许南十位显示delay(t);/小延时一下,使数码管显示更清楚SMG_KZ=0xff;/关闭数码管显示(消隐)SMG_XS=Datanan%10;/显示南的个位SMG_KZ=0xfb;/允许南个位显示delay(t);/小延时一下,使数码管显示更清楚SMG_KZ=0xff;/关闭数码管显示(消隐)SMG_XS=Dataxi/10;/显示西的十位SMG_KZ=0xdf;/允许西十位显示delay(t);/小延时一下,使数码管显示更清楚SMG_KZ=0xff;/关闭数码管显示(

23、消隐)SMG_XS=Dataxi%10;/显示西的个位SMG_KZ=0xef;/允许西个位显示delay(t);/小延时一下,使数码管显示更清楚SMG_KZ=0xff;/关闭数码管显示(消隐)SMG_XS=Datadong/10;/显示东的十位SMG_KZ=0x7f;/允许东十位显示delay(t);/小延时一下,使数码管显示更清楚SMG_KZ=0xff;/关闭数码管显示(消隐)SMG_XS=Datadong%10;/显示东的个位SMG_KZ=0xbf;/允许东个位显示delay(t);/小延时一下,使数码管显示更清楚SMG_KZ=0xff;/关闭数码管显示(消隐)void Time0_ini

24、t()/定时器0初始化函数TMOD=0x01;/定时器0为方式1TL0=(65536-50000)%256;TH0=(65536-50000)/256;/12M晶振 定时时间50msET0=1;/开定时器0中断EA=1;/开总中断TR0=1;/启动定时器0void night_mode()/深夜模式B_R=1;B_Y=B_Y;/北 黄灯取反B_G=1;N_R=1;N_Y=N_Y;/南 黄灯取反N_G=1;X_R=1;X_Y=X_Y;/西 黄灯取反X_G=1;D_R=1;D_Y=D_Y;/东 黄灯取反D_G=1;void B_N_G()/北南通(绿灯) 西东(红灯)B_G=0;/北 绿灯亮N_G

25、=0;/南 绿灯亮B_R=1;B_Y=1;N_R=1;N_Y=1;X_R=0;/西 红灯亮D_R=0;/东 红灯亮X_Y=1;X_G=1;D_Y=1;D_G=1;void X_D_G()/西东通(绿灯) 北南(红灯)B_G=1;N_G=1;B_R=0;/北 红灯亮B_Y=1;N_R=0;/南 红灯亮N_Y=1;X_R=1;D_R=1;X_Y=1;X_G=0;/西 绿灯亮D_Y=1;D_G=0;/东 绿灯亮void B_N_tong()/北南 通行if(B_N_D_flag=1)/当北南通灯行标志位为1B_N_G();/北南通(绿灯) 西东(红灯)B_N_D_flag=0;/北南通灯行标志位置0

26、while(num=20)/当1s时间到num=0;/num清0bei-;/北时间 减1nan-;/南时间 减1xi-;/西时间 减1dong-;/东时间 减1if(bei=0|nan=0)/当北和南时间在0到6秒之间if(bei3|nan3)/进一步判断北和南时间是否在3到6秒之间B_G=B_G;/北 绿灯取反N_G=N_G;/南 绿灯取反if(bei=3&nan=3)/进一步判断北和南时间是否在3秒以内B_G=1;/北 绿灯不亮N_G=1;/南 绿灯不亮B_Y=0;/北 黄灯亮N_Y=0;/南 黄灯亮else/否则(即北和南时间不在0到6秒之间)B_G=0;/北 绿灯亮N_G=0;/南 绿

27、灯亮B_Y=1;/北 黄灯不亮N_Y=1;/南 黄灯不亮void X_D_tong()/西东 通行if(X_D_D_flag=1)/当西东通灯行标志位为1X_D_G();/西东通(绿灯) 北南(红灯)X_D_D_flag=0;/西东通灯行标志位置0while(num=20)/当1s时间到num=0;/num清0bei-;/北时间 减1nan-;/南时间 减1xi-;/西时间 减1dong-;/东时间 减1if(xi=0|dong=0)/当西和东时间在0到6秒之间if(xi3|dong3)/进一步判断西和东时间是否在3到6秒之间X_G=X_G;/西 绿灯取反D_G=D_G;/东 绿灯取反if(x

28、i=3&dong=3)/进一步判断西和东时间是否在3秒以内X_G=1;/西 绿灯不亮D_G=1;/东 绿灯不亮X_Y=0;/西 黄灯亮D_Y=0;/东 黄灯亮else/否则(即西和东时间不在0到6秒之间)X_G=0;/西 绿灯亮D_G=0;/东 绿灯亮X_Y=1;/西 黄灯不亮D_Y=1;/东 黄灯不亮void Time0() interrupt 1/定时器0中断服务函数TH0=(65536-50000)/256;/重新载装初值,设置50ms中断一次TL0=(65536-50000)%256;num+;/时间基数加1void main()/主函数入口bei=nan=xi=dong=time;/

29、把time值赋给北 南 西 东disp_init();/显示初始化Time0_init();/定时器0初始化函数while(1)/无限循环if(P3_0=0)/当P3.0按下(调整时间允许键)delay(5);/延时去抖SMG_KZ=0xff;/关闭数码管显示if(P3_0=0)/再次确定按键是否按下time_cl=time_cl;/时间控制标志位取反(开/关时间控制标志位)if(time_cl=0)/如果时间控制标志位为0TL0=(65536-50000)%256;TH0=(65536-50000)/256;/12M晶振 定时时间50msTR0=1;/开启定时器0num=0;/num初始化为

30、0while(P3_0=0);/等待按键松开if(P3_7=0)/当P3.7按下(开/关 深夜模式)delay(5);/延时去抖SMG_KZ=0xff;/关闭数码管显示if(P3_7=0)night_flag=night_flag;/深夜标志位取反(开/关深夜模式),1表示开,0表示关if(night_flag=1)/如果深夜模式开TR0=0;/关闭定时器0num=0;/时间基数清0TL0=(65536-50000)%256;TH0=(65536-50000)/256;/12M晶振 定时时间50msTR0=1;/开启定时器0SMG_KZ=0xff;/关闭数码管显示else /否则night_f

31、lag=0表示深夜模式关(红绿灯正常运行)TR0=0;/关闭定时器0num=0;/时间基数清0TL0=(65536-50000)%256;TH0=(65536-50000)/256;/12M晶振 定时时间50msTR0=1;/开启定时器0B_N_D_flag=1;/定义北南通灯行标志位X_D_D_flag=1;/定义西东通灯行标志位if(bei=3&nan=3)/判断北和南时间是否在3秒以内B_Y=1;N_Y=1;if(xi=3&dong=3)/判断西和东时间是否在3秒以内X_Y=1;D_Y=1;while(P3_7=0);if(night_flag=0)/如果深夜标志位为0,表示关闭深夜模式

32、,红绿灯正常运行if(time_cl=0)/如果time_cl=0(不允许调整时间),即红绿灯正常运行if(flag=0)/flag=0表示北南通行允许B_N_tong();/北南 通行if(bei=0)/北南通行时间到flag=flag;/西东 通行允许B_N_D_flag=1;/北南通灯行标志位置1else/flag=1表示西东通行允许X_D_tong();/西东 通行 if(xi=0)/西东通行时间到flag=flag;/北南 通行允许X_D_D_flag=1;/西东通灯行标志位置1disp(bei,nan,xi,dong);/显示时间数据if(bei=0&nan=0&xi=0&dong

33、=0)/如果 北 南 西 东时间到(为0)TR0=0;/关闭定时器0TL0=(65536-50000)%256;TH0=(65536-50000)/256;/12M晶振 定时时间50msfor(j=0;j3;j+)/延时显示闪烁3下for(i=0;i10;i+)/for语句延时disp(bei,nan,xi,dong); /显示函数SMG_KZ=0xff;/关闭显示delay(200);/延时一下bei=time;/time值赋给北nan=time;/time值赋给南xi=time;/time值赋给西dong=time;/time值赋给东TR0=1;/开启定时器0else/否则/空操作else

34、/如果time_cl=1(允许时间调整)TR0=0;/关闭定时器TL0=(65536-50000)%256;TH0=(65536-50000)/256;/12M晶振 定时时间50msnum=0;/时间基数清0bei=nan=xi=dong=time;/time值赋给 北 南 西 东disp(bei,nan,xi,dong);/显示时间数据if(P3_1=0)/当P3.1按键按下(操作时间加1)delay(5);/延时去抖if(P3_1=0)/再次确定按键是否按下time+;/时间加1while(P3_1=0);/等待按键松开if(bei=100&nan=100&xi=100&dong=100)

35、/如果北 南 西 东 时间到100time=1;/time等于1if(P3_6=0)/当P3.6按键按下(操作时间减1)delay(5);/延时去抖if(P3_6=0)/再次确定按键是否按下time-;/time减1while(P3_6=0);/等待按键松开if(bei=0&nan=0&xi=0&dong=0)/如果北 南 西 东 时间到0time=99;/time等于99else/否则深夜标志位为1,表示开启深夜模式if(num=20)/当1s时间到num=0;/50ms时间基数清0night_mode();/深夜模式6总结本次课程设计的过程是艰辛的,不过收获却是很大的。在设计过程中,会出现

36、了一些问题,但都是常见的小问题,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,程序顺利完成,并实现了其功能。由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则效率还不是很高等等,这需要在实践中进一步完善。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,但通过查阅相关书籍、资料以及和

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服