895191602基于AT89C51的路灯控制系统设计论文

上传人:痛*** 文档编号:142102533 上传时间:2022-08-24 格式:DOC 页数:45 大小:1.18MB
收藏 版权申诉 举报 下载
895191602基于AT89C51的路灯控制系统设计论文_第1页
第1页 / 共45页
895191602基于AT89C51的路灯控制系统设计论文_第2页
第2页 / 共45页
895191602基于AT89C51的路灯控制系统设计论文_第3页
第3页 / 共45页
资源描述:

《895191602基于AT89C51的路灯控制系统设计论文》由会员分享,可在线阅读,更多相关《895191602基于AT89C51的路灯控制系统设计论文(45页珍藏版)》请在装配图网上搜索。

1、基于AT89C51的路灯控制系统设计【摘 要】本路灯控制系统是针对实际情况的需要而进行优化设计的。在设计中,采用开关按钮进行时间控制,显示是六位LED数码管和五个发光二极管,时间为正常24小时走时,可用按钮调节定时开关时间,达到控制的目的。发光二极管为显示调时状态及模拟路灯的控制,让本设计中更加的形象化。该设计系统通过对小时、分钟和秒钟的调整来控制路灯的开关状态,并且在23点后,路灯会自动熄灭一半,达到节能的效果。启动后进入计时显示,计时用六位数码管显示;当一天时间过去后可以循环继续控制,用发光二极管进行模拟显示。【关键字】单片机 路灯 节能 控制系统目 录引言41 系统总体设计51.1 设计

2、要求51.2 系统组成方框图52 方案论证52.1 复位模块52.2 主控模块62.3 按键输入模块62.4 显示模块63 系统硬件设计73.1 总体思路73.2 各模块电路图73.2.1 复位模块电路设计73.2.2 主控模块电路设计73.2.3 按键输入模块电路设计83.2.4 显示模块电路设计84 系统软件设计104.1 主程序设计104.2 计时程序设计114.3 中断程序设计125 系统调试135.1 软件调试135.2 硬件及总体电路调试135.3 系统改进方案136 结束语137 致谢14参考文献14附录一 系统总体原理图 16附录二 元器件清单 16附录三 源程序 17引言照明

3、工程迅猛发展,其路灯数量的增大,而且功耗和性能大大提高,因而对路灯定时器控制的要求比较精确. 目前,对路灯控制方法多为“人工控制”和“光控”。“人工控制”受恶劣天气的影响及其他干扰,并且巡视困难;“光控”容易受外部环境干扰,灵敏度低且可靠性较差,二者均不能实现控制开关灯的合理化、科学化,从而会出现:开灯早,关灯晚;或者开灯晚,关灯早的现象。前者会造成巨大的电能浪费,后者会损害城市形象、影响社会治安和交通安全,从而影响城市的投资环境。以上难点,将直接影响城市照明管理水平。而照明管理的高低又将直接影响到城市的市容、投资环境、交通安全和社会治安等,这些都是构建良好的城市环境的重要组成部份,对城市的建

4、设和发展有着重要的意义。总之,随着城市规模的不断扩大,现有的路灯管理的方式方法已远远不能满足城市路灯发展与管理的需要,必须依靠现代化的高科技管理手段。路灯管理工作需要一个以计算机为核心的、自动化的管理手段来替代传统的路灯监控系统。使整个城市照明监测,决策和管理工作建立在计算机信息网络平台之上。因此,建设现代化的“路灯监控管理系统”已迫在眉睫。单片机是在一块芯片上集成了一台微型计算机所需的CPU、存储器、输入/输出部件和时钟电路等。因此,它具有体积小、使用灵活、成本低、易于产品化、抗干扰能力强、可在各种恶劣环境下可靠地工作等特点。特别是它应用面广,控制能力强,使它在工业控制、智能仪表、外设控制、

5、家用电器、机器人、军事装置等方面得到了广泛的应用。本设计中正是运用单片机的AT89C51作为主控芯片设计的路灯控制系统。AT89C51不但功能强大,而且使用方便、价格便宜,可以最大限度的降低成本、增加计时模式和提高计时精度。该控制系统体积小,适用与校园、街道、小区等各种场所的路灯控制,可以最大限度的满足人们的生活需要。1系统总体设计11设计要求当开机后,经过上电复位,时钟显示为12:00:00,这时可以调整时、分、秒按钮进行精确调整到当前时间,进行正常走时;开机后系统内部自定义开路灯时间为18:00:00,关路灯时间为6:00:00,如果不做调整的话,时间就是下午6点钟开灯,早晨6点钟关灯;春

