简易交通灯设计论文报告2

更新时间:2024-04-02 13:52:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课程设计(论文)

简易交通灯设计

学 院 年 级 专 业 学 号 学生姓名 指导老师

2014 年 7 月

四川科技职业学院毕业论文设计 第I 页

四川科技职业学院毕业设计(论文)任务书

学生姓名 学院名称 论文题目 题目来源 基于单片机简易交通灯设计 实习实践( √ )理论研究( ) 学号 指导教师 专业名称 一、基本任务要求 基本任务: 本设计以单片机为主控芯片的简易交通灯。其硬件部分是由电源电路、单片机主控电路、交通灯设置电路等组成。软件部分由:protel、99工程图、Proteus仿真图、keil程序工程组成。能实现复位、夜间、紧急、设定时间、时间加减、交通灯转换功能。 要求: 1、该设计具有复位设定时间、时间加、时间减等功能。设定时间时,按下“设定时间”键,设定东西方向的倒计时时间,东西方向的两个数码管亮,再次按下“设定时间”键,则设定南北方向的倒计时时间,同时南北方向的两个数码管亮,再次按下则退出设定状态,开始运行。 2、还可实现夜间模式、紧急模式功能。当按下“夜间模式”按键后,四个方向的黄灯闪烁,再次按下则退出。当救护车、救火车等通过时,按下“紧急模式”按键,四个方向全部亮红灯,待紧急车辆通过后,再次按键退出。 3、运用proteus进行仿真实现交通灯转换。 4、运用C语言实现软件相关功能。 5、焊接并完成作品调试。 二、工作内容及时间安排 1.选题: 2.开题报告: 3.收集资料及实施研究: 4.完成初稿: 5.完成修改稿: 6.完成定稿: 7.答辩: 2014 年 9 月 6 日前 2014 年 9 月 11 日前 2014 年 9 月 15 日前 2014 年 10 月 1 日前 2014 年 10 月 5 日前 2014 年 11 月 30 日前 2014 年 12 月 14 日前 修德技精 勤思协作

四川科技职业学院毕业论文设计 第II 页

摘 要

如今交通灯控制系统是现代社会出行安全的重要标志,它是一套独特的公共管理系统,随着单片机进入主流,它已经融入到我们的生活中了。单片机运用广泛性强、经济实惠、等优点,单片机应用系统以单片机为核心,同时配以相应的外围电路及软件来完成某种或几种功能的系统,本文介绍怎么利用AT89C51单片机去设计制作一个模拟交通灯系统。

本设计采用单片机进行主设计,该交通灯测量电路是由电源电路、单片机主控电路、交通灯设置电路、显示电路等组成。包含以下几个模块:1、复位电路模块,实现程序的保护功能。2、晶振电路模块,为系统提供基本的时钟信号。3、显示模块,4、串口电路,除此之外还有程序系统的设计:1、主程序设计 2、 显示程序设计 3、交通灯程序设计;4 采用proteus软件和keil软件进行调试。

该设计使用时间长、节省能源、体积小、价格便宜、环保,能够广泛的应用。最主要的是能够指导人们和车辆的有秩序行使,保证一定安全度。

关键词:AT89C51,单片机,LED灯

修德技精 勤思协作

四川科技职业学院毕业论文设计 第 Ⅲ 页

目 录

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 2 页

第一章 绪 论

1.1课题研究背景及意义

交通是城市经济活动的命脉,对城市经济发展、人民生活水平的提高起着十分重要的作用。城市交通问题是困扰城市发展、制约城市经济建设的重要因素。城市道路增长的有限与车辆增长的无限这一对矛盾是导致城市交通拥挤的根本原因。城市街道网络上的交通容量的不断增加,表明车辆对道路容量的要求仍然很高,短期内还不可能改变。

本文提出一种利用单片机自动控制交通灯及时间倒计时显示的方法,将整个系统缩小在一块小小的单片机上,大大提高了产品的经济性和轻便性。设计过程包括硬件电路设计和程序设计两大步骤。硬件电路其结构比较简单,主要包括核心器件单片机、12只二极管组成的模拟交通灯、复位电路、振荡电路、显示数码管模块。单片机开发中除必要的硬件外,同样离不开软件,本文就用Keil编程,相比硬件设计程序较为复杂,必需同时考虑灯控制、时间显示、紧急开关等问题,并且具有一定的C语言基础和一定的思维能力及逻辑能力。智能交通灯控制系统设计就显示出了它的研究意义。它能根据道路交通拥护,交叉路口经常出现拥堵的情况,利用单片机控制技术,实现道路的最大通行效率。通过单片机课程设计,熟练掌握C语言的编程方法,将理论联系到实践中去,提高动脑和动手的能力。同时通过交通信号灯控制系统的设计,掌握定时/计数器、中断的使用方法,和简单程序的编写,最终提高逻辑抽象能力。

1.2城市交通的作用

城市是人类从事各类社会、政治、经济和文化的活动中心,在社会发展中起了重要的作用。汽车是这一时代文明的产物,在给人们带来巨大便利的同时,也使人们面临交通拥挤的困惑和道路交通安全事故的烦恼。在我国,随着改革开放政策的贯彻实施,国民经济得到了迅猛发展,道路交通也得到了迅速得发展。与此同时,由于城市化进程的加速,城市规模不断膨胀,城市的经济贸易和社会的活动日益频繁,人员流动与社会交往日益增多,使得城市交通拥挤和交通安全事

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 3 页

故问题更加透突出。城市交通作为城市基础设施重要组成部分,如何改善、完善和发展城市交通,越来越被人们所重视。城市交通作为支撑城市活动的主要基础设施,是城市的枢纽和命脉,如不及早实施综合治理,将严重的影响城市居民生活的提高和城市的经济发展。由于我国城市基础设施的发展滞后于城市建设的发展,严重影响了城市及周边地区的经济发展。因此,城市交通问题的解决,不但可以使人们的生命财产有保障,而且可以加快经济的发展和社会的进步。

