"景先生毕设|www.jxszl.com

智能计时交通灯控制系统(附件)【字数:9126】

2024-01-25 16:42编辑: www.jxszl.com景先生毕设
本文设计了一款智能计时交通灯控制系统。该系统由STM32F103C8T6作为主控芯片,加上ds1302时钟芯片,led12864显示屏,led灯,共阳数码管,按键模块,红外检测模块构成。该系统模拟了在实际情况中,交通灯的使用。通过控制led灯颜色的切换来控制车辆的通行与停止。在硬件方面,本设计主要设计了STM32最小控制电路,红外检测电路,数码管控制电路,led控制电路,lcd12864显示电路,ds1302时钟电路。通过这些电路的设计,构成了其硬件电路。为其提供了外围电路和硬件支持。本设计包括了原理图以及pcb的制作。在软件方面,本设计了stm32最小系统对各个模块进行控制,完成led灯的点亮与切换,蜂鸣器的报警,lcd12864的显示,数码管的点亮,红外的检测等等程序的控制。该设计源于生活,利于生活。该设计有益于改善交通枢纽,可以有效控制交通的通行能力,提高交通的流畅性。大大减少了交通事故。是十分实用的设计。STM32 交通 LED DS1302AbstractThis paper designs an intelligent timing traffic light control system. The system is composed of STM32F103C8T6 as the main control chip, ds1302 clock chip, led12864 display screen, led lamp, common anode digital tube, key module and infrared detection module. The system simulates the use of traffic lights in actual situations. Control the traffic and stop of vehicles by controlling the color switching of led lights. On the hardware side, this design mainly designs STM32 minimum control circuit, infrared detection circuit, digital tube control circuit, le *景先生毕设|www.jxszl.com +Q: ¥351916072
d control circuit, lcd12864 display circuit and ds1302 clock circuit. Through the design of these circuits, the hardware circuit is constructed. It provides peripheral circuit and hardware support. This design includes schematic diagram and pcb fabrication. In the aspect of software, the stm32 minimum system is designed to control each module, and complete the program control of lighting and switching led lights, buzzer alarm, 数码管 display, digital tube lighting, infrared detection and so on. This design originates from life and is beneficial to life. This design is beneficial to improve the transportation hub, effectively control the traffic capacity and improve the traffic fluency. Key words:STM32 traffic LED DS1302 一. 引言 1(一) 本设计研究的背景及意义 1(二) 交通灯在国内外的发展背景 2(三) 本文的主要研究内容 3二. 智能交通灯系统方案设计 5(一) 总体方案的要求 5(二) 方案的选择与比较 5(三)总体方案设计规划 6三. 分拣系统硬件设计 7(一)STM32F103C8T6芯片简介 7(二)红外感应模块介绍 7(三)开关模块介绍 7(四) 最小系统电路设计介绍 8(五) Led控制电路介绍 8(六) 数码管驱动控制电路介绍 9(七) 红外传感器驱动电路介绍 9(八) 开关控制电路介绍 10四. 智能交通灯系统软件设计 11(一) 智能交通灯的主程序流程设计 11(二)LED控制程序设计 12(三)中断程序设计 12(四)数码管驱动程序设计 13(五)开关控制程序设计 14(六)DS1302驱动程序设计 14(七)红外检测程序设计 15五. 实物调试及结果分析 16(一)硬件调试 16(二)软件调试 16(三)操作步骤 16六. 总结 18七. 参考文献 19八. 致谢 20九. 附录 21引言本设计研究的背景及意义 随着时代的不断的发展,人们的生活得到了普遍的提高。作为人们所需要居住的城市,其集各类社会,经济,文化为一体。有着重要的作用。交通工具的出现,方便了人们的生活,但是也给城市带来了流通的压力和频发的交通事故。对人们的经济,生命安全造成了损失。在我国,随着改革开放政策的贯彻实施,国民经济得到了迅猛发展,道路交通也得到了迅速得法展。与此同时,由于城市化进程的加速,城市规模不断膨胀,城市的经济贸易和社会的活动日益频繁,人员流动与社会交往日益增多,使得城市交通拥挤和交通安全事故问题更加透突出。城市交通作为城市基础设施重要组成部分,如何改善、完善和发展城市交通,越来越被人们所重视。城市交通作为支撑城市活动的主要基础设施,是城市的枢纽和命脉,如不及早实施综合治理,将严重的影响城市居民生活的提高和城市的经济发展。由于我国城市基础设施的发展滞后于城市建设的发展,严重影响了城市及周边地区的经济发展。因此,城市交通问题的解决,不但可以使人们的生命财产有保障,而且可以加快经济的发展和社会的进步。作为城市大系统中非常重要的子系统之一的城市交通系统,它与整个城市国民经济的发展和人民生活水平的提高有着密切的关系,它连通着社会生产的每个环节,维系着千家万户的日常生活。城市交通一方面受城市结构、经济状况、生产布局、人口分布等因素的制约;另一方面,它的有效性、安全性、可靠性、经济性又影响着城市的工作效率、经济效益和居民生活水平。城市交通系统的运行状况又可以从另一个侧面反映出城市的经济建设、科学技术和城市管理水平。因此,在交通管理中应用先进的科学技术和管理方法保证道路的安全畅通,是经济发展的需要。+交叉路口是城市交通系统重要的组成部分,是城市道路网的咽喉,其通行能力制约着城市道路的通达,是影响道路畅通的瓶颈。众所周知,提高交叉路口通行能力的最有效办法是修建立交桥。鉴于我国道路基础设施现状以及从各个城市的经济水平情况,立交桥尚不能推广普及。因此,人们更多的采用交通控制这一方式来充分利用交叉路口的时空资源,按照现实的交通流给予相应的最适宜的交通控制,最大程度的提高交叉路口的通行能力,不但能提高车辆通过交叉路口的速度、减少延误、节约人们的出行时间,同时能避免该交叉路口发生堵车,影响交叉路口临近路段及更远路段的顺利通行。据有关的资料显示,机动车辆在其减速制动和起动期间所排放的有害物质是其正常行驶时的7倍左右。因此,解决好城市交叉路口通行问题,减少机动车辆在交叉路口附近停车延误对提高社会的经济效益和环境保护都是具有重大意义的。本设计以stm32为控制芯片。由ds1302时钟电路,led12864显示电路,led控制电路,共阳数码管显示电路,按键控制电路,红外检测电路构成。当该设计启动时,stm32最小系统发送信号,启动数码管和led灯,led灯的初始颜色为绿色。数码管开始20秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为3秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入10s的倒计时,倒计时结束后切换为红色,进行循环,此为白天模式。当按键按下时,模式进行切换。数码管开始30秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为5秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入20s的倒计时,倒计时结束后切换为红色,进行循环。此为黑夜模式。当倒计时出现故障时,蜂鸣器发出1s的报警,然后重新启动最小系统。进行工作。在12864显示屏上显示着当前的灯的颜色,倒计时状态,红外检测状态。当红外检测模块检测到车辆过多时,进入紧急模式,数码管开始10秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为2秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入30s的倒计时,倒计时结束后切换为红色,进行循环。交通灯在国内外的发展背景随着现代社会对交通运输的日趋依赖,交通系统的控制越来越受到普遍的重视。近年来,英国、美国等西方国家均在某些城市建立智能交通控制系统。在这些系统中,大部分都在路口附近装有车辆检测器,并由各路口的控制设备或工作人员将交通控制参数通过电话线、电缆、光纤或是无线网络等方式输入到微处理器,用小型计算机控制。尤其是伴随着信息技术的发展,交通控制的概念已从交通管理者的行为改变为交通管理者和道路使用者共同的行为,从而使得交通的最优化向全局最优发展。在这些发展中,除了新设备的应用外,数据的采集、传输、处理、存储与发送等技术的发展也起了关键的作用。新型的监测器,包括用摄像机采集图像信息和进行图像处理技术,为人们提供了大量的时变数据;新的通信技术,包括光纤通信、无线通信等技术,能使人们更快的传送数据。而计算机技术的发展,使交通控制系统的发展又向前进了一大步。这些控制技术与现代控制理论、现代的管理方法相结合,使交通控制系统日趋完善。与国外相比,我国目前的交通控制很落后,目前中国城市的问题呈现如下一些问题管理不力,秩序混乱;没有科学、合理、有效的城市交通监控系统。由此带来的后果表现为道路的通行能力明显低于设计要求且波动性大、出行难,交通事故发生率高,交通环境恶化,出行者易疲劳等问题。交通的发展,促进了人类社会的不断进步。社会的进步,又促进了交通设施的建设、交通工具的改进。然而,随着机动车辆的迅速增加,人们在专区由机动车辆所带来的巨大利润以及充分享受汽车巨大便利的同时,也越来越受到交通拥挤、交通事故频发、环境污染加剧和燃油量上升所带来的困惑。我国是一个发展中国家,经济还不是很发达,因而产生了具有中国特色的城市交通局面。由于先天的不足,城市交通控制系统存在很多问题,如系统应用环境的变数大、系统适应性差等一些棘手的问题,这些问题可以说是我国城市交通系统的特点。具体表现在如下几个方面车型种类繁杂,混合交通严重。为了适应不同人群和不同消费需求,各种车辆大量混杂在道路中。目前世界上广泛使用的交通控制系统均对路网和流量有一定的要求,对于适应小汽车交通的效果不是很好。交通事故频发,对人类生命安全构成极大的威胁。自从汽车问世以来,交通事故就伴随而来。交通事故的产生与道路状况、环境、驾驶员素质等因素有关。车辆多,道路窄,机动车辆和非机动车辆混行,部分司机和行人不遵守交通规则,构成了城市交通事故主要原因。据统计,每年10万人中就有9人死于车祸,这个数字是和战争中死亡的人数差不多。就苏州来说,每年都有很多人死于车祸。交通拥挤严重,导致出行时间增加,能源消耗增大。据报纸显示,全国城市的车速非常的低,形势非常的严峻。我国国内百万人口以上的大城市,每年由于交通拥挤带来的直接经济损失多达1600亿,相当于国民生产总值的3.2%。空气污染和噪声污染严重,且日益加剧。汽车尾气排放、噪声是当今世界上最严重的环境污染之一。发达国家的调查表明汽车排放的污染物占大气污染物总量的60%以上;交通噪声占城市环境噪声的70%以上,这种污染物在车辆制动和起动的过程中更为严重。以上这四个方面的问题集中体现了现阶段我国城市交通系统的突出问题,具体表现在车辆混杂、事故频发、拥挤严重、污染加重。这要求我们找出根本原因,分析问题,找出解决的办法,采用积极的措施,以期彻底改善城市的交通问题。本文的主要研究内容 针对我国城市交通的问题以及城市规划的发展方向,本文将STM32最小系统引入到城市交通中去,通过控制STM32最小系统来控制城市中的交通灯的切换,根据实时的车流量来调节城市的交通问题。使得交通顺畅,减少出现拥挤和交通事故的出现。 本设计通过ds1302模块,实现实时的操作。针对早晚高峰,提高交通灯的切换频率,加快车辆的流通。使得交通不出现拥挤的状况。在其他时刻,恢复其切换频率。当出现特殊情况时,如闯红灯时,激光检测会检测到车辆,上报到总系统中,让监管者进行监管。智能交通灯系统方案设计总体方案的要求本设计以STM32作为主控芯片,由ds1302时钟电路,led控制电路,共阳数码管显示电路,按键控制电路,红外检测电路作为其硬件外围电路。当该设计启动时,stm32最小系统发送信号,启动数码管和led灯,led灯的初始颜色为绿色。数码管开始20秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为3秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入10s的倒计时,倒计时结束后切换为红色,进行循环,此为白天模式。当按键按下时,模式进行切换。数码管开始30秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为5秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入20s的倒计时,倒计时结束后切换为红色,进行循环。此为黑夜模式。当倒计时出现故障时,蜂鸣器发出1s的报警,然后重新启动最小系统。进行工作。在12864显示屏上显示着当前的灯的颜色,倒计时状态,红外检测状态。当红外检测模块检测到车辆过多时,进入紧急模式,数码管开始10秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为2秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入30s的倒计时,倒计时结束后切换为红色,进行循环。 方案的选择与比较 在传统的交通灯控制中,主要还是以人工进行控制,通过计算机进行一系列的操作,来进行交通灯的切换和控制,而这种方案相对于科技发达的如今,过于浪费了人工成本以及社会资源,而在现在,通过改变其内部的电路控制系统,其设计方法也开始多种多样,从而使交通灯显得更加智能化。在芯片的选择上,本设计对比了STM32系列以及AT9C52系列的最小控制系统,再结合实际情况加上性价比的对比,本设计采用了STM32作为主控芯片,相对AT89C51系列,STM32系列的编程性更高,其内部储存数据更多,运行速度更快。虽然成本相对较高,但从使用性来说,远超AT89C51系列。以STM32微处理器为核心,加上各种外设来模拟实际使用,通过KVIL5,使用C语言来对STM32微处理器进行控制编程,其编程容易,方便使用者使用,有利于改进者阅读其代码,STM32端口众多,功能扩展方便,修改灵活,而且结构简单,抗干扰能力强。其中的模拟输入设备和通信设备更是符合交通灯控制系统的要求与特点,能够方便地联网通信。本设计采用了STM32最小系统来实现了十字路口交通灯控制系统的自动化。(三)总体方案设计规划在对智能交通灯的硬件电路和软件系统进行设计之前,为了能够更加方便的对各个功能模块进行实现,这里需要对智能交通灯系统的总体实现方案以及各个功能子模块的实现方案进行设计,通过绘图软件绘制了如图1所示的结构框图,由于采用了STM32F103x作为最小的主控芯片,所以各个功能子模块都与主控微处理器之间有信号交互,要实现STM32F103x芯片的主控功能,还需要将图中的复位电路和晶振电路两个子模块与STM32F103x单片机芯片进行连接,其它各个模块的功能是通过红外进行检测,检测到的数据进行反馈。通过数码管控制电路控制数码管进行个段,位的显示,进行点亮。通过led控制电路,控制led内部芯片,进行灯的颜色切换。通过use设计电路来给最小系统进行供电。通过ds1302时钟电路,控制iic总线,进行时分秒星期的读取;通过数码管驱动电路用于实现对参数的高清晰显示的功能,最小系统通过控制其内部中晶格的亮与灭从而来实现字符的显示,这就是各模块的主要功能介绍。如图2-1,是本设计的硬件框架。图2-1 硬件框架分拣系统硬件设计(一)STM32F103C8T6芯片简介 本设计采用的核心芯片是STM32F103X系列,该芯片可以完美的满足我对各个电路的控制,其内核是ARM32位Cortex-M3 CPU,程序存储器容量是64KB,需要电压2V~3.6V。它有48路LQFP封装. 结合了高性能的RISC内核, 运行频率可达72MHz, 以及高速内嵌存储器, 增强范围的强化输入/输出和外部连接至两个APB总线. STM32F103C8T6具有12位模数转换器, 计时器, PWM计时器,标准和高级通讯接口. 一套全面的省电模式允许设计者设计低功耗应用。可以大大的满足我们对芯片的要求。如图3-1,是STM32F103C8T6芯片。图3-1 STM32F103C8T6(二)红外感应模块介绍红外感应模块是用红外线为介质的测量系统,在本设计中,主要通过红外感应模块来进行纸张的再次检测,当红外感应模块检测不到纸张时,系统将会停止工作。图3-2 红外感应模块(三)开关模块介绍开关是一个可以使电路开路、使电流中断或使其流到其他电路的电子元件。通过开关,我们实现了对该设计的断电和上电的操作。 图3-3 开关最小系统电路设计介绍下面将按照系统框图的设计方法对这款智能交通灯系统的各个功能子电路进行设计,硬件系统部分将首先开始对最小系统电路进行设计。如图3-4是智能交通灯的最小系统,在其各个引脚上外接了各个模块,通过最小系统,可以控制各个模块之间的连接与使用。图3-4 最小系统原理图Led控制电路介绍本设计才用的led为RGB LED,该LED普通LED不同,它是由红绿蓝三种颜色构成,通过高低电平来点亮其内部的灯珠来进行颜色的混合,达到自己想要的颜色,可以通过其内部引脚的编译来控制其颜色的变化。是一款可以编程的LED。在led前串联一个4.7k的电阻主要是为了保护led,防止电压过高将其打穿。如图3-5,是LED的原理图。图3-5 LED的原理图数码管驱动控制电路介绍本设计所使用的数码管为共阳数码管,该数码管有8段,分别为abcdefgh,通过点亮每一段来完成数码管的点亮。本设计的数码管采用动态点亮的方式,相比于静态点亮,动态降低了功耗且效果更好。将数码管的位选和最小系统的COM口相连,通过对COM口的编译来控制数码管的亮灭。在每一段数码管上串联一个1k电阻是为了保护数码管以及防止最小系统直接供电给数码管导致其数码管抖动。如图3-6,是数码管原理图。图3-6 数码管原理图红外传感器驱动电路介绍 红外传感器主要是为了检测过往的车辆,当检测到车辆时,其就会发送一个信号给最小系统,最小系统反馈给监察人员,从而进行有效的管理。如图3-7,是红外传感器的原理图。 图3-7 红外传感器的原理图开关控制电路介绍该设备通过按键来进行功能的切换,通过按键可以切换该设备的工作状态。该按键通过3.3v的电压来进行控制。当按键按下时,它会给最小系统发送一个高电平型号,进而控制各个模块的功能切换。如图3-8是按键电路。图3-8 按键电路智能交通灯系统软件设计智能交通灯的主程序流程设计智能储物箱系统的设计部分包括了硬件系统和软件系统两个部分,上文已经对硬件电路系统的最小系统,ds1302时钟电路,led控制电路,共阳数码管显示电路,按键控制电路,红外检测电路等电路进行了介绍,本部分的主要内容则是给这些电路进行软件程序的驱动。当初始化完成后,系统将进入正式的工作阶段, 最小系统发送信号启动数码管和led灯,led灯的初始颜色为绿色。数码管开始20秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为3秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入10s的倒计时,倒计时结束后切换为红色,进行循环,此为白天模式。当按键按下时,模式进行切换。数码管开始30秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为5秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入20s的倒计时,倒计时结束后切换为红色,进行循环。此为黑夜模式。当倒计时出现故障时,蜂鸣器发出1s的报警,然后重新启动最小系统。进行工作。在12864显示屏上显示着当前的灯的颜色,倒计时状态,红外检测状态。当红外检测模块检测到车辆过多时,进入紧急模式,数码管开始10秒的倒计时,当倒计时到0时,led灯颜色切换为黄色,数码管刷新,重新开始倒计时,倒计时时间为2秒,倒计时到0时,led灯切换为黄色。数码管再次刷新,进入30s的倒计时,倒计时结束后切换为红色,进行循环。如图4-1,是软件控制流程图图4-1(二)LED控制程序设计LED采用的是RGB LED,上电后,点亮其颜色,红,绿,黄三种颜色,其中黄色需要颜色的混合。其切换由中断来进行控制。如图4-2,是LED的控制程序。 图4-2 LED的控制程序(三)中断程序设计由于数码管的显示是实时刷新,LED也需要按时刷新切换,于是为他配置了定时器T1 1ms产生一次中断。实现每一秒刷新一次数据。而数码管的显示是上电就开始显示的,所以我们不需要给他特地的标志位来控制他的运行。这样,我们就可以根据我们所需要的时间来进行配置了。如图4-3,是中断配置的流程图。图4-3 中断配置的流程图(四)数码管驱动程序设计数码管段码,位码与最小系统COM口相接。由于数码管动态扫描需要一个扫描频率。扫描频率下限为50HZ,低于一定的扫描频率,显示会闪烁。频率过高,则亮度较差且占用cpu资源。一般整个数码管扫描一遍时间为约10ms较合适,我们用的是四位数码管,每个数码管点亮时间为2ms,扫描一遍时间为8ms。为保证这个刷新频率,通过是通过定时器来周期性进行数码管刷新。如图4-4是数码管的流程图。图4-4 数码管的流程图(五)开关控制程序设计 开关负责控制外设的使用,当设备上电时,开关按下,发送高电平给最小系统,最小系统开始工作。当工作完成时,关闭开关。如图4-5,是按键设计流程图。图4-5 按键设计流程图(六)DS1302驱动程序设计首先对时钟芯片的管脚进行定义,定义其时钟线,数据线,复位线。然后通过晶振读取时间数据,读取年月日时分秒,接着设置初始时间,将数据写入地址位中,再写入字节,最后读取数据,将数据进行调用。如图4-6,是DS1302的流程图。 图4-6 DS1302的流程图(七)红外检测程序设计 设备上电,红外检测开始工作,当其检测到物体时,发送信号给单片机,完成一次工作。如图4-7,是其原理图。图4-7 红外检测流程图 五.实物调试及结果分析(一)硬件调试 再给设备上电后,其激光检测传感器检测障碍物时发现,其灵敏度不够高,在从软件方面将灵敏度提高到最高后发现,其灵敏度与预测的还有所偏差,于是查看原理图,开始进行调节,最后通过不断地测试,将与激光检测传感器相串联电阻的阻值由1000欧姆调到,100欧姆,调到了10欧姆,最后将电阻撤去。通过多次试验后发现,100欧姆与预设值最为接近,其准确性更高。于是采用了100欧姆这个电阻进行使用。(二)软件调试 由于采用的led灯为RGB灯,其内部可以进行编程。为了使得灯光的颜色比较纯正且不刺眼,本设计通过kvel5来对灯进行编译,在查询色卡和网上对RGB小灯颜色编译的资料后,开始一步一步的进行点灯,进行色彩选择的实验。在通过不断地颜色混合,由红,绿,蓝三原色进行不断配合后,最终将颜色试出。达到了预定的效果。(三)操作步骤首先给设备进行上电,进行检测,接着按下按键进行功能的切换。如图5-1,是实物的最终样子。图5-1,实物图总结本设计主要由软件部分和硬件部分两个部分,通过各种模块与外设构成其硬件部分,通过kvil5来对其各个外设与最小系统之间进行编译,从而进行通信,完成其连接,达到可以使用的地步。本设计从开始到最后的结束,其历时一年,在这一年中,从开始的选题,定方案,查找资料,选择材料,构建硬件框架,编译软件,测试,排除故障,优化性能,撰写论文,这一系列都历历在目。在选题时,经历了从网上查找资料,结合自己能力,和老师探讨题目的可行性等等一系列的过程,在老师的不断帮助下,确认了课题。通过老师将课题不断地分解,由一个大项目变成了一个个阶段性需要完成的目标,这让我有了学习的方向,一步一步地完成自己的毕业设计。在这次经历中我明白了一个道理,只有理论知识提高了;才可以将书本上的知识与实践相结合,理论结合实践,提高自己的操作动手能力。这个设计在现实生活中也有着实用的价值,让我有了丰富的经验。通过这次毕业设计,让我明白了理论和实际的差别,这也让我今后有了努力奋斗的目标。参考文献刘澳儒;曹妍;龚涛;杨友娇;杜欢,基于深度学习的智能交通灯控制方法设计,电脑编程技巧与维护,2020占雅聪;刘宽;施忠祥;徐颖秦,基于单片机的智能交通灯控制系统设计,电子测试,2020史萍;卞建英;王菲,基于CPLD的智能交通灯控制器设计,轻工科技,2020李金澎;丁博;王雨;吕思浓,基于GA和LSTM的智能交通灯调度方法,物联网技术,2020曾俏华,基于项目式学习的Arduino创意课程活动设计——以“单组交通灯的设计”为例,教育信息技术,2019宋嘉炜;张程誉;何思卓,具有车流量检测功能的智能交通灯控制系统设计,计算机与数字工程,2019 致谢天下无不散之筵席,转眼三年一晃而逝,我也结束了在的学习之旅。在这三年中,有过快乐,有过委屈,有过迷茫。但是在这三年中,我也收获了很多,结交了一群志同道合的朋友们,他们在我的生活上关心我,在我遇到困难时给我伸出援助之手,在我陷入茫然的时候给我指明方向。在他们的帮助下,我的生活是充实的,是充满色彩的。我还要感谢我的室友们,如果没有他们我可能还要一个人面对这座陌生的城市,是你们带给我了许多温暖,也让我们之间有了胜似亲人的感情,也让我们寝室有着家的融洽。这几年我们从未吵过架,也很少红过脸,我们一起笑,一起闹。虽然现在要分别很难在一起了,但感情是不会变的,我会一辈子记得我们在一起的日子,希望大家各自珍重,顺顺利利的。最后,我还要感谢我的指导老师——姜老师,没有他就完不成我的毕业设计。他为人和蔼可亲,平易近人,在专业上他一丝不苟,精益求精。是我的良师。附录附录一 电路原理图附录二 PCB版图CommentDescriptionDesignatorFootprintLibRefQuantityBatteryBt?Battery120p,0603CapacitorC?C0603Cap4104,0603CapacitorC?C0603Cap8105,0603CapacitorC?C0603Cap2106,0603CapacitorC?C0603Cap1223,0603CapacitorC?C0603Cap1LEDD?LEDLED7红外发射管D?LED_send1红外接收管D?TO-226-AALED_rec1SEG2_PPublic PossitiveDS?SEG2_P1BuzzerMagnetic Transducer BuzzerLS?ABSM-1574Buzzer1Header 3Header, 3-PinP?HDR1X3Header 31Header 3X2Header, 3-Pin, Dual rowP?HDR2X3Header 3X21Header 5Header, 5-PinP?HDR1X5Header 51Header 20Header, 20-PinP?HDR1X20Header 203SWDHeader, 4-PinP?HDR1X4Header 412N551NPN General Purpose AmplifierQ?TO-92A2N390412N5551NPN General Purpose AmplifierQ?TO-92A2N390412N5551NPN Bipolar TransistorQ?TO-226-AANPN11K,0603ResistorR?R0603Res251M,0603ResistorR?R0603Res214.7K,0603ResistorR?R0603Res2410K,0603ResistorR?R0603Res2651R,0603ResistorR?R0603Res21100K,0603ResistorR?R0603Res22100R,0603ResistorR?R0603Res22510R,0603ResistorR?R0603Res22820R,0603ResistorR?R0603Res28RPotPotentiometerR?VR5RPot1SW-PBSwitchS?SPST-2SW-PB1SW-PB_VSWITCHSW?KEY-SMTSW-PB_V1LM393U?LM3931RT9193U?SOT-23-5RT9193X_5P1STM32F103C8T6U?48PSTM32F103C8T61USB-mricoU?Micro_USBusb-STM1DS1302U?DS130218MCrystal OscillatorY?X/2.5/2/6/2.5XTAL132.768KCrystal OscillatorY?X/2.5/2/6/2.5XTAL2附录三 元器件清单#include "stm32f10x.h"#include "led.h"#include "key.h"#include "delay.h"#include "bsp_exti.h"#include "RCC_Set_UP.h"#include "bsp_usart.h"#include "OLED.h"#include "picture.h"#include "I2C.h"#include "main.h"#include "timer.h"//uint32_t system_Instructions_led=0;//系统运行指示灯uint8_t key_flag = 0;uint8_t key_status = 0;uint8_t infared = 1;uint8_t infared_flag = 0;uint8_t add = 0;uint16_t duan[10] = {0x0008,0x00f8,0x0120,0x00a0,0x00d0,0x0280,0x0200,0x00e8,0x0000,0x0080}; // 0 1 2 3 4 5 6 7 8 9uint8_t dis1[]={"灯的颜色"};uint8_t dis2[]={"计时状态OK"};uint8_t dis3[]={"红外状态"};uint8_t numt = 0;uint8_t num = 0;uint8_t count = 0;uint8_t temp1 = 0;uint8_t second = 0;int8_t day = 0;int8_t night = 0;int8_t sign = 0;int8_t stat = 0;/*******************************************************************************主函数*****************************************************************************/int main(void){ uint16_t temp0; delay_ms(1000); rcc_init(RCC_PLLMul_9);//配置系统时钟并选择倍频系数(9) led_gpio_init(); //led端口初始化 key_gpio_init(); IO_Init(); LCD_Init(); TIM2_Init(); day = 1; night = 0; sign = 0; stat = 1; second = 0; temp1 = 20; while(1){//红外感应 infared = Read_infared(); if(infared_flag == 0) { if(infared == 0) { sign = 0xfe|sign; sign = ~sign; if(sign == 1) { sign = 1; day = 0; night = 0; stat = 1; temp1 = 10; second = 0; } else { if(add%2 == 0) { day = 1; night = 0; sign = 0; stat = 1; temp1 = 20; second = 0; } else { day = 0; night = 1; sign = 0; stat = 1; temp1 = 30; second = 0; } } infared_flag = 1; } } if(infared_flag == 1) { if(infared == 1) { infared_flag = 0; } }//*红外感应*//按键检测 if(sign == 0) { key_status = Read_Key1_state(); if(key_flag == 0) { if(key_status == 0) { add++; if(add == 32) { add = 0; } if(add%2 == 0) { day = 1; night = 0; sign = 0; stat = 1; temp1 = 20; second = 0; } else { day = 0; night = 1; sign = 0; stat = 1; temp1 = 30; second = 0; } key_flag = 1; } } if(key_flag == 1) { if(key_status == 1) { key_flag = 0; } } }//*按键检测*//模式 if(sign == 1) { if(stat == 1) { if(temp1 == 0) { stat = 2; temp1 = 2; } } if(stat == 2) { if(temp1 == 0) { stat = 3; temp1 = 30; } } if(stat == 3) { if(temp1 == 0) { stat = 1; temp1 = 10; } } }//白日模式 if(day == 1) { if(stat == 1) { if(temp1 == 0) { stat = 2; temp1 = 3; } } if(stat == 2) { if(temp1 == 0) { stat = 3; temp1 = 10; } } if(stat == 3) { if(temp1 == 0) { stat = 1; temp1 = 20; } } }//黑夜模式 if(night == 1) { if(stat == 1) { if(temp1 == 0) { stat = 2; temp1 = 5; } } if(stat == 2) { if(temp1 == 0) { stat = 3; temp1 = 20; } } if(stat == 3) { if(temp1 == 0) { stat = 1; temp1 = 30; } } } LCD_Wmessage(dis1,LINE1); LCD_Wmessage(dis2,LINE2); LCD_Wmessage(dis3,LINE3); if(stat == 1) { led_gules(OFF); led_yellow(ON); led_green(OFF); LCD_Wmessage("绿",0x85); } if(stat == 2) { led_gules(ON); led_yellow(OFF); led_green(OFF); LCD_Wmessage("黄",0x85); } if(stat == 3) { led_gules(OFF); led_yellow(OFF); led_green(ON); LCD_Wmessage("红",0x85); } if(sign == 1) { LCD_Wmessage("急 ",0x8d); } else { LCD_Wmessage("不急",0x8d); }//*模式* numt = temp1/10; num = temp1%10;// delay_ms(10); second++; if(second == 6) { temp1--; second = 0; } }}void TIM2_IRQHandler(void) { uint16_t temp; if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { temp = GPIOB->ODR & 0xfc04; GPIO_Write(GPIOB, temp|0x03fb); if(count == 2) count = 0; count ++; if(count == 1) { temp = (GPIOB->ODR & 0xfc04)|duan[numt]; GPIO_Write(GPIOB, temp|0x0001); } if(count == 2) { temp = (GPIOB->ODR & 0xfc04)|duan[num]; GPIO_Write(GPIOB, temp|0x0002); } TIM_ClearITPendingBit(TIM2, TIM_IT_Update); }}附录四 源程序代码附录五 成品照片
目录

原文链接:http://www.jxszl.com/dzxx/txgc/560120.html