6、、夏、秋、冬四季的昼夜并不相等,为了更好的节省电力资源,本设计中可以进行手动调整,根据四季的变化来调整开路灯和关路灯的时间,更有效的节省资源;本设计中另外的一大特点就是在23:00:00的时候,路灯会熄灭一半,这种设计也是为了节省资源,因为夜深人静的时候,并不需要太多的路灯照明整个路面,只需要点点灯光就行;到早晨六点钟或自己重新设定的时间的时候再关闭其它的路灯。本设计的最大优点在于不影响路灯照明的情况下,达到了节能的效果,在同样设备的路灯中,可以节约一半的电能,起到环保的作用。12系统组成方框图主控模块按键模块显示模块电源模块图1-1系统方框图2方案论证21复位模块方案一:基本RC复位电路,该

7、复位方式为手动复位,可分为高电平复位和低电平复位,电容可避免高频谐波对电路的干扰。该复位电路简单易行,但缺点是在遇到较强干扰或瞬间断电时,复位端电容充放电特性变化,往往电源低至RAM区数据不能保持时,复位端上仍储有相当的电荷,致使电源电压恢复时复位端不能产生复位信号而出现“死机”或“程序跑飞”。该复位电路用在复位精度不是很高的设计中。1方案二:看门狗复位电路,在“死机”或“程序跑飞”时,对系统进行重新置位或者复位,以使系统恢复正常运行的一种专门电路。进一步提高了单片机系统的稳定性和抗干扰性的能力。用于复位精度要求较高的设计中。1本设计中对复位电路的要求精度不需要很高,所以选择的是方案一的RC高

8、电平复位电路。22主控模块方案一:采用AT89C2051芯片,它体积小,管脚少,没有提供外部扩展存储器与I/O设备所需的地址、数据、控制信号,因此利用AT89C2051构成的单片机应用系统不能在AT89C2051之外扩展存储器或I/O设备。无法满足设计所需。方案二:采用AT89C51芯片,具有AT89C2051的所有功能,管脚充足,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。结合

9、设计要求,我选择方案二23按键输入模块对按键处理的重要环节是去抖动,即去除按下和抬起瞬间的抖动。而消除抖动后面临的更大问题就是解决按键的响应问题,包括按键的一次响应,一键多功能等。3可以采用硬件消抖和软件消抖两种方式,在本设计中采用的是软件的延迟法来对按键消抖。224显示模块方案一:采用LCD液晶显示器显示。它可视面积大,画面好,抗干扰能力强,可以节省软件中断资源,其缺点是显示内容需要存储字模信息,需要一定存储空间。方案二:采用LED数码管显示。用发光二极管(简称LED)组成的字形来显示数字,七个条形发光二极管排列成七段组合字型,便构成了半导体数码管。半导体数码光分共阳极数码管和共阴极数码管,

10、此次设计采用了共阴极数码管显示,即七个发光二极管的阴极连在一起接地。当共阴极数码管的某一阳极接高电平时,相应的二极管发光,根据字形使某几段二极管发光,所以共阴极数码管需要输出高电平有效的译码器来驱动。5 图2-1共阴极数码管内部结构图基于以上所述,本设计采用方案二。LED数码显示器有两种控制方式,即静态数据锁存方式和动态扫描显示。静态数据锁存方式每个数码管用一个8位并行锁存器存储数据并驱动,所以硬件复杂,故障率高。动态扫描显示,就是让各位数码管按照一定顺序轮流显示,其主要优点是能显著降低显示器的功耗,并能大大减少显示器的外部接线。所以在本设计中采用动态扫描方式控制数码管的显示。43系统硬件设计

11、31总体思路在设计路灯系统控制器之前,先了解系统所要实现的各个功能情况。在设计的过程中,除了要让硬件电路简洁外,还要兼顾软件不能过于复杂。这样才能达到设计的实际要求,硬件支持软件,软件带动硬件。本电路设计的主要思路是:对路灯实现实时控制,并且可以进行单路控制和总控制。最基本的程序是时钟显示程序,之后的设定开灯和关灯时间并能对路灯进行实时控制以及对路灯的点控都是在基本程序上扩展而得到的。时钟显示程序中最关健是否对数码管进行动态扫描的子程序放在哪里,本设计中把动态扫描程序放在T0中断里,中断的时间是否2MS,也就是说每2MS扫描一次,扫描频率非常快,利用了人眼的视觉残留特性,使程序更加简洁.调时程