交叉路口是城市交通系统重要的组成部分,是城市道路网的咽喉,其通行能力制约着城市道路的通达,是影响道路畅通的瓶颈。众所周知,提高交叉路口通行能力的最有效办法是修建立交桥。鉴于我国道路基础设施现状以及从各个城市的经济水平情况,立交桥尚不能推广普及。因此,人们更多的采用交通控制这一方式来充分利用交叉路口的时空资源,按照现实的交通流给予相应的最适宜的交通控制,最大程度的提高交叉路口的通行能力,不但能提高车辆通过交叉路口的速度、减少延误、节约人们的出行时间,同时能避免该交叉路口发生堵车,影响交叉路口临近路段及更远路段的顺利通行。据有关的资料显示,机动车辆在其减速制动和起动期间所排放的有害物质是其正常行驶时的7倍左右。因此,解决好城市交叉路口通行问题,减少机动车辆在交叉路口附近停车延误对提高社会的经济效益和环境保护都是具有重大意义的。

1.3 我国交通中存在的主要问题

交通的发展,促进了人类社会的不断进步。社会的进步,又促进了交通设

施的建设 、交通工具的改进。然而,随着机动车辆的迅速增加,人们在专区由机动车辆所带来的巨大利润以及充分享受汽车巨大便利的同时,也越来越受到交通拥挤、交通事故频发、环境污染加剧和燃油量上升所带来的困惑。我国是一个发展中国家,经济还不是很发达,因而产生了具有中国特色的城市交通局面。由于先天的不足,城市交通控制系统存在很多问题,如系统应用环境的变数大、系统适应性差等一些棘手的问题,这些问题可以说是我国城市交通系统的特点。具体表现在如下几个方面:

(1)车型种类繁杂,混合交通严重。

(2)交通事故频发,对人类生命安全构成极大的威胁。

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 4 页

(3)交通拥挤严重,导致出行时间增加,能源消耗增大。 (4)空气污染和噪声污染严重,且日益加剧。

1.4城市交通解决的主要途径

针对城市交通拥挤,有人提出修建新的城市道路或是修建新的立交桥。可是,过不了多长的时间,道路又恢复到原来的拥挤状态。一般来说修建新的道路不会改变原来的拥挤,诱发的交通量将很快占据新增的道路设施,这部分潜在的交通量是由于以前受道路供给短缺的制约而未能得到实现的。

由于修建道路并不能从根本上解决城市交通拥挤的问题,人们开始寻求新的解决途径。随着人们对控制理论的认识和利用的不断深入以及计算机技术的发展,利用控制理论和计算机技术来解决交通问题显得越来越重要了。各国相继开发了不同的交通控制系统,为缓解交通问题做出了很大的贡献。随着人工智能这一新兴的科学的兴起,人们开始将其引入到城市交通控制中来。经过大量的探索和研究实践,人们相信智能控制是解决城市交通问题的强有力的工具。

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 5 页

第二章 总体方案设计

2.1 信号控制方式的分类

使用信号机控制交通流称为交通信号控制,交通信号控制的目的是与交通

量相适应,用时间比分配给相互交错的交通流通行权。信号控制的方式和分类有很多种。本文按控制的范围将信号控制分为点控、线控和面控。 (1)点控

单点交叉口交通信号控制通常简称为“点控制”。 它以单个交叉口为控制对象,通过灯色的变化,在保证安全的前提下尽可能多地使各方向车辆通过。它是交通信号控制的最基本形式。点控制又可分为:定周期控制、感应式信号控制及模糊逻辑式信号控制。 (2)线控

“线控”是干道交通信号协调控制系统的简称,就是把一条主干道上一批相邻的交通信号联动起来,让干线上交叉口的信号控制器具有相同的周期,绿信号开启时间相继错开,从而使干线上行驶的车辆尽可能少遇或不遇红灯以减少延误,以便提高整个干道的通行能力。 (3)面控

区域交通信号控制系统简称为“面控”,它把整个区域中所有信号交叉口作为协调控制的对象。控制区内各受控交通信号都受中心控制室的中央控制机集中控制,从而可以提高道路通行能力,增加交通安全,节省能源和减少污染等等。

无论哪种控制,其控制变量主要有三个:信号周期,绿信比和相位差。点控制只需控制前两个变量即可。总之,交通控制过程可描述如下:根据交通法规,通过信号灯色的变化指示或提示车辆在交叉口处通信或暂停,在保证安全的前提下最大限度地提高交叉路口的通行能力。

2.2 交通规则介绍

世界现存有两种通行制:一是左行制,另一是右行制。全世界大约有90%的国家实行右行制,将来全世界有可能统一采用右行制。我国也是采用右行制。

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 6 页

现将一些基本的交通规则介绍如下:

(1)驾驶人员必须对两边的斑马线让道,除非中间有隔离岛。

(2)如果进入转盘左拐弯或右拐弯,必须分别打左右指示灯进入;如果是经过转盘直行,则不要打指示灯。当你进入转盘时,必须让路给所有右边来的车流。 出转盘时,必须顺着进入转盘时的车道打左转向灯。 (3)当在十字路口有禁止左转灯时,不能左转。

(4)若经转盘左拐弯,进入和拐弯知道离开转盘都必须一直打左转向灯。 (5)自行车道仅供自行车使用;公车道仅供自行车、摩托车和公交巴士使用。 其他驾驶人士可以穿越这两种特殊车道借道拐弯或停车(如果标志许可的话),但必须让路给正在合法使用这两种车道的车辆。

2.3 交通信号控制硬件设备简介

交通信号灯的硬件设备。其构成可分为以下五部分:

(1) 信号灯:就是悬挂在道路上空或设置在路侧灯柱上的发光装置,内装彩色信号灯;

