




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业设计题目:智能视力保护监控系统设计姓名:学号:专业:班级:学院:指导教师:完成时间:2021年6月
毕业设计诚信声明书本学位论文是在导师指导下独立研究、写作的成果,文中所引用他人的无论以何种方式发布的文字、研究成果,均在文中加以说明;有关教师、同学和其他人员对本文的写作、修订提出过并为我在文中加以采纳的意见、建议,均已在我的致谢辞中加以说明并深致谢意。学生(签字): 时间: 年 月 日指导教师已阅(签字): 时间: 年 月日毕业设计版权使用授权书本学位论文是在导师指导下独立完成的。本人同意学校保留或向国家有关部门或机构送交设计的印刷件和电子版,允许设计被查阅和借阅;本人授权山东协和学院可以将本设计的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存和汇编。学生(签字): 时间: 年 月 日指导教师已阅(签字): 时间: 年 月 日目录目录TOC\o"2-3"\h\z\t"标题1,1"摘要 [10]。实物如下图3-8所示。电路图如图3-9所示。其中VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO回响信号输出等四个接口端。图3-8超声波模块实物图图3-9超声波测距电路图3.7.1超声波的基本特性超声波是弹性介质中产生频率大于20kHz的一种机械振动,它可分为横向振动和纵向振动。超声波能通过固体、气体和液体传播,但速度却不一样。它具有折射和反射,并且在传播过程中也会衰减。超声波的基本特性如下所述:1.波长波速等于频率乘以波长。在3×108毫秒的范围内,电磁波传播速度缓慢,而声波在空气中的速度大约是344M/s(20℃)。当传播速度较低时,波长较短,这意味着可以获得较高的距离和方向分辨率[10]。正是由于这种较高的分辨率特性,才使我们有可能在进行测量时获得很高的精确度。2.反射为了探测物体的存在,超声波可以反射到物体上。因为金属、木材、混凝土、玻璃、橡胶和纸张能反射几乎100%的超声波,所以我们很容易找到这些物体。因为织物、棉花和绒毛都可以吸收超声波,所以用超声波检测比较困难。同时,这些物体反射不规则,在凹凸面和倾斜面上很难检测到目标。这就说明了在一个开放式的环境下检测超声波十分关键,并且被测物体必须反射超声波。3.温度效应声波传播的速度“C”可用下列公式表示。C=331.5+0.607t(M/s),其中t=温度(℃),声传播速度随环境温度变化而变化。因此,必须经常检查物体周围的温度才能准确测量物体之间的距离,特别是在冬季,室内外温差较大,严重影响超声波测距的精度。此时,为了避免温度变化引起的测量误差可采用18B20进行温度补偿。考虑到测试环境设计为室内环境,目前主要采用超声波进行实时测量,本设计对测量精度要求不高,故不讨论温度效应对系统的影响。4.衰减超声波在空气中的传播强度随着距离的增加成正比地减小,这是由于地球表面衍射所致的扩散损失和能量被介质吸收引起的吸收损失所致。从图3-10可以看出,超声频率越高,衰减度越大,超声传播距离越短。因此,超声波传感器的有效距离直接受超声波衰减特性的影响。振动频率为40KHz的HC-SR04型超声波传感器,通过10m传输将超声波信号的传播强度降低了40个dB。这时,回波信号很难被超声波接收机接收到。图3-10声音信号强度在不同距离下的衰减特性3.7.2超声波的工作原理通常的超声波传感器大多为开放式的,其内部结构如图3-11所示,所述底座上可以灵活地固定复合式振动器。该复合式振动器是由谐振器以及一个金属片和一个压电陶瓷片组成的双压电晶片元件振动器。由于振动而产生的超声波能被呈喇叭形的谐振器有效的辐射,并且可以将超声波有效地聚集到振动器的中心位置。当电压作用于压电陶瓷上时,随着电压和频率的变化,压电陶瓷会发生机械变形。而电荷是由于压电陶瓷的振动而产生的。根据这个原理,当一个振动器由两个压电陶瓷或一个压电陶瓷和一个金属片组成时,就是所谓的双压电片元件,施加电信号时,由于弯曲振动而发出超声波。反之,当超声波被双压电片元件施加振动时,则就产生了电信号。图3-11超声波传感器内部结构图向某一方向发射超声波的超声波发射器,在发射时刻的同时开始计时,在空气中传播的超声波,在途中遇到障碍物就立即返回,超声波接收器接收到反射波后会立即停止计时。超声波在空气中的传播速度为340m/s,根据定时器记录的时间t,则可以计算出起动射点距障碍物之间的距离(s),即:s=340t/2,这就是所谓的时间差测距法。如图3-12所示:图3-12测距原理图3.7.3超声波模块电气参数超声波模块电气参数如表3-1所示。表3-1超声波模块电气参数电气参数HC-SR04超声波模块工作电压DC5V工作电流40kHz工作频率15mA最远射程4m最近射程2cm测量角度15度输入触发信号10uS的TTL脉冲输出回响信号输出TTL电平信号,与射程成比例规格尺寸45*20*15mm3.8定时报警电路报警电路分为单片机定时电路和报警器发声电路。定时电路在设计中主要用来对学生已经学习时间进行计时,由STC89C52自带的定时器/计数器实现上述功能。当学生学习时间超出45分钟时,报警器电路发出警报声,提醒学生休息。在单片机STC89C52中,有两个可编程的计数器/定时器来满足对外部脉冲进行计数,产生准确的定时时间,并作为串口波形发生器的需要。它们有两种工作模式(计数器模式和定时器模式)和四种工作模式(模式0、模式1、模式2和模式3)。工作模式具体如表3-2所示。
表3-2定时器模式寄存器M0/M1工作模式M1M0工作模式000011102113当定时器/计数器在定时模式下工作时,计数器的加1信号由振荡器的12分频信号产生(即每个机器周期),计数器将会加1,直到计数满为止。显而易见,系统的振荡频率与计时器的计时时间有关系。因为一个机器周期等于12个振荡周期,计数频率为1/12osc。如果晶体振荡器为12MHz,则计数周期为T=1/(12×106)Hz×1/12=1μs定时周期最短。改变定时器的初始值并适当地选择定时器的长度(例如8位、13位、16位等)来延长定时器的时间。当定时器/计数器工作在计数模式时,外部信号通过引脚T0和T1进行计数,外部脉冲的下降沿将触发计数。在每个机器循环的S5P2期间,计数器对引脚输入电平进行采样。如果一个机器周期的采样值为1,而下一个机器周期的采样值为0,则计数器将加1。在随后的机器循环S3P1中,新的计数值被加载到计数器中。因此,检测从1到0的跳变要两个机器周期,因此外部事件年的最大计数频率是振荡频率的1/24。例如,如果选择12MHz晶体振荡器,则最大计数频率为0.5MHz。虽然对外部输入信号的占空比没有特殊要求,但为了确保在改变之前至少对给定电平进行一次采样,外部计数脉冲的高电平和低电平的保持时间应超过一个机器周期。使用TMOD工作模式控制寄存器用于控制计数器的工作模式和定时器工作模式。它的字节地址是89H。定时器/计数器有两个功能:累积外部输入脉冲数目(用作计数器使用)或精确模拟时间间隔(用作定时器使用)。当它用作于定时器时,在其输入端输入一个固定周期的脉冲数,就可以计算出给定时间的长度。当选择STC89C52的内部定时器/计数器作为定时器工作模式时,计数输入信号为内部时钟脉冲。每个机器周期产生一个脉冲,使计数器增加1。因此,定时器/计数器的输入脉冲为机器周期时钟频率的1/12。本设计的时钟周期为6MHz,计数速度为500KHz,输入脉冲的时间间隔为0.5秒。3.9系统整体电路设计系统整体电路图包括:电源电路、按键电路、单片机主控电路、超声波测距电路、LCD1602显示电路、声光报警电路等。整机电路原理图如图3-13所示。图3-13整机电路原理图4系统软件设计方案4.1主程序设计超声波子程序报警子程序定时子程序光强检测子程序智能视力保护监控系统主程序本系统主程序包括光强检测子程序、定时子程序、报警子程序、超声波子程序。先确定主程序,再根据各个硬件电路的功能来设计子程序,并将其最终嵌入主程序中。由于子程序模块与硬件电路一一对应,因此其编程结构非常简单、明了,调试起来十分方便。本系统软件设计方框图如图4-1所示。超声波子程序报警子程序定时子程序光强检测子程序智能视力保护监控系统主程序图4-1系统软件设计方框图4.2子程序设计4.2.1光强检测子程序设计如图4-2所示为系统的光强检测子程序流程图。首先对单片机进行初始化,然后进行光强检测,通过ADC0832模数转换器,将光敏电阻得到的模拟信号,转换成数字信号传送给单片机进行判断。如果光强过强或过暗,就会发出声光报警。图4-2光强检测子程序流程图4.2.2超声波测量子程序设计如图4-3所示为系统坐姿检测超声波测量子程序流程图。当按下开始键时,对系统进行初始化处理。通过超声波HC-SR04输出的脉冲信号对距离进行判断,当使用者脸部与读物之间的距离小于设定值时,就会发出声光报警。
图4-3超声波测距子程序流程图4.2.3定时子程序设计首先进行单片机初始化,开启定时器计时,定时主要依据单片机内部的编程来实现,定时子程序对使用者的学习时间进行定时,当学习时间超出45分钟时,报警器就会报警,同时提醒使用者休息。如果没有超出45分钟,系统会返回继续判断。定时子程序流程图如图4-4所示。图4-4定时器子程序流程图5系统电路制作与调试5.1电路制作1.检查元器件的质量根据电路图购买符合要求的元器件,首先仔细检查所购元器件的质量的好坏及数量是否正确,然后按各元器件的检测方法进行逐个检测。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。2.放置和焊接各元件本设计采用万用板,确保器件没有损坏且无误后,根据示意图的位置放置元件。在放置过程中,应在万用板上先放置不易损坏和焊接要求较低的元件,然后再放置焊接要求较高和容易损坏的元件。特别是对易损坏的元器件应进行后焊,焊接集成芯片时,连续焊接时间不应超过10s。同时也要仔细检查器件的正负极和STC89C52的方向。本系统涉及的模块较多,焊接方面要求高标准、高精度。如果焊接错误,会出现很多电路问题。例如:焊锡量过多影响两个元器件的连接方式电路短路、焊锡量过少有可能造成电路虚焊等。5.2电路调试首先烧入显示程序,控制液晶显示,若显示正常,说明部分正确。然后加入超声波测距程序,以达到预期的效果。对程序进行调试时,如果部分指令使用不当,就会导致电路功能不能完全实现。另外,软件程序中的延迟要么太长,要么太短。类似的现象很多,所以我们不再一一列出说明。首先,按下电源的开关,LCD1602液晶显示器显示当前的距离和光照强度,然后通过按键对系统进行设置,设置好使用者与读物之间的距离、最低和最高光照强度、使用时间等信息。按下学习键开始学习,计时开始。当测量的信号不符合设定值时,系统声光报警,提醒使用者注意用眼习惯。当按下暂停键时,系统停止计时工作,若此时的光照强度和距离不符合设定值,不会报警。当计时达到45分钟时,系统会发出声光报警,提醒使用者注意休息。
6成品展示实物图包含电源模块、主控模块、光强检测模块、报警提示模块、超声波测距模块和显示模块。以单片机STC89C52为核心,通过按键设置学习时间、用眼距离、光线强度,开始学习并进行光强检测、时间检测、距离检测,当超过设定值时可实现声光报警。经过测试,可以满足功能要求。实物如图6-1所示。图6-1实物图7总结与展望7.1总结本次毕业设计是基于STC89C52单片机的智能视力保护监控系统的设计,完成了系统硬件电路的设计、系统软件电路的设计,绘制了整体电路原理图,经过调试,基本达到了设计目标。本系统以STC89C52单片机为控制核心,通过HC-SR04超声波测距传感器检测使用者脸部与读物之间的距离,通过光敏电阻对光线强弱进行检测,通过按键电路对用眼距离、定时时间、光照强弱进行设置,通过LCD1602显示距离、光照强度、时间等参数信息,实现光强检测、距离检测、定时和报警等功能。该系统使用方便,用户可根据需求进行功能扩展。7.2展望因为时间原因,该设计仍存在许多不足之处需要解决。比如:声光报警可改为语音提示;视力保护监控系统可以通过Wi-Fi与手机APP进行连接,便于家长的监督。随着科技的飞速发展,众多电子产品进入我们的生活,如长时间看电视、电脑、玩手机也是造成近视的重要因素。该设计通过该电子硬件的制作和理论研究,能为后期进一步设计智能视力保护器并采取合理措施提高视力保护的有效性提供可靠和有效的数据源和信息依据。参考文献参考文献陈帅华.智能视力保护系统设计[J].智能机器人,2016(10):51-54.王吉涛.把防治近视作为师德修养的基本功来“修”[J].山东教育(小学刊),2006(28):19.许超,孟青,董严,许晋飞,王超.基于51单片机的多功能视力保护器[J].电子世界,2016(22):85-86+88.陈炜.简易青少年视力保护器的设计[J].科技展望,2015,33:87-89.张玉凤,李水莲.基于51单片机的红外视力保护仪的设计[J].电子制作,2015,08:7-12.赵颖,何英昊.基于STC89C52的多功能视力保护器设计[J].电子技术与软件工程,2019(11):120-121.商莹.视力保护仪的研究与设计[J].新技术新工艺,2015,06:34-36.郭从敏,辛明,张欢.智能语音在视力保护器中的应用研究[J].电子世界,2021(01):87-88+93.梁东丽,刘颖.基于单片机的多功能视力保护器设计[J].天津职业技术师范大学学报,2018,28(01):21-26.孔雅琼.基于超声波的超声测距仪的研究与开发[M].长沙:国防科技大学,2007.JennyPreece,YvonneRogers,HelenSharp.InteractionDesignBeyondHuman-ComputerInteraction[M].Hoboken,N.J.Wiley,2011.RongPan,HaiZhao,JialiangWang,DanLiu,PenghuaCai.TheDesignandImplementofTCP/IPProtocolClusteronAVRSinglechip[J].JournalofSoftwareEngineeringandApplications,2010,38.XiaojuanChen,YoutianZhang,XinghuaLi.DesignofATrigeminalNeuralgiaPressure-pained-detectorBasedonMSP430[J].IEEETransactionsonSoftwareEngineering,2009.XiaojuanChen,YoutianZhang,XinghuaLi.DesignofATrigeminalNeuralgiaPressure-pained-detectorBasedonMSP430[J].IEEETransactionsonSoftwareEngineering,2009.柴夫君.基于STM32的LED智能学习型台灯系统的设计[D].秦皇岛:燕山大学,2016.何冰,王菊霞,苏变玲.基于单片机的视力保护器设计[J].电子设计工程,2015,23(03):89-92.陈中,朱代忠.基于STC89C52单片机的控制系统设计[M].北京:清华大学出版社,2015.李骁,王彬媛,王振中,刘炳言,李昱钊,张黔.基于STC89C52单片机的视力保护器设计[J].电子世界,2015,19:160-162.丁学用,陈越艳,王旭龙,滕维乾.一种自动感应及预防近视智能台灯设计[J].中国科技信息,2017(24):77-78+80.李传娣,赵常松,李继超,等.单片机原理、应用及Proteus仿真[M].北京:清华大学出版社,2017.致谢致谢行文至此,落笔为终。大学生涯始于2017年秋,终于2021年夏。在这个充满回忆的校园中,目光所及,皆是青春与收获,有不舍、有感激。首先要感谢学校给我提供了做这个系统的机会,感谢学校的各位领导和老师一直以来对我的教导和帮助。其次感谢王淑娇老师,给我进行了很多的辅导,不仅在技术上给了我很大帮助,也在系统需求和设计方面给予了我很大帮助。王老师的谆谆教导,使我受益匪浅。王老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,给以终生受益无穷之道。我对老师的感激之情是无法用言语表达的。还要感谢我的同学,是你们在我平时设计和论文中与我一起探讨问题,并指出我设计上的误区,使我能及时的发现问题把设计顺利的进行下去,没有你们的帮助我不可能这样顺利地结稿,在此表示深深的谢意。以梦为马,不负韶华,感谢不曾放弃的自己,纵使现在还没有看到前路的曙光,但我一直会保存着那抹光亮,不断前行,每一次经历都是成长,我们更高处见。附录附录源程序#include<reg52.h> //调用单片机头文件#defineucharunsignedchar//无符号字符型宏定义 变量范围0~255#defineuintunsignedint //无符号整型宏定义 变量范围0~65535#include<intrins.h>sbitCS=P1^4; //CS定义,连接ADC0832CS脚sbitSCL=P1^5; //SCL定义,连接ADC0832SCL脚sbitDO=P1^6; //DO定义,连接ADC0832DO脚sbitbeep=P1^3; //蜂鸣器IO口定义//这三个引脚参考资料sbitrs=P1^0; //1602数据/命令选择引脚H:数据 L:命令sbitrw=P1^1; //1602读写引脚 H:数据寄存器 L:指令寄存器sbite=P1^2; //1602使能引脚下降沿触发sbitc_send=P3^2; //超声波发射sbitc_recive=P3^3; //超声波接收longdistance; //距离uintset_d; //距离bitflag_csb_juli;//超声波超出量程uintflag_time0;//用来保存定时器0的时候的bitflag_300ms=1;ucharguangxian;//光线的显示变量ucharqiang_gx; //设置光线的强的变量ucharruo_gx; //设置光线的弱的变量ucharvalue;ucharflag_alarm;//报警变量ucharmiao=0,fen=0,shi;uchars_miao=55,s_fen=44,s_shi=0;bitxuexi_start;//开始学习标志位ucharmenu_1; //菜单设置变量uchari;ucharflag_gx;//光线报警ucharflag_juli; //距离报警ucharflag_time =0; //时间报警sbitled1=P2^1;sbitled2=P2^0;sbitled3=P2^2;/***********************1ms延时函数*****************************/voiddelay_1ms(uintq){ uinti,j; for(i=0;i<q;i++) for(j=0;j<120;j++);}/*********************************************************************名称:delay()*功能:延时,延时时间大概为5US。*输入:无*输出:无***********************************************************************/voiddelay_uint(uintq){ while(q--);}/*********************************************************************名称:write_com(ucharcom)*功能:1602命令函数*输入:输入的命令值*输出:无***********************************************************************/voidwrite_com(ucharcom){ e=0; rs=0; rw=0; P0=com; delay_uint(3); e=1; delay_uint(25); e=0;}/*********************************************************************名称:write_data(uchardat)*功能:1602写数据函数*输入:需要写入1602的数据*输出:无***********************************************************************/voidwrite_data(uchardat){ e=0; rs=1; rw=0; P0=dat; delay_uint(3); e=1; delay_uint(25); e=0; }/***********************lcd1602上显示两位十进制数************************/voidwrite_sfm2(ucharhang,ucharadd,uchardate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/10%10); write_data(0x30+date%10); }/***********************lcd1602上显示超声波距离************************/voidwrite_sfm_csb(ucharhang,ucharadd,uintdate){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); write_data(0x30+date/100%10); write_data('.'); write_data(0x30+date/10%10); write_data(0x30+date%10); }/*********************************************************************名称:init_1602()*功能:1602初始化,请参考1602的资料*输入:无*输出:无***********************************************************************/voidinit_1602(){ write_com(0x38); // write_com(0x0c); write_com(0x06);}/*********************************************************************名称:write_string(ucharhang,ucharlie,uchar*p)*功能:改变液晶中某位的值,如果要让第一行,第五个字符开始显示"abcdef",调用该函数如下 write_string(1,5,"abcdef;")*输入:行,列,需要输入1602的数据*输出:无***********************************************************************/voidwrite_string(ucharhang,ucharadd,uchar*p){ if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add); while(1) { if(*p=='\0')break; write_data(*p); p++; } }ucharkey_can;/********************独立按键程序*****************/voidkey(){ if((P3&0xf0)!=0xf0) { delay_1ms(1); if((P3&0xf0)!=0xf0) { switch(P3&0xf0) { case0xd0:key_can=3;break; //左边第1个 case0xb0:key_can=2;break; //左边第2个 case0x70:key_can=1;break; //左边第3个 } } }}/***********读数模转换数据********************************************************/ //请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的unsignedcharad0832read(bitSGL,bitODD){ unsignedchari=0,value=0,value1=0; SCL=0; DO=1; CS=0; //开始 SCL=1; //第一个上升沿 SCL=0; DO=ODD; SCL=1; //第二个上升沿 SCL=0; DO=SGL; for(i=0;i<8;i++) { SCL=0; value<<=1;//数据左移一位低位自动补0 SCL=1; if(DO==1) value|=0x01; ////数据低位置1 } returnvalue;}/*********************小延时函数*****************************/voiddelay(){ _nop_(); //执行一条_nop_()指令就是1us _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();}/*********************超声波测距程序*****************************/voidsend_wave(){ c_send=1; //10us的高电平触发 delay(); c_send=0; while(!c_recive); //当c_recive为零时等待 TR0=1; flag_csb_juli=0; while(c_recive) //当c_recive为1计数并等待 { flag_time0=TH0*256+TL0; flag_csb_juli=1; } if(flag_csb_juli==1) { TR0=0; //关定时器0定时 distance=flag_time0; //读出定时器0的时间 distance*=0.017;//0.017=340M/2=170M=0.017M算出来是米 }}/*********************定时器0、定时器1初始化******************/voidtime_init() { EA=1; //开总中断 TMOD=0X11; //定时器0、定时器1工作方式1 ET0=1; //开定时器0中断 TR0=1; //允许定时器0定时 ET1=1; //开定时器1中断 TR1=1; //允许定时器1定时 }/*******************按键执行函数******************/voidkey_with(){ if(menu_1==0) { if(key_can==2) //暂停学习 { xuexi_start=~xuexi_start; beep=1; } if(key_can==3) { xuexi_start=1;//开始学习 miao=0; fen=0; shi=0; } } if(key_can==1) { menu_1++; if(menu_1==1) { write_string(1,0,"1.xsb:m"); write_string(2,0,"2.::"); write_sfm_csb(1,6,set_d); write_sfm2(1,3,s_shi); // 显示 write_sfm2(1,6,s_fen); // 显示 write_sfm2(1,9,s_miao); // 显示 } if(menu_1==2) { write_com(0x80+0x40+0);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 } if(menu_1==5) { write_string(1,0,"3.H-gx:%"); write_string(2,0,"4.L-gx:%"); write_sfm2(1,7,qiang_gx); write_sfm2(2,7,ruo_gx); //设置光线的参数 write_com(0x80+6);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 } if(menu_1>=3) { menu_1=0; write_string(1,0,"csb: mgx:"); write_string(2,0,"::"); write_com(0x0c);//关闭显示 } } if(menu_1==1)//设置超声波参数 { if(key_can==2)// { set_d++; //加超声波距离报警数据 if(set_d>=200) set_d=200; } if(key_can==3)// { set_d--; //减超声波距离报警数据 if(set_d<=10) set_d=10; } write_sfm_csb(1,6,set_d); // 显示设置的距离 write_com(0x85);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 } if(menu_1==2)//设置时钟参数 { if(key_can==2)// { s_shi++; //加时钟报警数据 if(s_shi>=24) s_shi=0; } if(key_can==3)// { if(s_shi<=0) s_shi=24; s_shi--; //减时钟报警数据 } write_sfm2(2,3,s_shi); // 显示时 write_sfm2(2,6,s_fen); // 显示分 write_sfm2(2,9,s_miao); // 显示秒 write_com(0x80+0x40+3);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 } if(menu_1==3)//设置分钟参数 { if(key_can==2)// { s_fen++; //加分钟报警数据 if(s_fen>=60) s_fen=0; } if(key_can==3)// { if(s_fen<=0) s_fen=60; s_fen--; //减分钟报警数据 } write_sfm2(2,3,s_shi); // 显示时 write_sfm2(2,6,s_fen); // 显示分 write_sfm2(2,9,s_miao); // 显示秒 write_com(0x80+0x40+6);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 } if(menu_1==4)//设置秒钟参数 { if(key_can==2)// { s_miao++; //加秒钟报警数据 if(s_miao>=60) s_miao=0; } if(key_can==3)// { if(s_miao<=0) s_miao=60; s_miao--; //减秒钟报警数据 } write_sfm2(2,3,s_shi); // 显示时 write_sfm2(2,6,s_fen); // 显示分 write_sfm2(2,9,s_miao); // 显示秒 write_com(0x80+0x40+9);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 } if(menu_1==5) //设置强光报警 { if(key_can==2)// { qiang_gx++; //加强光报警数据 if(qiang_gx>=100) qiang_gx=100; } if(key_can==3)// { qiang_gx--; //减强光报警数据 if(qiang_gx<=ruo_gx) qiang_gx=ruo_gx; } write_sfm2(1,7,qiang_gx); write_com(0x80+6);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 } if(menu_1==6) //设置弱光报警 { if(key_can==2)// { ruo_gx++; //加弱光报警数据 if(ruo_gx>=qiang_gx) ruo_gx=qiang_gx; } if(key_can==3)// { ruo_gx--; //减强光报警数据 if(ruo_gx<=1) ruo_gx=1; } write_sfm2(2,7,ruo_gx); write_com(0x80+0x40+6);//将光标移动到 write_com(0x0f);//显示光标并且闪烁 }}/*********************报警函数***************************/voidclock_beep(){ ucharvalue3; if((guangxian>=qiang_gx)||(guangxian<=ruo_gx)) //光线报警 { flag_gx=1;//光线报警 led1=0; }else { flag_gx=0; led1=1; } if(xuexi_start==1) //已经开始学习了 { if(distance<=set_d) //距离报警 { flag_juli=1; led2=0; }else { flag_juli=0; led2=1;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特殊药品运输管理制度
- 特药门诊用药管理制度
- 猪场医疗废物管理制度
- 环卫爱心早餐管理制度
- 现场生产要求管理制度
- 班级公共服务管理制度
- 班级德育安全管理制度
- 班组园地建设管理制度
- 班车客运运营管理制度
- 瓷砖店面员工管理制度
- 养老护理员四级考试题库及答案
- 湖南2024生地会考试卷及答案
- GB/T 228.1-2010金属材料拉伸试验第1部分:室温试验方法
- GB 2714-2015食品安全国家标准酱腌菜
- GB 1886.187-2016食品安全国家标准食品添加剂山梨糖醇和山梨糖醇液
- 2023年济南市初中学生学业水平考试地理试题
- 科研伦理与学术规范 期末考试
- 物资部各项管理制度
- 墙面干挂瓷砖技术交底
- biggs学习策略问卷SPQ-英文版
- 新闻发布系统-需求规格说明书
评论
0/150
提交评论