12、序和对路灯的单路控制程序都是按键进行控制的。所以对对按键的控制显得尤为重要了。本设计主程序中一直在对所有的按键进行扫描,当按键一有动作,在第一时间就执行相应的程序,达到实时控制的目的。其中在按键扫描时要进行去抖动控制,这一功能在软件中进行实现。电路的总体设计图见附录一,元器件清单见附录二。32各模块电路图321复位模块电路设计单片机的复位都是靠外部电路来实现的。在时钟电路工作后 ,只要在单片机的复位 (RST)脚上出现24个时钟振荡脉冲 (也就是2个机器周期)以上的高电平单片机便实现初始化状态复位。因此,要想保证单片机能够可靠的复位 ,在应用系统的电路设计中 ,就要使RST引脚保持10ns以上

13、的高电平 ,使AT89C51能循环到复位状态。在设计中采用RC高电平复位电路如图3-1示。图3-1复位电路322主控模块电路设计采用的AT89C51芯片对整个系统进行控制,其中P0口控制数码管的7段的亮暗情况,P2口控制选择数码管的位数,P3口用于控制调时指示灯,P1口用于按键输入的控制及路灯开关控制。AT89C51的芯片管脚图如图3-2示。图3-2 AT89C51芯片管脚323按键输入模块电路设计整个按键输入模块集中在对时间的调节和手动开关灯上,设计图如图3-3示。图中第一个按键为调整时间位,可以通过改按键调整时、分、秒的切换;第二个按键为增加时间位;第三个按键为减少时间位;第四个按键为手动

14、开关路灯位,可以关一路或两路一起关。图3-3 按键输入电路324显示模块电路设计(1)数码管显示电路设计设计中采用两个四位数码管并排来显示6位时间,通过单片机的P0、P2口同时控制数码管的工作,并在PO口与数码管间接上拉电阻对数码管进行保护,同时也增加了数码管的亮度,电路如图3-4所示。图3-4 数码管显示电路(2)发光二极管显示电路设计设计中采用了5个发光二极管,其中三个发光二极管作为调节时间显示灯,采用下拉示串电阻是为了保护发光二极管,如图3-5所示。另外两个发光二极管是路灯指示灯,分别代表两路路灯,如图3-6示。图3-5 调节时间显示灯图3-6 路灯显示灯4系统软件设计41主程序设计初始

15、化是否进行时间调整?是否进行定时开关灯时间调整?是否进行定时关灯时间调整?判断是否开灯时间到?判断是否到23点?判断是否关灯时间到?判断是否需要路灯键控?调用调整时、分子程序调用调整时、分子程序调用时间调整子程序点灯灯熄一半关灯YYYYYYYNNNNNN图4-1 主程序流程图本软件设计的程序设计包括判断各个按钮按下之后能够实现什么功能,判断开灯关灯的时间和手动控制路灯。其中,动态显示是在中断子程序中进行的,每一次中断的时间为2MS,每中断一次扫描一次,实现动态显示。正常走时的动态显示是在T0中断中进行动态扫描的,设置开灯关灯的时间是在T1中断中进行动态扫描的。主程序流程图如图4-1示。42 计

16、时程序设计计时程序的设计主要用到定时器的知识。下面我简述一下定时器的一些基础知识。MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0和定时器T1。它们既可用作定时器方式,又可用作计数器方式。定时器/计数器的基本部件是两个8位的计数器(其中TH1,TL1是T1的计数器,TH0,TL0是T0的计数器)拼装而成。在作定时器使用时,输入的时钟脉冲是由晶体振荡器的输出经12分频后得到的,所以定时器也可看作是对计算机机器周期的计数器(因为每个机器周期包含12个振荡周期,故每一个机器周期定时器加1,可以把输入的时钟脉冲看成机器周期信号)。故其频率为晶振频率的1/12。如果晶振频率为12M