(2) 车辆检测器:车辆通过检测器时,由感应原理可以检测交通参数的设施,是感应式信号控制系统的必要设施;

(3)无线遥控装置:启闭信号灯,控制紧急车辆通过时的红灯; (4)电子警察(摄像机):监控违章车辆; (5)单片机系统:整个信号灯控制的核心;

(6)附属设施:包括灯杆灯柱及其基础,装置信号控制机的底座与基础,埋设或悬挂传输线路的管道、线杆等。

2.4 交通信号控制系统信息传输系统简介

信息传输系统,也叫通讯系统,就是把信息从一个地方传输到另一个地

方。信息传输系统也是交通信号控制系统中的重要组成部分。通信系统的组成:

(1)通信的信道

a)信道的容量 信息传送的通路通常称为信道或线路。描述一个信道不

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 7 页

仅要通过它所连接的点到点的地理通路,而且还要根据它所具有的携带信息的容量。

b)信道的方向

单工: 在信息源和接收器之间提供单一的单向性通道。半双工:这种通信方式是在A站和B站之间只有一个通信信道,数据要么是A站发送,B站接收,要么B站发送,A站接收。双工: 允许信息同时在两个方向上传输的信道。

(2)数字数据传输 (3)调制和解调

2.5 常用交通标志简介

交通标志是交通系统中重要的一部分,用以帮助驾驶员掌握方向情况。现将部分常用标

志介绍如下:

表2-1 指示标志

直行 向左转弯 向右转弯 直行向右转弯 向左和向右转弯 靠右侧道路行驶 靠左侧道路行驶 立交直行/右转弯行驶 环岛行驶 直行向左转弯 立交直行和转弯行驶 鸣喇叭 机动车道 准许试刹车 单向行驶(向左/向右) 单向行驶(直行) 修德技精 勤思协作

四川科技职业学院毕业论文设计

第 8 页

2.6 交通信号控制原理

交通信号控制原理是按照一定的控制程序,在交叉路口的每个方向上通过红、黄、绿三色灯循环显示,指挥交通流,在时间上实施隔离。交通规则规定:红灯——停止通行,绿灯——放行,黄灯——清尾,即允许已过停车线的车辆继续通行,通过交叉路口。信号相位方案是指交通信号灯轮流给某些方向的车辆或行人分配交通权的一种顺序安排。我们把每一种控制(即对各进口道不同方向所显示的不同色灯的组合)称为一个信号相位。而一个相位又对应多个步伐,每一步伐对应该时刻不同灯色的状态。

路口的交通灯总在进行着一系列的相变以控制车辆的运动,一系列的相就组成了周期,如附表所示。交通灯优化控制问题,就是通过改变这些相的持续时间以及相邻路口交通灯的相的周期,使目标达到最优。

2.7单元电路(硬件电路设计)

2.7.1单片机STC89C52RC

STC89C52RC是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。STC89C52RC是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的STC89C52RC是一种高效微控制器,STC89C52RC是它的一种精简版本。STC89C52RC单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 9 页

图2.2STC89C52RC

功能特性:与MCS-51 兼容、4K字节可编程闪烁存储器、寿命:1000写/擦循环、数据保留时间:10年、全静态工作:0Hz-24Hz、三级程序存储器锁定、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源 可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路

2.7.2设计方案

交通控制系统主要控制东西、南北,车道的交通,整个系统以STC89C52RC单片机为核心芯片,通过控制三色LED的亮灭来控制各车道的通行,上电时通过上电复位电路使系统进入运行状态。总体设计框图如图2.1所示:

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 10 页

电源电路 STC89C52RC单片机 复位电路 按键电路 晶振电路 驱动电路 A到LED显示电路 B道LED显示电路 驱动电路 时钟电路 2.8系统工作原理

采用单片机的I/O口P0口通过上拉电阻和交通灯相连接,P3.0、P3.1口接到数码管控制位上,控制数码管的显示,程序放在STC89C52RC单片机的ROM中,在十字路口的四组红、黄、绿交通灯中,由单片机的P1.0-P1.2 、P1.5-P1.7、P2.0-P2.2、P2.5-P2.7控制,由于交通灯为发光二极管且阳极通过限流电阻和电源正极相连,因此I/O口输出低电平时,与之相连的指示灯会亮,并通过数码管显示时间倒计时。I/O口输出高电平时,相应指示灯会灭。2.9.1功能概述

本设计由单片机、LED数码显示模块和按键等构成。单片机是集成的IC芯片STC89C52单片机,只需根据实际选型。其他部分都需要根据应用要求和性能指示设计。

本系统交通灯控制规则如下:

1)系统设置四组红、黄、绿交通指示灯,并配置四队LED显示器。正常情况下两个干线上的红、黄、绿灯进行转换。

2)东西方向和南北方向交替通行,东西方向每次放行20秒,南北方向每次放行20秒。

3)绿灯亮表示可以通行,红灯亮表示禁止通行,每次绿灯变红灯前,黄灯亮5秒钟。

4)十字路口要有倒计时显示,以便人们更方便直观的把握时间,具体要求

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 11 页

东西方向、南北方向通行时间及黄灯亮的时间均以秒为单位作减计数。

5)有紧急模式按键,按下后红灯常亮。 6)有夜间模式按键,按下后黄灯闪烁。 7)倒计时时间可以通过按键设定。

2.9系统构成

整个系统的构成以STC89C52RC单片机为核心,由I/O口扩展,LED数码管显示,还有复位电路、时钟电路等组成。单片机作为整个硬件系统的核心,它既是协调整机工作的控制器,又是数据处理器。它由单片机、晶振电路、复位电路等组成。

行车方向指示采用LED发光二极管,可有红、绿两种颜色指示放行与禁止,黄灯作为红绿转换的提示,形象直观。系统采用双数码管倒计时计数功能,最大显示数字99。

3.0交通灯通行模式及行车方向指示

