![多功能温湿度电子闹钟设计_第1页](http://file4.renrendoc.com/view14/M0A/37/25/wKhkGWYZ3LqAf1wXAAGkDE-tAK8732.jpg)
![多功能温湿度电子闹钟设计_第2页](http://file4.renrendoc.com/view14/M0A/37/25/wKhkGWYZ3LqAf1wXAAGkDE-tAK87322.jpg)
![多功能温湿度电子闹钟设计_第3页](http://file4.renrendoc.com/view14/M0A/37/25/wKhkGWYZ3LqAf1wXAAGkDE-tAK87323.jpg)
![多功能温湿度电子闹钟设计_第4页](http://file4.renrendoc.com/view14/M0A/37/25/wKhkGWYZ3LqAf1wXAAGkDE-tAK87324.jpg)
![多功能温湿度电子闹钟设计_第5页](http://file4.renrendoc.com/view14/M0A/37/25/wKhkGWYZ3LqAf1wXAAGkDE-tAK87325.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1研究目的及意义多功能温湿度电子闹钟是一种集时钟、闹钟、温度计和湿度计等多种功能于一体的电子设备。它的问世,为人们的生活带来了更大的便利和精确性。多功能温湿度电子闹钟具备精确计时的能力。随着社会的发展,时间对于人们的生活、学习、工作等方面变得越来越重要。人们希望能够精确掌握时间,以便合理安排自己的日程。多功能温湿度电子闹钟内置精确的时钟芯片,能够准确显示时间,并通过同步网络时间等功能自动进行时间校准,确保时间的准确性。多功能温湿度电子闹钟还具备闹钟功能。人们需要一个可靠的闹钟来帮助他们准时起床或提醒重要的活动。多功能温湿度电子闹钟可以设置多个闹铃,可以根据个人需求进行灵活的设置。无论是平日的起床闹钟还是会议提醒,它都能准时发出响亮的提醒声,确保人们不会错过重要的事情。多功能温湿度电子闹钟还具备温度和湿度监测功能。温度和湿度是人们日常生活中常常需要关注的环境因素。多功能温湿度电子闹钟内置高精度的温湿度传感器,能够实时检测当前环境的温度和湿度,并通过显示屏上的数字或指示灯等方式进行直观展示。这对于特殊行业或需要严格控制环境条件的场所来说,尤其重要。比如在医疗实验室、温室、仓库等地方,多功能温湿度电子闹钟可以提供及时准确的温湿度信息,帮助人们更好地进行工作或管理。多功能温湿度电子闹钟的问世使得人们在时间计量、闹铃提醒以及环境监测方面获得了更高的准确性和便利性。它的功能多样而实用,适用于各行各业的人们。随着科技的不断进步,相信多功能温湿度电子闹钟将会在未来发展出更多的功能和应用,为人们的生活带来更多的便利和质量提升。1.2国内外研究现状2015年郑平;黄志煌;唐齐时;林军;吕丹《研究》中主要技术指标完成情况1、多功能温湿度监测仪具有高准确度、高稳定性,能够快速测量温度、湿度参数。测量精度达到如下指标:相对湿度范围:(0~100)%;准确度:±2%RH;温度范围:(-25~60)℃;准确度:±0.2℃。2、通过软硬件设计,该监测仪可接入三种主流温湿度传感器;编写软件程序,可通过仪器侧边四个按键简单对温湿度传感器进行选择,以及显示亮度调节、时间设定等。3、多功能温湿度监测仪通过无线组网方式,采集位于工作区域各个温湿度端口信号,集成反馈到中央控制系统进行处理。4、根据产品的功能和性能指标编写相应的说明书,满足客户使用要求。5、进行仪表进行大量的实验,改进设备的硬件电路,与软件结构。并且送福建省计量科学研究院检定,根据所出具的证书,可得该仪表达到要求,可以在多种场合工作。二、主要经济指标完成情况项目组结合多年温湿度参数检定工作的积累以及对国内外各种温湿度传感的了解开发,研制了一种多功能无线自组网温湿度监测仪,监测工作区域的温度、湿度参数,并通过无线通信等方式反馈到控制系统,参与房间的温湿度控制,确保温湿度控制的准确、可靠。这不但可以解决我国各级计量检测部门现场温度、湿度等参数校准的问题,而且还可以应用在医疗、环保、电子、农业、工业气体、造纸、纺织等行业。目前已用于我院基地建设的温湿度监测系统中,应用情况良好、使用稳定。2020年卫东;霄在《计》中说明粮库储藏环境、温室生长环境及家居生活环境,其中温湿度都是重要的考虑因素。本系统以AT89C52为核心控制器,基于数字型DHT11温湿度传感器,将采集到的温度和湿度信息传输给控制器进行数据分析和决策,并通过系统硬件部分预留的驱动控制接口,实现对不同应用场合自动控制的需要;同时通过LCD1602液晶屏实时显示温湿度数据,并且温湿度数据若超出设置的阈值则自动发出声光报警,提醒粮库保管员、温室技术人员、用户警觉环境的变化,并及时查看系统是否自动采取了相应的措施,避免因温度和湿度因素造成的不必要的经济及健康损失。2022年露星;玲在《多功能闹钟设计》中设计一款基于STM32芯片的多功能闹钟,以实现显时定时,显示当地天气信息、农历节气、实时监测周围环境温度和湿度变化并可通过语音控制来播报此信息等功能。且联网功能摆脱了通过在程序源文件更改WIFI账号来连接不同热点的麻烦,使用APP或微信即可连接网络更新闹钟天气信息及时间,用户使用闹钟更加方便。2022年HasanpourSadegh;KarperienLucas;WalshTavia;JahanshahiMaryam;HadisiZhina在《用于持续伤口监测的混合型螺纹温度和湿度传感器》中纺织湿度和温度传感器在服装、伤口的管理、病人健康的监测等方面有着广泛的应用。在这里,我们提出了一种多步辊对辊浸涂方法,以生产带有氟化乙烯丙烯(FEP)涂层的纳米粒子棉线。FEP涂层消除了温度读数对湿度的依赖性。然后,通过将FEP涂覆的线程和非涂覆的线程集成到传感基板中,构建了一种混合温度和湿度传感器。所开发的传感平台可实现RH在30-80%范围内的快速测量和温度在20-90?°C范围内的变化,保质期长达6个月。为了展示该传感器用于伤口监测的可行性,将RH和温度传感器集成到定制的有机硅伤口敷料中。基于线的传感器对细胞没有任何负面影响,表明适合应用于伤口愈合。2022年MaresD.;PrajzlerV.;MartanT.;JerabekV.在《混合聚合物玻璃平面布拉格光栅作为温度和湿度传感器》中提出了一种新型平面光学聚合物波导布拉格光栅(PolymerWaveguideBraggGrating,PWBG)温湿度传感器的设计与构建。综合国内外发展情况不难看出,如今在物质生活日益丰富的同时,人们对,科学技术的不断发展,生活节奏越来越快,竞争日益激烈,人们对时间计量的精度要求越来越高,所以开发此款系统具有非常重要的意义。1.3主要研究内容该设计的主要流程如下:首先阅读大量参考文献,进行设计方案的确定,然后在protues上进行原理图的绘制和修改,在仿真通过的情况下,购买所需要的元器件(元器件应考虑大小)。接着把元器件焊接到各个功能电路的模块上,并结合程序进行调试。最后将各个功能的电路程序组合起来,然后再进行总体调试直到成功。实现的功能如下:纯下位机:1.系统时间日期可设置;2.系统可实时显示时间,日期;3.系统掉电后,有纽扣电池供电,时间日期掉电不丢失;4.系统可设置时钟,到达闹铃时间提醒;5.系统可实时监测当前环境的温湿度和PM2.5状况,并显示。总体结构框图如下:图1-1系统结构框图第2章系统的总体结构2.1设计方案文献研究法,通过查阅文献来获得研究资料,对系统设计中所涉及到的相关内容进行研究,初步构想系统要实现的功能及其运用的技术并搜集相关资料,作为系统设计的素材。功能分析法,功能分析法是社会科学用来分析社会现象的一种方法,是社会调查常用的分析方法之一。本系统通过功能分析法,对软件的各项功能进行具体分析,从而明确开发目标。定性分析法,通过对文献的研究,运用归纳和演绎、分析与综合以及抽象与概括等方法,深入了解软件和硬件开发的相关技术,从而熟悉系统中各个功能模块之间的关系,掌握系统的工作原理及其本质,确定开发流程。经验总结法,希望通过已有的每一块功能的结合进行总结,设计出一套优良的系统,并规范的编写程序。2.2功能需求分析2.2.1技术路线(1)硬件部分需要单片机模块、时钟芯片模块、温湿度检测模块、液晶屏模块、声音模块、按键模块;(2)采用KEIL5软件平台和C编程语言完成下位机软件设计;(3)采用QT平台和利用C语言和MYSQL完成系统设计;(4)设计结构框图.2.2.2预期结果1.学会独立完成系统的分析,设计;2.设计的结果具有实用性、科学性。3.建立“传感器”,“信号收发”,“液晶显示屏”三部分结构。4.硬件制作完成后进行软件调试。5.设计电路图。6.完成设计,进行实验。7.撰写毕业论文.2.3总体方案设计第一:理论知识准备阶段,理解设计课题,认真研究课题所涉及到的内容,能够较好的掌握有关题目的知识;第二:确定系统各个模块,理清各个模块之间的关系,收集相关得到软硬件资料;第三:规划课题,确定系统组成结构,勾画出大体系统框架并在结构框架的基础上提出原理框图;第四:利用软件完成硬件电路部分设计并画出各部分电路图,将系统部件通过接口电路集合在一起,并画出电路图;第五:根据系统控制过程完成软件设计部分,绘制出主流程图;第六:进行模拟仿真,检查系统是否能够按照要求实现控制功能,整理论文。2.4单片机型号选择如图2-1,本系统选择型号为STC89C52的52单片机,是一款高性能的8位单片机。与stm32单片机相比其开发难度较低且具有在线编程功能,;要求的工作电压更低;市面上价格更加实惠。STC89C52单片机是51单片机的一种增强版本,它的主要优势如下:1.处理速度更快:STC89C52单片机的时钟频率可以达到33MHz,比常规的12MHz的51单片机快得多。因此,它可以更快地执行指令,更快地处理输入和输出操作。2.更大的存储器:STC89C52单片机拥有更大的Flash存储器和RAM存储器,可分别达到32KB和2KB。这意味着它可以存储更多的程序,并处理更复杂的任务。因其价格低廉,且能够满足设计所需,故此本系统选STC89C52用其作为控制芯片。图2-1单片机最小系统原理图第3章系统的硬件部分设计3.1系统总体设计本设计是一种基于单片机技术的多功能温湿度电子闹钟设计,系统由单片机对信号进行运算处理,该设计的主要流程如下:首先阅读大量参考文献,进行设计方案的确定,然后在protues上进行原理图的绘制和修改,在仿真通过的情况下,购买所需要的元器件(元器件应考虑大小)。接着把元器件焊接到各个功能电路的模块上,并结合程序进行调试。最后将各个功能的电路程序组合起来,然后再进行总体调试直到成功。纯下位机:1.系统时间日期可设置;2.系统可实时显示时间,日期;3.系统掉电后,有纽扣电池供电,时间日期掉电不丢失;4.系统可设置时钟,到达闹铃时间提醒;5.系统可实时监测当前环境的温湿度和PM2.5状况,并显示。3.2系统的主要功能模块设计3.2.1DHT11温湿度传感器模块设计DHT11传感器是一种数字温湿度传感器,具有价格低廉、使用方便、精度高等优点。它的工作原理是通过测量介质中的温度和湿度,将其转化为电信号输出。DHT11传感器具有4个引脚,分别是VCC、DATA、NC、GND。硬件部分主要包括DHT11传感器的连接和单片机的连接。DHT11传感器的VCC引脚连接到单片机的33V电源引脚,GND引脚连接到单片机的地引脚,DATA引脚连接到单片机的任意一个数字IO口。本设计使用STM32单片机作为主控芯片,通过软件设计和硬件设计,成功地实现了基于DHT11传感器的温湿度传感器。通过串口传输,我们可以实时地监测环境中的温度和湿度变化。实验结果表明,该传感器具有较高的精度和稳定性,可以满足实际应用需求。图3-1DHT11温湿度传感器模块原理图3.2.2DS1302时钟模块设计DS1302时钟芯片工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。DS1302时钟芯片是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周、时、分、秒进行计时,Y一个月小于31天时可以自动调整,且具有闰年补偿等多种功能。图3-2DS1302时钟模块原理图工作原理:时钟芯片:DS1302时钟模块内部集成了一个时钟芯片,该芯片包含一个实时时钟计数器和一些寄存器用于存储时间和控制信息。时钟信号源:DS1302通过外部提供的电池供电,在断电情况下也能保持时钟运行。时钟信号源产生稳定的振荡信号,用于驱动时钟芯片内部的计数器。时间计数器:DS1302时钟模块内部的实时时钟计数器使用一个32.768kHz的振荡器作为时钟信号源。这个振荡器的频率很稳定,因此可以提供准确的时间计数。寄存器存储:DS1302时钟模块具有一组寄存器,用于存储年、月、日、时、分、秒等时间信息,以及一些控制位用于配置和控制模块的功能。数据传输:通过与主控芯片(如单片机或微处理器)之间的串行通信接口,可以读取和写入DS1302时钟模块内部的寄存器。主控芯片通过向特定的寄存器地址发送命令和数据,与DS1302进行通信。充电保护:DS1302内部的电池充电电路可用于为备用电源(电池)充电,以保持时钟在断电情况下的运行。充电保护电路确保电池不会过充,同时在断电时切断外部电源,以保护电池充电电路。3.2.3LCD显示模块设计LCD(LiquidCrystalDisplay的简称)液晶显示器。能够同时显示16x2,32个字符,是一种专门用来显示字母、数字、符号等的点阵型液晶模块。LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、控制驱动主电路HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结构件等装配在PCB板上而组成。该显示屏的优点是耗电量低、体积小、辐射低。LCD1602主要用来显示数字、字母、图形以及少量自定义字符。可以显示2行16个字符,拥有16个引脚,其中8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节V0和背光源AK.主要参数1.显示字符:16×2个字符2.工作电压:4.5~5V3.工作电流:2.0mA4.工作温度:-20°C~70°C5.模块最佳工作电压:5.0V6.单个字符尺寸2.95×4.35(W×Hmm)7.引脚:16脚图3-3LCD显示模块原理图工作原理:液晶分子结构:液晶是一种特殊的物质,具有在电场作用下改变取向的性质。液晶分子通常呈现棒状或盘状的结构,具有偶极性。液晶层和电极:液晶显示屏由两块平行的透明导电玻璃板组成,中间夹着一层液晶材料。这些玻璃板上有导电电极,它们以网格状或条状排列。像素结构:每个像素由一个液晶分子和两个交叉的电极组成,这些电极可以通过外部电压来控制。偏振器:在液晶层的上下方分别放置两个偏振器,它们的方向互相垂直。电压控制:当没有电压施加到液晶分子上时,它们的取向会受到偏振器的阻挡,光无法通过液晶层,显示为黑色。当外部电压施加到液晶分子上时,液晶分子会重新排列,改变光的偏振方向,从而允许光通过液晶层。显示图像:液晶显示屏的每个像素都可以根据所施加的电压来控制,从而改变液晶分子的取向。通过控制不同像素的电压,可以形成图像。色彩显示:液晶显示屏通常是单色的,为了实现彩色显示,可以使用彩色滤光片或使用多个子像素来实现RGB(红、绿、蓝)颜色的组合。3.2.4蜂鸣器模块设计蜂鸣器是一种一体化结构的电子讯响器,采用压供电,广泛应用于计算机、打印机、复印机、报警器、玩具、汽车电子设备、电话机、时器等电子产品中作发声器件。蜂鸣器主要分为和器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。驱动方式,系统有两个他激蜂鸣器,频率都为100Hz,一个由I/O口进行控制,另一个由PWM输出口进行控制;系统还有两个按键,一个按键为PORT按键,I/O口控制的蜂鸣器不鸣叫时按一次按键I/O口控制的蜂鸣器鸣叫,再按一次停止鸣叫,另一个按键为PWM按键,PWM口控制的蜂鸣器不鸣叫时按一次按键PWM输出口控制的蜂鸣器鸣叫,再按一次停止鸣叫。蜂鸣器是不能用做机的,因为,蜂鸣器内部有一个振荡电路,通上电源后就会驱动内部的一个微型喇叭发出蜂鸣声。蜂鸣器可不是一个单纯的小喇叭。另外,蜂鸣器有两种。一种是,内部自带振荡器的;一种是,需要外接一个振荡器的,也就是一个普通的微型喇叭。对于不带振荡器的那种,也是不能用的,因为它的电阻一般为32欧姆左右,也有8欧或16欧的。这些都属于低阻抗的,所以不能用。图3-4蜂鸣器模块设计原理图有源蜂鸣器是一种具有内置振荡源的电子器件,它能够产生声音信号。下面是有源蜂鸣器的工作原理:振荡源:有源蜂鸣器内部集成了一个振荡源,通常是一个简单的震荡电路或封装的振荡器芯片。这个振荡源会产生一定频率的电信号,通常是音频范围内的频率。蜂鸣器元件:有源蜂鸣器内部包含一个振膜和一个驱动电路。振膜是一个可以震动的薄膜,通常由金属或陶瓷制成。它与驱动电路相连,可以根据接收到的电信号进行振动。驱动电路:驱动电路是有源蜂鸣器中的关键组成部分,它接收来自振荡源的电信号,并将其转换为适合驱动振膜的电压信号。驱动电路通常包括放大器和输出级,用于增强电信号的功率,并将其传递给振膜。振膜振动:一旦驱动电路提供了适当的电压信号,振膜开始以相应频率振动。这种振动会产生声音波,将电信号转化为听得见的声音。声音输出:当振膜振动时,它会将声音波传播到周围的空气中。这些声音波通过蜂鸣器的结构和开口部分传播出来,从而产生可以听到的声音。3.2.5PM2.5传感器模块设计PM2.5传感器是一种用于测量空气中PM2.5颗粒物浓度的设备,它可以检测细小颗粒物的含量并提供相应的浓度数据。其工作原理如下:激光光源:PM2.5传感器内部配备了一个激光光源,通常是一颗激光二极管。激光光源会产生一个稳定且具有特定波长的激光束。散射原理:PM2.5传感器采用散射原理来测量颗粒物浓度。激光束会被空气中的PM2.5颗粒物散射,形成散射光。接收器和光敏元件:传感器内部还包含一个接收器,用于接收被散射的光。在接收器上安装了一个光敏元件(例如光电二极管),它可以转换光信号为电信号。光信号检测:光敏元件会感应到接收到的散射光,根据光的强度变化产生相应的电信号。数据处理:传感器内部的电路将从光敏元件接收到的电信号进行放大和处理。处理后的信号可以提供有关PM2.5颗粒物浓度的信息。校准和校正:为了确保传感器的准确性,通常需要进行校准和校正。这涉及将传感器与已知浓度的颗粒物进行比较,并调整传感器的输出,以使其能够准确反映实际浓度。数据输出:最后,PM2.5传感器会将测量到的PM2.5颗粒物浓度数据输出到外部设备,如显示屏、数据记录器或微处理器等,以供用户查看和分析。PM2.5传感器模块的硬件电路设计可以包括以下关键部分:电源电路:为传感器模块提供所需的电源电压。通常情况下,传感器模块需要一个稳定的电压源,可以使用线性稳压器或开关稳压器来提供所需的电源电压。传感器接口电路:将传感器与主控制器或微处理器连接起来。PM2.5传感器通常使用串行接口(如UART或I2C)与主控制器进行通信。您需要设计一个适配器电路,将传感器的串行接口与主控制器的串行接口相匹配。模拟前端电路:用于处理传感器输出的模拟信号。传感器通常输出一个模拟电压或电流信号,您需要设计一个模拟前端电路来放大、滤波和条件化传感器的输出信号,以便将其转换为数字信号。ADC(模数转换器)电路:用于将模拟信号转换为数字信号。传感器的模拟输出信号需要通过ADC转换为数字信号,以便主控制器能够处理和分析数据。选择一个合适的ADC芯片,并设计相应的电路将模拟信号转换为数字信号。外部存储器电路(可选):如果您计划将数据存储在外部存储器中,例如闪存芯片或SD卡,您需要设计相应的接口电路,将主控制器与外部存储器连接起来。指示灯和按键电路(可选):如果您希望添加指示灯或按键以实现用户交互,您可以设计相应的电路来控制指示灯和接收按键输入。PCB设计:将上述电路设计布局到一个PCB(PrintedCircuitBoard)上,考虑电路的连接、布线、噪声抑制和适当的地线设计等因素。第4章系统的软件设计4.1软件的主要流程首先开始时进行系统初始化,当初始化完成后,单片机进行程序的开始,按键会更改我们的时钟信号,同时也会触发我们的蜂鸣器响应,我们的温湿度数据和时钟数据,都会在我们的LCD屏上进行显示。图4-1系统主要流程图4.2LCD显示屏模块的软件设计首先进行单片机的初始化,初始化成功后,我们的单片机会将温湿度传感器采集到的数据,时钟的数据都从LCD屏上显示出来。图4-2LCD显示屏软件设计图LCD显示屏模块的软件设计可以包括以下几个方面:硬件初始化:首先,你需要将LCD显示屏模块连接到主控单元(例如微控制器)的合适引脚。根据LCD模块的规格和接口类型,你需要进行硬件初始化,包括设置引脚模式、电源电压等。显示控制:LCD显示屏通常使用并行或串行接口进行数据传输。你需要根据LCD的通信协议和接口类型,发送适当的指令和数据以控制显示屏。这可能包括设置显示模式、清除屏幕、设置光标位置、绘制图形等。字符和图形显示:通过发送适当的指令和数据,你可以在LCD上显示字符、字符串和图形。你需要设计相应的算法和数据结构,以将字符和图形转换为适当的字节和位图格式,并将其发送到LCD模块进行显示。光标控制:对于支持光标的LCD模块,你可以控制光标的位置和状态。这包括将光标移动到特定的行和列、显示/隐藏光标、设置光标闪烁等。根据LCD模块的规格和文档,使用适当的指令和数据进行光标控制。显示模式和属性:LCD显示屏通常支持不同的显示模式和属性,例如行数、字符大小、背光亮度等。你可以根据需要设置和调整这些显示模式和属性,以满足你的应用需求。动态显示和刷新:如果你需要在LCD上显示动态内容,例如实时数据、计数器等,你可以设计相应的逻辑和算法。这可能包括定时刷新显示、数据更新和重绘等。错误处理和异常情况:在软件设计过程中,你应该考虑到可能出现的错误和异常情况。例如,与LCD的通信失败、显示数据不正确等。你可以添加适当的错误处理机制,例如错误代码、超时检测等,以确保程序可以恢复正常运行或提供相应的提示。4.3DS1302模块的软件设计首先进行初始化,初始化成功后,我们的单片机会进行程序的开始。时钟程序开始进行,并且时钟模块的数据会传输到我们的单片机上。图4-3时钟模块软件设计流程图DS1302时钟模块的软件设计可以包括以下几个方面:硬件连接:首先,你需要将DS1302时钟模块连接到你的主控单元(例如微控制器)。DS1302模块通常使用3个引脚进行通信:RST(复位),SCLK(时钟),和IO(数据)。确保正确连接这些引脚,并根据需要连接电源和地线。通信协议:DS1302模块使用串行接口进行通信,你需要根据DS1302的通信协议来进行数据传输。这通常涉及到发送和接收字节数据,并且需要注意时序和时钟频率。你可以使用主控单元的GPIO功能或特定的串行通信库函数来实现通信。初始化:在开始使用DS1302之前,你需要对其进行初始化设置。这包括设置时钟的初始时间和日期,以及配置其他功能,例如时钟格式(12小时制或24小时制),使能闹钟等。根据DS1302的规格和文档,使用合适的命令和数据格式进行初始化。时钟读取和设置:通过DS1302的通信接口,你可以读取当前的时钟时间和日期。这包括小时、分钟、秒、年、月、日等信息。你也可以通过通信接口设置新的时钟时间和日期,以更新DS1302的内部计数器。记住,写入新的时间和日期可能需要进行特定的数据格式转换。闹钟功能:DS1302通常还提供了闹钟功能,允许你设置特定的时间点触发闹钟。你可以通过设置相关的寄存器来配置闹钟的时间,并通过轮询或中断方式检测是否触发了闹钟。电池备份:DS1302通常具有电池备份功能,以保持时钟计数器的运行,即使主电源断开。你可以通过设置相应的寄存器来启用或禁用电池备份功能。在设计软件时,你需要考虑电池状态和电池电量的监测,并在必要时提供警告或处理措施。错误处理和异常情况:在软件设计过程中,你应该考虑到可能出现的错误和异常情况。例如,与DS1302的通信失败、时钟数据不正确等。你可以添加适当的错误处理机制,例如错误代码、超时检测等,以确保程序可以恢复正常运行或提供相应的提示。4.4蜂鸣器模块软件设计开始时首先进行的是我们的初始化,初始化成功后,我们的进入设定的程序,我们的摁键会触发我们的蜂鸣器响应,当我们的时钟到达我们设定的时间时,我们的蜂鸣器也会进行报警。图4-4蜂鸣器模块软件设计蜂鸣器模块的软件设计可以包括以下几个方面:硬件初始化:首先,你需要将蜂鸣器模块连接到主控单元(例如微控制器)的合适引脚。根据蜂鸣器模块的规格和接口类型,你需要进行硬件初始化,包括设置引脚模式(输入/输出)、电平状态等。蜂鸣器控制:通过控制蜂鸣器模块所连接的引脚,你可以产生不同的声音和音调。通常,蜂鸣器模块是通过改变引脚的高低电平状态来控制的。你可以使用主控单元的GPIO功能或特定的蜂鸣器控制库函数来实现控制。音频生成:根据你的需求,你可以生成不同频率和持续时间的音频信号。这可以通过在适当的时序下改变引脚电平状态来实现。你可以使用定时器或延时函数来控制音频的持续时间和频率。声音模式和序列:除了单个音频信号,你还可以设计和控制不同的声音模式和序列。这可能包括播放音乐、警报声、脉冲等。你可以使用控制逻辑和计时器来生成复杂的声音模式和序列。音量控制:在一些应用中,你可能需要对蜂鸣器的音量进行控制。这可以通过改变蜂鸣器的驱动电压或使用可调电阻等方式来实现。根据蜂鸣器模块的设计和规格,你可以选择合适的音量控制方法。错误处理和异常情况:在软件设计过程中,你应该考虑到可能出现的错误和异常情况。例如,当蜂鸣器模块无法正常工作或出现故障时,你可以添加适当的错误处理机制,以确保程序可以恢复正常运行或提供相应的提示。4.5PM2.5检测模块软件设计PM2.5传感器模块的软件设计可以包括以下几个方面:硬件初始化:首先,你需要通过适当的接口将传感器模块连接到你的主控单元(例如微控制器)。根据传感器模块的规格和通信协议,你需要进行硬件初始化,包括设置引脚模式、通信速率等。传感器数据读取:通过与传感器模块之间的通信接口(例如串口、I2C、SPI等),你可以读取传感器模块提供的PM2.5浓度数据。根据通信协议,你需要发送相应的指令,并解析传感器返回的数据。数据处理和计算:一旦你成功读取传感器的浓度数据,你可以进行数据处理和计算。这可能包括数据滤波、校准和单位转换等。你还可以根据需求对数据进行统计分析,例如计算平均值、最大值、最小值等。数据存储和显示:你可以选择将传感器数据存储在内部存储器中,或者将其发送到外部设备(例如计算机、云服务器等)。此外,你还可以在显示屏或其他输出设备上实时显示传感器数据,以便用户可以直观地了解PM2.5浓度。报警和异常处理:你可以设置阈值来监测PM2.5浓度的变化,并触发警报或采取相应的措施。例如,当浓度超过预设的安全范围时,可以通过声音、光线或消息通知用户。软件优化和稳定性:在软件设计过程中,你应该考虑到性能优化和稳定性。这包括减少资源占用、优化算法、处理异常情况等。你还可以添加错误处理机制,以确保在发生错误时程序可以恢复正常运行。第5章系统测试5.1系统实物图如图我们可以看到蜂鸣器,温湿度传感器,PM2.5传感器,开关,纽扣电池、按键等,按键依次为我们的设置按键、加按键、减按键。图5-1系统实物图5.2测试步骤系统通过温湿度传感器传来的数据进行分析,可以在显示屏上显示当前环境的温度和湿度。系统可实时显示时间,日期并可以进行设置。系统掉电后,有纽扣电池供电,系统掉电日期也不会丢失。在测试的时候,可能会出现测试的温度或者湿度不准的情况,出现这种情况时,可以多测试几次,直至准确为止。测试闹钟,通过我们设定闹钟时间为一分钟,一分钟后如图可以看到我们的LED灯已经亮起,这时候我们的蜂鸣器也进行了报警提示,闹钟响起实验完成且成功。图5-2实物测试图系统通过PM2.5传感器传来的数据进行分析,可以在显示屏上显示当前环境的PM2.5浓度,在测试的时候,可能会出现测试的PM2.5浓度不准的情况,出现这种情况时,可以多测试几次,直至准确为止。图5-3实物测试图第六章总结与展望本设计不仅具备传统电子闹钟的功能,如可设置系统时间日期、实时显示时间和日期,并在掉电时通过纽扣电池供电以保证时间日期不丢失,还具备了监测环境温湿度和PM2.5状况的能力,并能实时显示这些数据。通过设计,我们使得这款电子闹钟成为一个实用的家居设备。用户可以根据自己的需要设置时间和日期,确保准确的闹铃提醒。而且,在掉电情况下,纽扣电池的应用保证了时间和日期的持久性,使得用户不必担心重新设置系统。另外,该闹钟的环境监测功能为用户提供了实时的温湿度和PM2.5状况信息。这对于关注空气质量和室内环境的用户来说,尤为重要。用户可以通过闹钟上的显示屏随时了解当前环境的状况,根据需要采取相应的措施,例如调整温度、湿度或开启空气净化器等,以改善居住环境。展望:虽然我们已经成功设计了一款多功能温湿度电子闹钟,但仍有一些潜在的改进和扩展的空间。我们可以考虑增加更多的环境监测功能,例如检测空气中的其他污染物或有害气体。这将使闹钟成为一个更全面的环境监测仪器,为用户提供更多有关室内空气质量的信息。我们可以进一步改进闹钟的显示屏和用户界面。提高显示屏的分辨率和亮度,使得数据更加清晰可见。同时,简化用户界面,使设置时间、日期和其他功能更加方便和直观。考虑到移动设备的普及,我们可以将闹钟与手机或其他智能设备进行连接,实现更多的功能扩展。例如,用户可以通过手机应用程序与闹钟进行交互,设置闹钟、查看历史数据等。总的来说,多功能温湿度电子闹钟的设计为用户提供了便利和实用性。通过不断的改进和扩展,我们可以进一步提升该产品的性能和功能,满足用户对于环境监测和闹钟功能的需求,并适应日益智能化的家居生活。参考文献[1]松井邦彦.传感器实用电路设计与制作[M].北京:科学出版社,2019,107-110.[2]林志琦.单片机原理接口及应用[M].中国水利水电出版社,2019.[3]黄继昌.传感器工作原理及应用实例[A].北京:人民邮电出版社,2018.[4]高燕梅.数字电子技术基础[M].电子工业出版社,2018.120-73.[5]童诗白.模拟电子技术基础[M].高等教育出版社,2019,79-85.[6]孙晓云.接口与通信技术原理与应用[J].中国电力出版社,2018.[7]黄照翠,张荃,陈晖,等.智慧校园视频服务体系应用研究[J].中国教育信息化,2020.[8]李耀武.基于单片机的电子LED闪字屏的电路设计[J].西部皮革.2018.[9]李合军.基于单片机的网络覆盖控制技术[J].电子技术与软件工程.2021.[10]张浩锐.短距离无线数据传输系统研究[J].科技资讯.2019.[11]段露星,冯治杰,付瑞玲.多功能闹钟设计[J].黄河科技学院学报,2022,24(08):80-83.[12]蒋卫东,贾文娟,乔凌霄.多功能温湿度智能测控仪设计[J].运城学院学报,2020,38(03):26-28.[13]陈建泉,林伟军.自带温湿度系统的多功能移动工器具车[J].电工技术,2019,(02):85-86.[14]王振运,孟立凡,李菠.多功能智能药盒的设计与实现[J].电子世界,2016,(01):189-190.[15]陈洪侠,吕妍.多功能温湿度现场校验装置的设计[J].仪器仪表标准化与计量,2015,(06):41-42+45.[16]陈洪侠,基于虚拟仪器技术的多功能温湿度现场校验装置.黑龙江省,黑龙江省计量检定测试院,2015-10-29.[17]郑平,多功能无线自组网温湿度监测仪的研究.福建省,福建省计量科学研究院,2015-01-12.[18]林军,多功能数字温湿度计/体温计的研制.福建省,福建省计量科学研究院,2014-03-14.[19]KewangZhang,QizhaoWu,XinLi.Relayparticipated-new-typebuildingcncrgymanagcmentsystcm:Ancncrgy-efficientroutingschemeforwirelesssensornetwork-basedbuildingenergymanagementsystems.2018,13(1):169-185.[20]PengweiHua,XiaowuLiu,JiguoYu,NaDang,XiaoweiZhang.Energy-efficientadaptiveslice-basedsecuredataaggregationschemeinWSN[J].ProcediaComputerScience,2018,129.[21]KORTUMK,MOLLERM,HIRNEIBC,etal.Smarteyedata:devdtopahealtO0%ofoundationformedicalrescarchusingSmartDataapplications[J].DerOphthalmologeZeitschriftDerDeutschenOphthalmologischenGescllschaft,2019.[22]RaafiB.DesignandDevelopmentofFuzzy-PIDControllerforFour-wheeledMobileRoboticStability:AC'aseStudyontheUphillRoad[J].PTEKJournalofEngineering,2020,6(2):6.[23]ZhouY,DongW,FYuan,etal.ResearchofOnlineWaterQualityMonitoringSystemBasedonZigbeeNetwork[J].AdvancesinInformationSciences&ServiceSciences,2019,4(5):255-261.附录电路图
源代码sbitBUZZER=P1^3; //蜂鸣器驱动端口==P1^3sbitReduc=P3^6; //按键键输入端口==P1^7sbitAdd=P3^5; //按键加输入端口==P3^1sbitMode=P3^4; //按键加输入端口==P3^1/**************************************************函数名称:voidmain(void)**函数功能:主函数**输入:无**输出:无**说明:************************************************/voidmain(void) { ucharseconds=0x55,points=0x12,when=0x12,years=0x14,month=0x12,day=0x11,week=0x04;//时间、日期变量 ucharT_data=0,RH_data=0;//温度、湿度变量 ucharnao_when=0x12,nao_points=0x13;//闹钟变量 ucharshezhi_flag=1,Mode_flag=1;//设置变量 ucharbueezr_flag=0,count=0,buzzer_time=9;//蜂鸣器报警变量 uintMode_count=0; uchardisp1[16]={"20--Week"}; uchardisp[16]={"::C%"}; LCD_Init();// WriteChar(1,0,16,"Feiyanan");//在第一行显示内容// WriteChar(2,0,16,"130402326");//在第二行显示内容// Delay(5000);// Delay(5000); nao_when=byte_read(0x2000); //读出闹钟时 nao_points=byte_read(0x2001);//读出闹钟分 while(1) { T_data=Read_TRH(0);//温度 disp[9]=T_data/10+0x30;//十位 disp[10]=T_data%10+0x30;//个位 RH_data=Read_TRH(1);//湿度 disp[13]=RH_data/10+0x30;//十位 disp[14]=RH_data%10+0x30;//个位 years=getds1302(0x8D);//年 disp1[2]=years/16+0x30;//十位 disp1[3]=years%16+0x30;//个位 week=getds1302(0x8B);//星期 disp1[15]=week%16+0x30;//个位 month=getds1302(0x89);//月 disp1[5]=month/16+0x30;//十位 disp1[6]=month%16+0x30;//个位 day=getds1302(0x87);//日 disp1[8]=day/16+0x30;//十位 disp1[9]=day%16+0x30;//个位 when=getds1302(0x85);//时 disp[0]=when/16+0x30;//十位 disp[1]=when%16+0x30;//个位 points=getds1302(0x83);//分 disp[3]=points/16+0x30;//十位 disp[4]=points%16+0x30;//个位 seconds=getds1302(0x81);//秒 disp[6]=seconds/16+0x30;//十位 disp[7]=seconds%16+0x30;//个位 /*******查看阴历数据********/ if(Add==0)//判断Add键是否按下 { Conversion(0,years,month,day);//阳历转阴历函数 WriteChar(2,0,16,"");//在第二行显示'内容'阴历数据 WriteCOMDATA(0xC3,0); WriteCOMDATA('2',1); WriteCOMDATA('0',1); WriteCOMDATA(year_moon/10+0x30,1); WriteCOMDATA(year_moon%10+0x30,1); WriteCOMDATA('/',1); WriteCOMDATA(month_moon/10+0x30,1); WriteCOMDATA(month_moon%10+0x30,1); WriteCOMDATA('/',1); WriteCOMDATA(day_moon/10+0x30,1); WriteCOMDATA(day_moon%10+0x30,1); count=40; while(count--)//阳历数据第一行,阴历数据第二行,显示时间4S { Delay(400); } } //闹钟函数 if(points==nao_points&&nao_when==when&&seconds<0x30)//闹钟时间比较,30S { bueezr_flag=1; } //整点报时 elseif(points==0&&seconds<0x02)//整点报时比较1S { bueezr_flag=1; } else { bueezr_flag=0; BUZZER=1; } /*******蜂鸣器报警********/ count++;if(count>buzzer_time*10)count=buzzer_time+1; if(count%buzzer_time==0&&bueezr_flag) { BUZZER=~BUZZER;//蜂鸣器取反发出声音提示 } /*******Mode键设置时间日期********/ if(Mode==0&&Mode_flag) { WriteCOMDATA(0x0F,0);//LCD显示光标 Delay(100); if(Mode==0) { BUZZER=1; bueezr_flag=0; Mode_flag=0; shezhi_flag=1; WriteChar(1,0,16,"20--Week");//在第一行显示内容 WriteChar(2,0,16,":::");//在第二行显示内容 WriteCOMDATA(0x82,0);WriteCOMDATA(years/16+0x30,1); WriteCOMDATA(0x83,0);WriteCOMDATA(years%16+0x30,1); WriteCOMDATA(0x85,0);WriteCOMDATA(month/16+0x30,1); WriteCOMDATA(0x86,0);WriteCOMDATA(month%16+0x30,1); WriteCOMDATA(0x88,0);WriteCOMDATA(day/16+0x30,1); WriteCOMDATA(0x89,0);WriteCOMDATA(day%16+0x30,1); WriteCOMDATA(0x8F,0);WriteCOMDATA(week%16+0x30,1); WriteCOMDATA(0xC0,0);WriteCOMDATA(when/16+0x30,1); WriteCOMDATA(0xC1,0);WriteCOMDATA(when%16+0x30,1); WriteCOMDATA(0xC3,0);WriteCOMDATA(points/16+0x30,1); WriteCOMDATA(0xC4,0);WriteCOMDATA(points%16+0x30,1); WriteCOMDATA(0xC6,0);WriteCOMDATA(seconds/16+0x30,1); WriteCOMDATA(0xC7,0);WriteCOMDATA(seconds%16+0x30,1); WriteCOMDATA(0xCA,0);WriteCOMDATA(nao_when/16+0x30,1); WriteCOMDATA(0xCB,0);WriteCOMDATA(nao_when%16+0x30,1); WriteCOMDATA(0xCD,0);WriteCOMDATA(nao_points/16+0x30,1); WriteCOMDATA(0xCE,0);WriteCOMDATA(nao_points%16+0x30,1); while(1) { switch(shezhi_flag) { case1: WriteCOMDATA(0x82,0);WriteCOMDATA(years/16+0x30,1); WriteCOMDATA(0x83,0);WriteCOMDATA(years%16+0x30,1); WriteCOMDATA(0x83,0); break; case2: WriteCOMDATA(0x85,0);WriteCOMDATA(month/16+0x30,1); WriteCOMDATA(0x86,0);WriteCOMDATA(month%16+0x30,1); WriteCOMDATA(0x86,0); break; case3: WriteCOMDATA(0x88,0);WriteCOMDATA(day/16+0x30,1); WriteCOMDATA(0x89,0);WriteCOMDATA(day%16+0x30,1); WriteCOMDATA(0x89,0); break; case4: WriteCOMDATA(0x8F,0);WriteCOMDATA(week%16+0x30,1); WriteCOMDATA(0x8F,0); break; case5: WriteCOMDATA(0xC0,0);WriteCOMDATA(when/16+0x30,1); WriteCOMDATA(0xC1,0);WriteCOMDATA(when%16+0x30,1); WriteCOMDATA(0xC1,0); break; case6: WriteCOMDATA(0xC3,0);WriteCOMDATA(points/16+0x30,1); WriteCOMDATA(0xC4,0);WriteCOMDATA(points%16+0x30,1); WriteCOMDATA(0xC4,0); break; case7: WriteCOMDATA(0xC6,0);WriteCOMDATA(seconds/16+0x30,1); WriteCOMDATA(0xC7,0);WriteCOMDATA(seconds%16+0x30,1); WriteCOMDATA(0xC7,0); break; case8: WriteCOMDATA(0xCA,0);WriteCOMDATA(nao_when/16+0x30,1); WriteCOMDATA(0xCB,0);WriteCOMDATA(nao_when%16+0x30,1); WriteCOMDATA(0xCB,0); break; case9: WriteCOMDATA(0xCD,0);WriteCOMDATA(nao_points/16+0x30,1); WriteCOMDATA(0xCE,0);WriteCOMDATA(nao_points%16+0x30,1); WriteCOMDATA(0xCE,0); break; } Delay(300); //加 if(Reduc==0) { Delay(200); //while(Reduc==0); switch(shezhi_flag) { case1:if(years==0x99)years=0;else{if(years%16==9)years+=7;elseyears++;}break; case2:if(month==0x12)month=1;else{if(month%16==9)month+=7;elsemonth++;}break; case3:if(day==0x31)day=1;else{if(day%16==9)day+=7;elseday++;}break; case4:if(week==0x07)week=1;else{if(week%16==9)week+=7;elseweek++;}break; case5:if(when==0x23)when=0;else{if(when%16==9)when+=7;elsewhen++;}break; case6:if(points==0x59)points=0;else{if(points%16==9)points+=7;elsepoints++;}break; case7:if(seconds==0x59)seconds=0;else{if(seconds%16==9)seconds+=7;elseseconds++;}break; case8:if(nao_when==0x23)nao_when=0;else{if(nao_when%16==9)nao_when+=7;elsenao_when++;}break; case9:if(nao_points==0x59)nao_points=0;else{if(nao_points%16==9)nao_points+=7;elsenao_points++;}break; } } //减 if(Add==0) { Delay(200); //while(Add==0); switch(shezhi_flag) { case1:if(years==0)years=0x99;else{if(years%16==0)years-=7;elseyears--;}break; case2:if(month==1)month=0x12;else{if(month%16==0)month-=7;elsemonth--;}break; case3:if(day==1)day=0x31;else{if(day%16==0)day-=7;elseday--;}break; case4:if(week==1)week=0x07;else{if(week%16==0)week-=7;elseweek--;}break; case5:if(when==0)when=0x23;else{if(when%16==0)when-=7;elsewhen--;}break; case6:if(points==0)points=0x59;else{if(points%16==0)points-=7;elsepoints--;}break; case7:if(seconds==0)seconds=0x59;else{if(seconds%16==0)seconds-=7;elseseconds--;}break; case8:if(nao_when==0)nao_when=0x23;else{if(nao_when%16==0)nao_when-=7;elsenao_when--;}break; case9:if(nao_points==0)nao_points=0x59;else{if(nao_points%16==0)nao_points-=7;elsenao_points--;}break; } } //短按切换设置项目长按退出设置页面 if(Mode==0) { Delay(300); while(Mode==0) { Delay(300); Mode_count++; if(Mode_count>6) { //T_data=Read_TRH(0);//温度 disp[9]=T_data/10+0x30; disp[10]=T_data%10+0x30; //RH_data=Read_TRH(1);//湿度 disp[13]=RH_data/10+0x30; disp[14]=RH_data%10+0x30; //years=getds1302(0x8D);//年 disp1[2]=years/16+0x30; disp1[3]=years%16+0x30; //week=getds1302(0x8B);//星期 disp1[15]=week%16+0x30; //month=getds1302(0x89);//月 disp1[5]=month/16+0x30; disp1[6]=month%16+0x30; //day=getds1302(0x87);//日 disp1[8]=day/16+0x30; disp1[9]=day%16+0x30; //when=getds1302(0x85);//时 disp[0]=when/16+0x30; disp[1]=when%16+0x30; //points=getds1302(0x83);//分 disp[3]=points/16+0x30; disp[4]=points%16+0x30; //seconds=getds1302(0x81);//秒 disp[6]=seconds/16+0x30; disp[7]=seconds%16+0x30; WriteCOMDATA(0x0C,0);//关闭LCD光标 Delay(10); WriteChar(1,0,16,disp1);//在第一行显示内容 WriteChar(2,0,16,disp);//在第二行显示内容 } } if(Mode_count>6) { Mode_count=0; /********闹钟写入EEPROM********/ SectorErase(0x2000); byte_write(0x2000,nao_when); byte_write(0x2001,nao_points); /********时间、日期、星期写入DS1302********/ setds1302(0x80,seconds);//秒 setds1302(0x82,points);//分 setds1302(0x84,when);//时 setds1302(0x86,day);//日 setds1302(0x88,month);//月 setds1302(0x8A,week);//星期 setds1302(0x8C,years);//年 break; } elseMode_count=0; shezhi_flag++; if(shezhi_flag>9)shezhi_flag=1; } } } } /********LCD1602显示********/ WriteChar(1,0,16,disp1);//在第一行显示‘内容’日期和星期 WriteChar(2,0,16,disp);//在第二行显示‘内容’时间、温度和湿度 if(Mode_flag==0){Mode_count++;if(Mode_count>20){Mode_count=0;Mode_flag=1;}} }}sbitDHT11_DQ=P3^3;ucharU8count,U8temp,U8FLAG,U8comdata;voidDelay_10us(void){ uchari; i--; i--; i--; i--; i--; i--;}voidCOM(void){ uchari;for(i=0;i<8;i++){ U8FLAG=2; while((!DHT11_DQ)&&U8FLAG++); Delay_10us(); Delay_10us(); U8temp=0; if(DHT11_DQ)U8temp=1; U8FLAG=2; while((DHT11_DQ)&&U8FLAG++); if(U8FLAG==1)break; U8comdata<<=1;U8comdata|=U8temp; }}ucharRead_TRH(ucharch){ ucharTRH_data=0; staticucharU8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata; staticucharU8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;DHT11_DQ=0;Delay(24);DHT11_DQ=1;Delay_10us();Delay_10us();Delay_10us();Delay_10us();DHT11_DQ=1;if(!DHT11_DQ){ U8FLAG=2; while((!DHT11_DQ)&&U8FLAG++); U8FLAG=2; while((DHT11_DQ)&&U8FLAG++); COM();U8RH_data_H_temp=U8comdata; COM();U8RH_data_L_temp=U8comdata; COM();U8T_data_H_temp=U8comdata; COM();U8T_data_L_temp=U8comdata; COM();U8checkdata_temp=U8comdata; DHT11_DQ=1; U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp==U8checkdata_temp) { U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp; U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; }} if(ch)TRH_data=U8RH_data_H; elseTRH_data=U8T_data_H; returnTRH_data;}#endif#ifndef__DELAY_H__#define__DELAY_H__#include<reg52.h>//#include<string.h>#defineucharunsignedchar#defineuintunsignedintvoidDelay(uintT){uchari;for(T;T>0;T--)for(i=200;i>0;i--);}#endif#defineRdCommand0x01//定义ISP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- LY/T 3401-2024石漠化防治术语
- 人教版数学七年级下册5.3.1《平行线的性质》听评课记录1
- 粤教版道德与法治九年级上册3.2.2《社会和谐 人人共享》听课评课记录
- 浙教版数学七年级下册《4.3 用乘法公式分解因式》听评课记录2
- 中图版历史七年级上册第5课《青铜器和甲骨文》听课评课记录
- 人教部编版八年级道德与法治上册:3.1《维护秩序》听课评课记录1
- 环保工程合同(2篇)
- 人教版七年级地理下册《日本》听课评课记录4
- 人教版历史八年级上册第15课《北伐战争》听课评课记录
- 新版华东师大版八年级数学下册《16.3可化为一元一次方程的分式方程2》听评课记录9
- 电网工程设备材料信息参考价(2024年第四季度)
- 2025年江苏农牧科技职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 2025江苏连云港市赣榆城市建设发展集团限公司招聘工作人员15人高频重点提升(共500题)附带答案详解
- 江苏省扬州市蒋王小学2023~2024年五年级上学期英语期末试卷(含答案无听力原文无音频)
- 数学-湖南省新高考教学教研联盟(长郡二十校联盟)2024-2025学年2025届高三上学期第一次预热演练试题和答案
- 决胜中层:中层管理者的九项修炼-记录
- 《轨道交通工程盾构施工技术》 课件 项目2 盾构构造认知
- 《港珠澳大桥演讲》课件
- 《有机化学》课件-第十章 羧酸及其衍生物
- 人教版道德与法治五年级下册《第一单元 我们一家人》大单元整体教学设计2022课标
- 2024年海南公务员考试申论试题(A卷)
评论
0/150
提交评论