17、HZ,则定时器每接收一个输入脉冲的时间为1us。置定时器1初值,打开定时器11秒钟定时到,秒加1秒数到60秒?秒数为0,分钟数加1分钟数到60?分钟数为0,小时数加1小时数到24,小时、分钟、秒都清零返回YNNNYY图4-2 定时器流程图定时器/计数器有四种工作方式(方式0,方式1,方式2,方式3),其工作方式的选择及控制都由两个特殊功能寄存器(TMOD和TCON)的内容来决定。用指令改变TMOD或TCON的内容后,则在下一条指令的第一个机器周期的S1P1时起作用。当为计数工作方式时,计数值的范围是:1256(28)当为定时工作方式时,定时时间计算公式为:(28-计数初值)x晶振周期x12或

18、(28-计数初值)x机器周期本次设计中用到了T0和T1进行中断控制,T0和T1用的都是方式一。在中断子程序中放进了显示程序,中断时间为2MS,可以实现数码管的动态扫描且无闪烁感。定时器流程图如图4-2示。43 中断程序设计所谓中断,是指在计算机执行程序过程中,当出现某种情况,如发生停电和其他情况时,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行,而转去执行相应的处理程序,待处理程序执行完毕后,再继续处理执行原来被中断的程序中断子程序能实现时钟自动走时功能,从而实现倒计时的运行,在程序设计的过程中有着重要的作用。中断程序流程图如图4-3示:中断定时时间到片选端flash_c

19、s=0片选端flash_cs=1片选端flash_cs=2片选端flash_cs=3片选端flash_cs=4片选端flash_cs=5数码管1显示所需数据数码管2显示所需数据数码管3显示所需数据数码管4显示所需数据数码管5显示所需数据数码管6显示所需数据YYYYYYNNNNNN图4-3 中断程序流程图5系统调试51软件调试本设计采用的是C语言的编程方式,根据设计要求编写程序,并在Keil uVision2软件中进行程序编写的调试,确定编写上没有错误后,利用ISIS 7 Professional配合所设计的硬件电路进行系统的调试。C语言编写的程序有许多优越性:(1)不懂得单片机的指令集,也能够

20、编写完美的单片机程序;(2)无须懂得单片机的具体硬件,也能够编出符合硬件实际的专业水平的程序;(3)C语言对数据进行了许多专业处理,避免了运行中间异步的破坏等。8源程序见附录三。52硬件及总体电路调试根据原理图及PCB图制作电路板,焊接完成后,把程序烧写到AT89C51中,把芯片插到电路中,接入5V电源,数码管显示120000并开始正常走时,这时通过按键部分调节当前时间、开灯时间和关灯时间。当时间到达相应时间时,路灯自动开关,并在230000路灯会熄灭一半。如果没有设定开关灯时间,路灯则在180000时开启,060000时熄灭。调试中,起初数码管出现的全是8,而且不受按键的控制,这是由于初始值

21、设定中出现了错误,设置了高电平有效,导致数码管一直处于点亮状态,通过把初始值设置为低电平,数码管出现正常;其次出现了按键的不灵敏,这是由于按键的延时消抖没有处理好,修改了延时时间的长短,按键出现正常。5.3系统改进方案在本设计中首先存在不足的是断电保护,为了在断电的情况下系统也能够正常工作,在电源供电方面进行改进:用一组备用电池与电源并联,通过继电器连接。继电器有“常开、常闭”触点,继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。本设计中让继电器的常闭触电一端与电源相连接,另一端与备用电池相连接,当正常通电情况下,继电器断开,使备用电池断开,系统

22、由电源供电,当电源断电,继电器闭合,系统由备用电池供电,这样系统就可以在电源断电的情况下也能正常工作。6其次是在阴雨天气,路面亮度不够,此时可以通过光感受模块来控制路灯的亮暗。该模块由光敏二极管为核心元件,通过光敏二极管对光线的采集,反馈给单片机,再由单片机来控制路灯的开关。白天受光照时光敏二极管反向电阻减小,回路短开,灯泡熄灭;天黑时因光照很小,光敏二极管反向电阻增大,回路接通,路灯点亮。在点亮或熄灭状态下仍受原来系统的控制。例如光敏二极管点亮路灯后,若没有接收到由光敏二极管传出的关灯信号,则到达原系统设置的关灯时间,路灯也同样会熄灭。6结束语为期一个多月的毕业设计即将结束了,在这一个月里我