按交通灯控制规则,每个道口有红、黄、绿三种指示灯,交道口模型如图2.1所示:

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 12 页

图3.1 交道口模型图

2组LED数码管按照设置的通行时间(各路口默认的通行时间均为30s)进行倒计时,倒计时到5S时,绿灯变成黄灯,并各自进行红、黄、绿灯显示,共

有两种通行方式分别为:

图3.2 通行方式一示意图 图3.3 通行方式二示意图 通行方式一:倒计时时间为30s(通行时间),红绿灯状态为:东西通行:绿,南北禁行:红;如图3.2所示。

通行方式二:倒计时时间为30s(通行时间),红绿灯状态为:南北通行:绿;东西禁行:红;如图3.3所示。

通行默认时间为30s,系统设置了任意更改功能,可以根据实际情况进行调整,以提高车辆通过率,缓减交通压力。在通行结束前5秒钟,黄灯亮直至结束。本设计选用LED发光二极管的红绿灯状态用来指示交通指示信息。绿色表示通行,红色则表示禁止通行,黄灯等待。你所有指示信息一目了然。

3.1各单元电路模块功能

3.1.1时钟电路模块

时钟电路由一个晶体振荡器12MHZ和两个30pF的瓷片电容组成。时钟电路用于产生单片机工作所需的时钟信号,而时序所研究的是指令执行中各信号之间

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 13 页

的相互关系。单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。其电路如图3.4所示:

图3.4 时钟电路模块

3.1.2复位电路模块

电容在上接高电平,电阻在下接地,中间为RST。这种复位电路为高电平复位。其工作原理是:通电时,电容两端相当于是短路,于是RST引脚上为高电平,然后电源通过电阻对电容充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作。其电路如图3.5所示:

图3.5 复位电路模块

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 14 页

3.1.3主控制系统模块

主控制器采用STC89C52RC,STC89C52RC 单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单 片机,指令代码完全兼容传统 8051 单片机,12 时钟/机器周期和 6 时钟/机器周 期可以任意选择。

其特点如下:

1. 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机器周期可以任 意选择,指令代码完全兼容传统 8051.

2. 工作电压:5.5V~3.3V(5V 单片机)/3.8V~2.0V(3V 单片机) 3. 工作频率范围:0~40MHz,相当于普通 8051 的 0~80MHz,实际工 作频率可达 48MHz

4. 用户应用程序空间为 8K 字节 5. 片上集成 512 字节 RAM

6. 通用 I/O 口 (32 个) 复位后为: , P1/P2/P3/P4 是准双向口/弱上拉, P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。

7. ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程 序,数秒即可完成一片

8. 具有 EEPROM 功能 9. 具有看门狗功能

10. 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2

11. 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒

12. 通用异步串行口(UART) ,还可用定时器软件实现多个 UART 13. 工作温度范围:-40~+85℃(工业级)/0~75℃(商业级) 14. DIP 封装

修德技精 勤思协作

四川科技职业学院毕业论文设计

1234567第 15 页

854321DS1DCBEDS2SMG-2DECBDP9S2AVCCDPVCCW-green1W-red2W-yello3wA54A65E-yellow6E-red7E-green8S413S312A2A1A3*S4A4*S5A5*S6A6*R1811.0592C130PC230P311918RST9A417A3161514U1P10P11P12P13P14P15P16P17INT1INT0T1T0EA/VPX1X2RESETRDWRSTC89C52RXDTXDALE/PPSEN10P3.011P3.13029P00P01P02P03P04P05P06P07P20P21P22P23P24P25P26P2739383736353433322122232425262728ABCDEFGDPC3S1A1*RSTR1CS2A2*S3123456789S-greenS2AGF10D12678GFS1VCCR2L1N-greenS-yeowL2N-yellowL3N-redCS2L4E-greenS2S-yellowS-redS-greenS3L12W-red10W-redL11W-yellowAW-yellowFL10W-greenN-yeowN-greenN-redS-redN-greenSMG-2N-redN-yellowR3S4E-greenL5E-yellowE-yellowL6E-redE-redADPGF67891012B3C4E5DS2FADPGDECBS154321DECBS3CEDAFS2876S4SMG-2B10987J121135SW1246VCC6GAF接线端子自锁开关电池供电 电池盒上红线接1、黑线接2S1DBCE12DP34S94321CON4135SW1S1BCED246VCCA5S2自锁开关USB供电请先确定好正负极,用万用表可以量12345图3.6主控置系统模块电路

3.1.4交通灯输出控制模块

道口交通灯指示采用红、黄、绿发光二极管进行提示。其图如图3.7所示:

修德技精 勤思协作

DPR5VCCBDP9GS1GW-greenSMG-2L9S-redR4L8S-yellowL7S-greenBGDPAFS2S2SMG-2ATitleSizeA3Date:File:6NumberRevision24-Jan-2014Sheet of F:\\新淘宝东东四方向数码管交通灯Drawn\\protelBy原理图pcb\\jtd.Ddb78

四川科技职业学院毕业论文设计

第 16 页

图3.7LED显示模块电路

当R=1000欧时,按公式A=(5-1.8)/R计算,电路中的电流大小应为A=3.2mA。由于每个路口的通行双向指示处理相同,因此每个端口应具有6.4mA的吸收电流能力。

3.1.5时间显示电路模块

考虑设计需要,我们在各个方向分别用二位数码管用来显示倒计时时间,构成交通提示信息,形象逼真。本系统使用数码管完成倒计时显示功能。以方向东西为为例,数码管显示的数值从绿灯的设置时间最大值往下减,每秒钟减1,一直减到0。然后又从红灯的设置时间最大值往下减,一直减到0。接下来又显示绿灯时间,如此循环。

系统共有4个二位的LED 数码管,分别放置在模拟交通灯上方。 道口通行剩余时间采用红色7段数码管显示,采用共阴数码管,如用单片机P0口加上拉电阻驱动,P3.0/P3.1来控制数码管的位。其显示电路如图3.8所示:

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 17 页

图3.8数码管显示模块电路

3.1.6系统电源模块电路

由于该系统中 51 单片机及二极管工作电压均为 5V 电压,所以要保证系统稳定可靠的工作,需要设计一个可以稳定提供 5V 电压的供电系统。本设计采用外置3节5号电池作为系统的供电电源,该系统电源电路设计如图3.9所示:

图3.9系统电源电路

3.1.7 按键输入模块

由于该系统具有夜间模式,紧急模式和交通灯倒计时时间设定功能,所有需要加上这些功能键,如下图3.10所示:

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 18 页

3.10 按键输入

夜间模式:按下夜间模式按键进入,四方向红灯长亮,再次按下按键退出。 紧急模式:按下紧急模式按键进入,四方向黄灯闪烁,再次按下按键退出。 设定倒计时时间:按下设定键后,进入设定状态,先设定南北方向,再次按下按键设定东西方向,设定好后,按下按键退出,正常运行。

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 19 页

第三章 软件设计

3.1系统软件设计

根据实际交通灯的变化情况和规律。假设一个十字路

口为东南西北走向。初始状态1东西绿灯通车,南北红灯亮。过30s,转状态2,东西绿灯灭黄灯亮,南北红灯灭黄灯亮,过5s,再转状态3,南北绿灯通车,东西红灯亮。过30s,转状态4,南北绿灯灭黄灯亮,东西红灯灭黄灯亮,过5s,又循环至状态1。对于交通信号灯来说东西南北共四组灯,由于同一道上的两组的信号灯的显示情况是相同的,因此,采用单片机内部的I/O口来控制12个信号灯。通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。

3.2软件总体流程图

软件总体设计及流程图见图3-1,主要完成各部分的软件控制和协调。本系统主程序模块主要完成的工作是对系统的初始化,发送显示数据,同时对按键进行扫描,等待外部中断,以及根据所需要的功能进行相应的操作。其流程图如图4.1所示:

修德技精 勤思协作

四川科技职业学院毕业论文设计

图4.1 流程图

修德技精 勤思协作 第 20 页

四川科技职业学院毕业论文设计

第 21 页

第四章制作与软件调试

软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

Keil uVision

Keil是德国开发的一个51单片机开发软件平台,最开始只是一个支持C语言和汇编语言的编译器软件。后来随着开发人员的不断努力以及版本的不断升级,使它已经成为了一个重要的单片机开发平台,不过Keil的界面并不是非常复杂,操作也不是非常困难,很多工程师的开发的优秀程序都是在Keil的平台上编写出来的。可以说它是一个比较重要的软件,熟悉他的人很多很多,用户群极为庞大,要远远超过伟福等厂家软件用户群,操作有不懂的地方只要找相关的书看看,到相关的单片机技术论坛问问,很快就可以掌握它的基本使用了。

Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。

硬件调试

硬件调试是利用DVCC实验与开发系统、基本测试仪器(万用表、示波器等),检查用户系统硬件中存在的故障。

硬件调试可分为静态调试与动态调试两步进行。 静态调试是在用户系统未工作时的一种硬件检测。

第一步:目测。检查外部的各种元件或者是电路是否有断点。

第二步:用万用表测试。先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。

第三步:加电检测。给板加电,检测所有插座或是器件的电源端是否符合要

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 22 页

求的值

第四步:是联机检查。因为只有用单片机开发系统才能完成对用户系统的调试。

动态调试:是在用户系统工作的情况下发现和排除用户系统硬件中存在的器件内部故障、器件连接逻辑错误等的一种硬件检查。动态调试的一般方法是由近及远、由分到合。由分到合是指首先按逻辑功能将用户系统硬件电路分为若干块,当调试电路时,与该元件无关的 器件全部从用户系统中去掉,这样可以将故障范围限定在某个局部的电路上。当各块电路无故障后,将各电路逐块加入系统中,在对各块电路功能及各电路间可能存在的相互联系进行调试。由分到合的调试既告完成。由近及远是将信号流经的各器件按照距离单片机的逻辑距离进行由近及远的分层,然后分层调试。调试时,仍采用去掉无关元件的方法,逐层调试下去,就会定位故障元件了。

仿真结果图

图4.1仿真图

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 28 页

附录C:程序

#include

#include //包含库文件

sbit smg1=P3^0; //定义南北方向数码管低位 sbit smg2=P3^1; //定义南北方向数码管高位 sbit smg3=P3^2; //定义东西方向数码管低位 sbit smg4=P3^3; //定义东西方向数码管高位 sbit N_green=P2^0; //定义北向绿灯端口 sbit N_red=P2^1; //定义北向红灯端口

sbit N_yellow=P2^2; //定义北向黄灯端口

sbit S_green=P2^7; //定义南向绿灯端口 sbit S_red=P2^6; //定义南向红灯端口 sbit S_yellow=P2^5; //定义南向黄灯端口

sbit W_green=P1^0; //定义西向绿灯端口 sbit W_red=P1^1; //定义西向红灯端口

sbit W_yellow=P1^2; //定义西向黄灯端口

sbit E_green=P1^7; //定义东向绿灯端口 sbit E_red=P1^6; //定义东向红灯端口 sbit E_yellow=P1^5; //定义东向黄灯端口

sbit k0=P3^4; //定义复位按键 sbit k1=P3^5; //定义夜间模式按键 sbit k2=P3^6; //定义紧急模式按键 sbit menu=P3^7; //定义设定时间按键 sbit zj=P1^3; //定义时间加按键 sbit jx=P1^4; //定义时间键按键

int kkk=0,fk=0;

int djs22,js1=0,djs21,flgaa,nbdjs=20,dxdjs=20; //以上为临时变量 int js=0,djs=20,djs1=20; //初始倒计时时间