23、在同学和老师的帮助下完成了路灯控制系统的设计。毕业设计作为综合性的设计,它不同于以前教学中的实验、课程设计等实践环节。以前的所做的一些设计主要是根据相关的课本及老师所给资料去完成的,有一定的参照性,所以相对而言比较简单,不能完全达到锻炼自己动手能力的目的。而毕业设计则是对我们大学四年所学知识的一个综合的训练及考核,是对所学知识的应用能力和大学所学理论知识对实践技能相结合的全面的检验。并对我们如何根据要做的课题对现有的资料进行理解和运用的能力的考核。真正做到了理论联系实际,把以前所学的知识综合贯通进行实践,并在实践中不断学习和自我完善。从刚确定毕业设计课题以来,我首先是查找一些相关的书籍及资料,

24、然后分析设计,并根据实际情况拟定设计方案,从而达到优化方案。在研究设计电路时,我优化了电路设计,这就省去了一部分时间,最难的是调试了,但在老师和同学的帮助下,完成的设计达到了预定的要求。同时,通过这次毕业设计,我们在各个方面都有了很大的提高,特别是在理论和实践结合方面使我们受益匪浅,使大学里学习的理论知识在根本上得到一次最完整的实践和提高。也为我即将面临的工作奠定了很好的基础。同时,在本次毕业设计中深深认识到自己的各个方面的不足之处,本着提高动手能力以及检测四年所学知识的目的,我严格要求自己,每一环节都认真对待,定期向知道老师报告进展情况和请教不懂的地方,得以完成任务。在以后的工作中,我们必须

25、进一步深化在实践中去丰富理论,完善知识结构。由于环境条件的影响,理论与实践还是有一定的差距,这也要求我们在实践中注意检验的积累。7致谢首先感谢我的指导老师张卫平老师,在做毕业设计和论文的撰写过程中,他给予了悉心的指导和耐心教诲,在他的悉心指导下,我的毕业设计和毕业论文得以顺利完成。在我读书的四年中,物理与机电工程学院的老师们对我的学习、生活给予了很大的帮助。在整个学习阶段中,老师严谨的治学态度和以身作则、勤奋塌实的工作作风使我受益菲浅,在此表示我深深的谢意。同时我还要感谢实验室的所有的老师,在毕业设计的进展中,他们给了我很多的关心和帮助,为我们创造一个良好的研究学习环境。还要感谢和我一起学习的

26、电本班同学们,在一起四年的学习和探讨,给我留下了许多难忘的回忆。在此,祝他们在未来的岁月里生活幸福!我将努力工作,用所学到的知识为社会服务,以出色的工作成绩来回报学校、老师和家人。参考文献1 贾正松.单片机系统复位电路设计J.中国期刊全文数据库,2007/362 方龙,肖献保,李威.关于消除按键机械抖动的研究A.广西轻工业.2008年1月第1期3 王春武,李岩,孟祥英等.C51中对按键的处理方法A.吉林师范大学学报(自然科学版).2007年11月第4期4 罗杰,邹韬平.单片机的串行动态扫描显示电路及编程J.船电技术.1996/035 李涛.新型单片机AT89C2051及其应用举例J 1996年

27、 04期 6 7 黄皎,刘建国,高敏.单片机C语言编程应注意的若干问题J.微计算机信息.2003年19卷第7期8 梁合庆.使用单片机C语言的好处J.电子产品世界.2000/109 何立民.MCS51系列单片机应用系统设计M.北京航空航天大学出版社.199010 谭浩强.C程序设计(第三版)M.清华大学出版社.2005/7AT89C51-based control system design of the streetCollege:Physics Mechanical & Electrical engineeringProfession:Electronic information engin

28、eering Number:2005040202 Author:Chen Juan Teacher:Zhang Wei Ping【Abstract】The street lamp control system for the needs of the actual situation to optimize the design. In the design, using the time switch button control, LED digital display is the six tubes and five light-emitting diode, the time for

29、 the normal 24-hour travel time can be opened from time to time adjust buttons to control. LED to show when the state transferred control of street lamps and simulation, so the more figurative designs. The design system of hours, minutes and seconds to adjust the switch to control the state of stree

30、t lamps, and 23 oclock, the street lamps will automatically extinguish half, to energy-saving effect. After start time shows that the digital time display with six; when the day cycle of the past can continue to control and use light-emitting diodes to simulate the display.【Keyword】Single-chip Stree

31、t Lights Energy Saving Control System附录一:系统总体原理图附录二:元器件清单器件名称器件型号数量单片机AC89C511晶振12M1四联数码管共阴型2发光二极管5按键5磁介电容30pf21042电解电容470uf222uf1电阻1K5470欧5200欧1排阻5111电源5V1附录三:源程序#include reg51.hunsigned char code changled10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x6f;/共地接的LEDunsigned char led6;/用来显示用的unsigne

32、d char guandeng3;/关开灯的时间unsigned char kaideng3;/灯开灯的时间unsigned char present_time3;/灯开灯的时间unsigned char xiao3;/灯关小的时间unsigned char flash=0;/片选扫描多少时间换一个位显示unsigned char timemeasure=0;/T1中断次数计算 40*20=1秒unsigned char flash_cs=0;/片选哪个位sbit dadeng=P14;/灯关小一点的控制sbit xiaodeng =P15;/灯大的控制aunsigned char tiaoz

33、heng=0;/调整灯关开暗的状态bit enablebit=0;unsigned int enabletime=0;sbit P1_0 =P10;sbit P1_1 =P11;sbit P1_2 =P12;sbit P1_3 =P13;/调整时间 1为调整目前的时间,2为调整关灯时间,3为调整秒 void change_data(unsigned char i) unsigned char x,change; if(i=1) x=present_time0; change=x/100; x=present_time0; led0=x/10-change*10; x=present_time0

34、; led1=(unsigned char)(x-change*100-led0*10); x=present_time1; change=x/100; x=present_time1; led2=x/10-change*10; x=present_time1; led3=(unsigned char)(x-change*100-led2*10); x=present_time2; change=x/100; x=present_time2; led4=x/10-change*10; x=present_time2; led5=(unsigned char)(x-change*100-led4

35、*10); if(i=2) x=kaideng0; change=x/100; x=kaideng0; led0=x/10-change*10; x=kaideng0; led1=(unsigned char)(x-change*100-led0*10); x=kaideng1; change=x/100; x=kaideng1; led2=x/10-change*10; x=kaideng1; led3=(unsigned char)(x-change*100-led2*10); x=kaideng2; change=x/100; x=kaideng2; led4=x/10-change*1

36、0; x=kaideng2; led5=(unsigned char)(x-change*100-led4*10); if(i=3) x=guandeng0; change=x/100; x=guandeng0; led0=x/10-change*10; x=guandeng0; led1=(unsigned char)(x-change*100-led0*10); x=guandeng1; change=x/100; x=guandeng1; led2=x/10-change*10; x=guandeng1; led3=(unsigned char)(x-change*100-led2*10

37、); x=guandeng2; change=x/100; x=guandeng2; led4=x/10-change*10; x=guandeng2; led5=(unsigned char)(x-change*100-led4*10); /*改变灯的状态*/void change_deng(unsigned i) if(i=0) dadeng=1; xiaodeng=0; if(i=1) dadeng=0; xiaodeng=1; if(i=2) dadeng=0; xiaodeng=0; /*秒分时进初始化*/void init(void) guandeng0=6;/6:00:00 gu

38、andeng1=0; guandeng2=0; kaideng0=18; kaideng1=0; kaideng2=0; present_time0=12; present_time1=00; present_time2=00; xiao0=23; xiao1=00; xiao2=00;/*定时器0*/T0_in() interrupt 1 using 3 unsigned char bb; flash+; enabletime+; if(flash=15) flash=0; if(flash_cs=0) P2=254; if(flash_cs=1) P2=253; if(flash_cs=2

39、) P2=251; if(flash_cs=3) P2=247; if(flash_cs=4) P2=239; if(flash_cs=5) P2=223; bb=ledflash_cs; P0=changledbb; if(flash_cs!=5) flash_cs+; else flash_cs=0; if(enabletime=555) enabletime=0; enablebit=1; /*定时器1*/T1_in() interrupt 3 using 3TH1=(65535-40000)/256;/40MS中断一次TL1=(65536-40000)%256;TR1=1;timeme

40、asure+;/*秒分时进判断钟*/if(timemeasure=25)/40*50=1s timemeasure=0; if(present_time259) present_time2+; else present_time2=0; if(present_time159) present_time1+; else present_time1=0; if(present_time023) present_time0+; else present_time0=0; if(tiaozheng=3) change_data(1); if(present_time0=guandeng0) if(pr

41、esent_time1=guandeng1) if(present_time2=guandeng2) xiaodeng=0; dadeng=0; if(present_time0=kaideng0) if(present_time1=kaideng1) if(present_time2=kaideng2) xiaodeng=1; dadeng=1; if(present_time0=xiao0) if(present_time1=xiao1) if(present_time2=xiao2) xiaodeng=1; dadeng=0; main()unsigned char dengstate=