int table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x40}; //共阴极数码管段值

/************以下为函数声明*************/ void jtd(); void jtda(); void jtdb(); void djsxs();

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 29 页

void yj(); void jj(); void jtday(); void jtdby();

/*****************************************************/ /* 函数名:delayms */ /* 功能:产生毫秒级延时 */ /*****************************************************/ void delayms(int x) {

char i; while(x--) {

for(i=150;i>0;i--); } }

/*****************************************************/ /* 函数名:Timer0_init() */ /* 功能:定时器0初始化 */ /*****************************************************/ void Timer0_init() {

js=0; TMOD=0x01; //定义定时器0工作模式 TH0=0x4c; //赋初值高位 TL0=0x00; //赋初值低位 TR0=1; //启动定时器 ET0=1; //开中断 EA=1; //开全局中断 }

/*****************************************************/ /* 函数名:timer0() interrupt 1 using 1 */ /* 功能:定时器0中断服务函数 */ /*****************************************************/ void timer0() interrupt 1 using 1 { TF0=0; TH0=0x4c; TL0=0x00; //重新赋高地位初值 js++; if(js==22) { js=0; djs--;

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 30 页

djs1--; kkk++; //以上用于产生1S中断 } }

/*****************************************************/ /* 函数名:djsxs22() */ /* 功能:4个数码管动态显示 */ /*****************************************************/ void djsxs22() { int b1,b2; b1=djs1/10; //将倒计时时间的高位赋予b1 b2=djs1; //将倒计时时间的低位赋予b2 P0=table[b1]; smg1=0;

delayms(3);

smg1=1; //显示b1 P0=table[b2]; smg2=0; delayms(3); smg2=1; //显示b2 P0=table[b1]; smg3=0;

delayms(3);

smg3=1; //显示b1 P0=table[b2]; smg4=0; delayms(3); smg4=1; //显示b2 }

/*****************************************************/ /* 函数名:djsxs11() */ /* 功能:4个数码管动态显示 */ /*****************************************************/ void djsxs11() //此函数注视同djsxs22() { int b1,b2; b1=djs/10; //将倒计时时间的高位赋予b1 b2=djs; //将倒计时时间的低位赋予b2 P0=table[b1]; smg1=0;

delayms(3);

smg1=1; //显示b1

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 31 页

P0=table[b2]; smg2=0; delayms(3); smg2=1; //显示b2 P0=table[b1]; smg3=0;

delayms(3);

smg3=1; //显示b1 P0=table[b2]; smg4=0; delayms(3); smg4=1; //显示b2 }

/*****************************************************/ /* 函数名:djsxs1() */ /* 功能:用来显示设定东西倒计时的时间 */ /*****************************************************/ void djsxs1() { int b1,b2; b1=djs1/10; //将倒计时时间的高位赋予b1 b2=djs1; //将倒计时时间的低位赋予b2 P0=table[b1]; smg3=0;

delayms(3);

smg3=1; //显示b1 P0=table[b2]; smg4=0; delayms(3); //显示b2 smg4=1; }

/*****************************************************/ /* 函数名:djsxs() */ /* 功能:用来显示设定南北倒计时的时间 */ /*****************************************************/ void djsxs() { int b1,b2; b1=djs/10; //将倒计时时间的高位赋予b1 b2=djs; //将倒计时时间的低位赋予b2 P0=table[b1];

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 32 页

smg1=0;

delayms(3);

smg1=1; //显示b1 P0=table[b2]; smg2=0; delayms(3); smg2=1; //显示b2 }

/*****************************************************/ /* 函数名:jj() */ /* 功能:紧急模式,按下紧急模式按键后,四个方向 */ /* 数码管灭,红灯全亮,用于紧急车辆通过使 */ /* 用,比如消防车、救护车等。 */ /*****************************************************/ void jj() {

N_green=1; //北向绿灯灭 N_red=0; //北向红灯亮 N_yellow=1; //北向黄灯灭

S_green=1; //南向绿灯灭 S_red=0; //南向红灯亮 S_yellow=1; //南向黄灯灭

W_green=1; //西向绿灯灭 W_red=0; //西向红灯亮 W_yellow=1; //西向黄灯灭

E_green=1; //东向绿灯灭 E_red=0; //东向红灯亮 E_yellow=1; //东向黄灯灭 while(1) { if(k2==0) //紧急按键按下 { delayms(3); if(k2==0) { while(!k2); //去除抖动,确认是否紧急按键按下 TR0=1; //启动定时器,以下四句用来判断回到哪个模式的 if(flgaa==0) jtda(); //当flgaa=0时,回到jtda()函数

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 33 页

if(flgaa==1) jtdb(); //当flgaa=1时,回到jtdb()函数 if(flgaa==2) jtday(); //当flgaa=2时,回到jtday()函数 if(flgaa==3) jtdby(); //当flgaa=3时,回到jtday()函数 这样的作用是,紧急模式从哪里进入,回到哪里 } } } }

/*****************************************************/ /* 函数名:qm() */ /* 功能:使所有的交通信号灯全部熄灭 */ /*****************************************************/ void qm() {

N_green=1; N_red=1;

N_yellow=1;

S_green=1; S_red=1; S_yellow=1;

W_green=1; W_red=1;

W_yellow=1;

E_green=1; E_red=1; E_yellow=1; }

/*****************************************************/ /* 函数名:set_djs1() */ /* 功能:设定南北方向倒计时时间 */ /*****************************************************/ void set_djs1() {

while(1) { djsxs1(); //南北方向数码管显示当前时间

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 34 页

if(zj==0) //增加按键按下 { delayms(3); if(zj==0) { while(!zj); //去除抖动,确认是否增加按键按下 if(djs1>=99) djs1=99; //倒计时最大设定时间为99秒 else djs1++; //时间小于99秒时加一 nbdjs=djs1; //保存当前设定时间 } } if(jx==0) //减少按键按下 { delayms(3); if(jx==0) { while(!jx); //去除抖动,确认是否减少按键按下 if(djs1<=6) djs1=6; //倒计时最小设定时间为6秒 else djs1--; //时间大于6秒时减一 nbdjs=djs1; //保存当前设定时间 } } if(menu==0) //设定时间按键按下 { delayms(3); if(menu==0) { while(!menu); //去除抖动,确认是否按下 TR0=1; //定时器停止 nbdjs=djs1; //保存当前设定时间 jtda(); //调用函数 } } } }

/*****************************************************/

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 35 页

/* 函数名:set_djs() */ /* 功能:设定东西方向倒计时时间 */ /*****************************************************/ void set_djs() {

while(1) { djsxs(); 管显示当前时间 if(zj==0) { delayms(3); if(zj==0) { while(!zj); 动,确认是否增加按键按下 if(djs>=99) djs=99; 大设定时间为99秒 else djs++; 秒时加一 dxdjs=djs; 定时间 } } if(jx==0) 下 { delayms(3); if(jx==0) { while(!jx); 动,确认是否减少按键按下 if(djs<=6) djs=6; 小设定时间为6秒 else djs--; 6秒时减一 dxdjs=djs; 定时间 } } if(menu==0) 按键按下 { delayms(3); if(menu==0) { while(!menu); 修德技精 勤思协作 //东西方向数码 //增加按键按下 //去除抖 //倒计时最 //时间小于99 //保存当前设 //减少按键按 //去除抖 //倒计时最 //时间大于 //保存当前设 //设定时间 //去除抖动,确

四川科技职业学院毕业论文设计

第 36 页

认是否按下 TR0=0; //定时器停止 dxdjs=djs; //保存当前设定时间 set_djs1(); //调用南北倒计时时间设定函数 } } } }

/*****************************************************/ /* 函数名:yj() */ /* 功能:夜间模式,按下夜间模式按键后,四个方向 */ /* 数码管灭,黄灯闪烁,使用与夜晚车辆较少 */ /* 时使用。 */ /*****************************************************/ void yj() {

int i; qm(); //信号灯全部熄灭 while(1) {

W_yellow=0; //以下四行表示四个方向的黄灯亮 E_yellow=0; S_yellow=0; N_yellow=0;

for(i=0;i<2000;i++) //for语句,在这个作用是循环执行“是否夜间模式按键”按下,起到延时左右 { if(k1==0) //夜间模式按键按下 { delayms(3); if(k1==0) { while(!k1); //去除抖动,确认是否按下 TR0=1; //启动定时器,以下四句用来判断回到哪个模式的 if(flgaa==0) jtda(); //当flgaa=0时,回到jtda()函数 if(flgaa==1) jtdb(); //当flgaa=1时,回到jtdb()函数 if(flgaa==2) jtday(); //当flgaa=2

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 37 页

时,回到jtday()函数 if(flgaa==3) jtdby(); //当flgaa=3时,回到jtday()函数 这样的作用是,紧急模式从哪里进入,回到哪里 } } }

W_yellow=1; //以下四行表示四个方向的黄灯亮 E_yellow=1; S_yellow=1; N_yellow=1;

for(i=0;i<2000;i++) //for语句,在这个作用是循环执行“是否夜间模式按键”按下,起到延时左右 { if(k1==0) //夜间模式按键按下 { delayms(3); if(k1==0) { while(!k1); //去除抖动,确认是否按下 TR0=1; //启动定时器,以下四句用来判断回到哪个模式的 if(flgaa==0) jtda(); //当flgaa=0时,回到jtda()函数 if(flgaa==1) jtdb(); //当flgaa=1时,回到jtdb()函数 if(flgaa==2) jtday(); //当flgaa=2时,回到jtday()函数 if(flgaa==3) jtdby(); //当flgaa=3时,回到jtday()函数 这样的作用是,紧急模式从哪里进入,回到哪里 } } } } }

/*****************************************************/ /* 函数名:jtdb() */ /* 功能:交通灯东西方向绿灯亮,红灯灭 */ /* 交通灯南北方向红灯亮,绿灯灭 */ /*****************************************************/ void jtdb() {

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 38 页

qm(); //所有信号灯灭 flgaa=1; //标志位

W_green=0; //西向绿灯亮 E_green=0; //东向绿灯亮 N_red=0; //北向红灯亮 S_red=0; //南向红灯亮 while(1) { if(djs1>5) 时,执行 { if(k0==0) { delayms(3); if(k0==0) { while(!k0); 位”按键按下 djs=20; djs1=20; jtda(); } } if(k2==0) 按下 { delayms(3); if(k2==0) { while(!k2); 急模式”按键按下 TR0=0; jj(); } } if(k1==0) 按下 { delayms(3); if(k1==0) { while(!k1); 间模式”按键按下 TR0=0; yj(); } }

修德技精 //当倒计时时间大于5秒 //是否“复位”按键按下 //去除抖动,确定是否“复 //倒计时时间重新赋值 //倒计时时间重新赋值 //调用jtda()函数 //是否“紧急模式”按键 //去除抖动,确定是否“紧 //启动定时器 //调用紧急模式 //是否“夜间模式”按键 //去除抖动,确定是否“夜 //启动定时器 //调用夜间模式 勤思协作

四川科技职业学院毕业论文设计

第 39 页

if(menu==0) //是否“设定倒计时时间”按键按下 { delayms(3); if(menu==0) { while(!menu); //去除抖动,确定是否“设定倒计时时间”按键按下 TR0=0; //启动定时器 set_djs(); //调用设定倒计时时间函数 } } djsxs22(); //数码管时间显示 if(djs1<=5) //当倒计时时间小于5秒时,执行 { jtdby(); //调用函数 } } } }

/*****************************************************/ /* 函数名:jtdby() */ /* 功能:交通灯东西方向黄灯亮,红灯灭 */ /* 交通灯南北方向红灯亮,绿灯灭 */ /*****************************************************/ void jtdby() { qm(); //所有信号灯全灭 flgaa=3; //标志位

W_green=1; //西向绿灯灭 E_green=1; //东向绿灯灭 W_yellow=0; //西向黄灯亮 E_yellow=0; //东向黄灯亮 N_red=0; //北向红灯灭 S_red=0; //南向红灯灭 while(1) { if(k0==0) //是否“复位”按键按下 { delayms(3); if(k0==0) { while(!k0); //去除抖动,确定是否“复位”按键按下

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 40 页

djs=20; //倒计时时间重新赋值 djs1=20; //倒计时时间重新赋值 jtda(); //调用jtda()函数 } } if(k2==0) //是否“紧急模式”按键按下 { delayms(3); if(k2==0) { while(!k2); //去除抖动,确定是否“紧急模式”按键按下 TR0=0; //启动定时器 jj(); //调用紧急模式 } } if(k1==0) //是否“夜间模式”按键按下 { delayms(3); if(k1==0) { while(!k1); //去除抖动,确定是否“夜间模式”按键按下 TR0=0; //启动定时器 yj(); //调用夜间模式 } } if(menu==0) //是否“设定倒计时时间”按键按下 { delayms(3); if(menu==0) { while(!menu); //去除抖动,确定是否“设定倒计时时间”按键按下 TR0=0; //启动定时器 set_djs(); //调用设定倒计时时间函数 } }

djsxs22(); //数码管时间显示

if(djs1<0) //当倒计时时间小于0秒时,执行 {

djs=dxdjs; //将东西方向的倒计时时间保存 djs1=nbdjs; //将南北方向的倒计时时间保存

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 41 页

jtda(); //调用jtda()函数 } } }

/*****************************************************/ /* 函数名:jtda() */ /* 功能:交通灯南北方向绿灯亮,红灯灭 */ /* 交通灯东西方向红灯亮,绿灯灭 */ /*****************************************************/ void jtda() { qm(); //所有信号灯灭 flgaa=0; //标志位

N_green=0; //北向绿灯亮 S_green=0; //南向绿灯亮 W_red=0; //西向红灯亮 E_red=0; //东向红灯亮 while(1) {

if(djs>5) //当倒计时时间大于5秒时,执行 { if(k0==0) //是否“复位”按键按下 { delayms(3); if(k0==0) { while(!k0); //去除抖动,确定是否“复位”按键按下 djs=20; //倒计时时间重新赋值 djs1=20; //倒计时时间重新赋值 jtda(); //调用jtda()函数 } } if(k2==0) //是否“紧急模式”按键按下 { delayms(3); if(k2==0) { while(!k2); //去除抖动,确定是否“紧急模式”按键按下 TR0=0; //启动定时器 jj(); //调用紧急模式 } } if(k1==0) //是否“夜间模式”按键按下

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 42 页

{ delayms(3); if(k1==0) { while(!k1); //去除抖动,确定是否“夜间模式”按键按下 TR0=0; //启动定时器 yj(); //调用夜间模式 } } if(menu==0) //是否“设定倒计时时间”按键按下 { delayms(3); if(menu==0) { while(!menu); //去除抖动,确定是否“设定倒计时时间”按键按下 TR0=0; //启动定时器 set_djs(); //调用设定倒计时时间函数 } } djsxs11(); //数码管时间显示 if(djs<=5) //当倒计时时间小于5秒时,执行 { jtday(); //调用函数 } } } }

/*****************************************************/ /* 函数名:jtday() */ /* 功能:交通灯南北方向黄灯亮,红灯灭 */ /* 交通灯东西方向红灯亮,绿灯灭 */ /*****************************************************/ void jtday() { qm(); //所有信号灯全灭 N_green=1; //北向绿灯灭 S_green=1; //南向绿灯灭 N_yellow=0; //北向黄灯亮 S_yellow=0; //南向黄灯亮

修德技精 勤思协作

四川科技职业学院毕业论文设计

第 43 页

W_red=0; //西向红灯亮 E_red=0; //东向红灯亮 flgaa=2; //标志位 while(1) { if(k0==0) //是否“复位”按键按下 { delayms(3); if(k0==0) { while(!k0); “复位”按键按下 djs=20; djs1=20; jtda(); } } if(k2==0) { delayms(3); if(k2==0) { while(!k2); “紧急模式”按键按下 TR0=0; jj(); } } if(k1==0) { delayms(3); if(k1==0) { while(!k1); “夜间模式”按键按下 TR0=0; yj(); } } if(menu==0) 间”按键按下 { delayms(3); if(menu==0) { while(!menu); //倒计时时间”按键按下 TR0=0; 修德技精 //去除抖动,确定是否 //倒计时时间重新赋值 倒计时时间重新赋值 //调用jtda()函数 是否“紧急模式”按键按下 //去除抖动,确定是否启动定时器 调用紧急模式 是否“夜间模式”按键按下 //去除抖动,确定是否启动定时器 调用紧急模式 //是否“设定倒计时时去除抖动,确定是否“设定启动定时器

勤思协作

// // // // // // // // 四川科技职业学院毕业论文设计

第 44 页

set_djs(); //调用设定倒计时时间函数 } } djsxs11(); //数码管时间显示 if(djs<0) //当倒计时时间小于0秒时,执行 { djs=dxdjs; //将东西方向的倒计时时间保存 djs1=nbdjs; //将南北方向的倒计时时间保存 jtdb(); //调用jtdb()函数 } } }

/*****************************************************/ /* 函数名:main() */ /* 功能: 主函数 */ /*****************************************************/ void main() {

Timer0_init(); //定时器0初始化 jtda(); //调用jtda()函数 }

修德技精 勤思协作

本文来源:https://www.bwwdw.com/article/1uhr.html

Top