42、0;/灯的状态P3=0;P1=0x00;ET0=1;ET1=1;TMOD=0x12;TH0=0;TL0=0;TR0=1;TH1=(65535-40000)/256;/20MS中断一次TL1=(65536-40000)%256;TR1=1;EA=1;init();change_data(1);init();/ initt();for(;)/*大小灯转换*/ if(P1_3=1) if(enablebit=1) enablebit=0; enabletime=0; change_deng(dengstate); if(dengstate0) if(tiaozheng3) if(tiaozheng6

43、) if(tiaozheng=9) change_data(3); if(tiaozheng=10) tiaozheng=0;P3=0; if(tiaozheng=1 | tiaozheng=4 |tiaozheng=7) P3=1; if(tiaozheng=2 | tiaozheng=5 | tiaozheng=8) P3=2; if(tiaozheng=3 | tiaozheng=6 | tiaozheng=9) P3=4; if(P1_2=1) if(enablebit=1) enablebit=0; enabletime=0; if(tiaozheng =1) if(present_

44、time023) present_time0+;elsepresent_time0=0;change_data(1); if(tiaozheng =2) if(present_time159) present_time1+;elsepresent_time1=0;change_data(1); if(tiaozheng =3) if(present_time259) present_time2+;elsepresent_time2=0; change_data(1); /开灯时间调整 if(tiaozheng =4) if(kaideng023) kaideng0+;elsekaideng0=

45、0;change_data(2); if(tiaozheng =5) if(kaideng159) kaideng1+;elsekaideng1=0;change_data(2); if(tiaozheng =6) if(kaideng259) kaideng2+;elsekaideng2=0; change_data(2); if(tiaozheng =7) if(guandeng023) guandeng0+;elseguandeng0=0;change_data(3); if(tiaozheng =8) if(guandeng159) guandeng1+;elseguandeng1=0

46、;change_data(3); if(tiaozheng =9) if(guandeng259) guandeng2+;elseguandeng2=0; change_data(3); if(P1_2=1) if(enablebit=1) enablebit=0; enabletime=0; if(tiaozheng =1) if(present_time023) present_time0+;elsepresent_time0=0;change_data(1); if(tiaozheng =2) if(present_time159) present_time1+;elsepresent_

47、time1=0;change_data(1); if(tiaozheng =3) if(present_time259) present_time2+;elsepresent_time2=0; change_data(1); /开灯时间调整 if(tiaozheng =4) if(kaideng023) kaideng0+;elsekaideng0=0;change_data(2); if(tiaozheng =5) if(kaideng159) kaideng1+;elsekaideng1=0;change_data(2); if(tiaozheng =6) if(kaideng259) k

48、aideng2+;elsekaideng2=0; change_data(2); if(tiaozheng =7) if(guandeng023) guandeng0+;elseguandeng0=0;change_data(3); if(tiaozheng =8) if(guandeng159) guandeng1+;elseguandeng1=0;change_data(3); if(tiaozheng =9) if(guandeng2=1) present_time0-;elsepresent_time0=23;change_data(1); if(tiaozheng =2) if(pr

49、esent_time1=1) present_time1-;elsepresent_time1=59;change_data(1); if(tiaozheng =3) if(present_time2=1) present_time2-;elsepresent_time2=59; change_data(1); /开灯时间调整 if(tiaozheng =4) if(kaideng0=1) kaideng0-;elsekaideng0=23;change_data(2); if(tiaozheng =5) if(kaideng1=1) kaideng1-;elsekaideng1=59;cha

50、nge_data(2); if(tiaozheng =6) if(kaideng2=1) kaideng2-;elsekaideng2=59; change_data(2); if(tiaozheng =7) if(guandeng0=1) guandeng0-;elseguandeng0=23;change_data(3); if(tiaozheng =8) if(guandeng1=1) guandeng1-;elseguandeng1=59;change_data(3); if(tiaozheng =9) if(guandeng2=1) guandeng2-;elseguandeng2=59; change_data(3); 毕业设计(论文)外文资料翻译附 件:

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!