基于单片机的湿度控制系统设计内容摘要:

钮开关并联于上电自动复位电路,在系统运行时,按一下开关,就在RST端出现一段时间高电平,使器件复位。 本设计采用人工复位开关电路,如图35所示。 单片机的RST脚为单片机的复位引脚,输入高电平使单片机复位,返回低电平则退出复位。 当开关闭合,复位引脚直接接电源,即高电平,RST端出现一段时间高电平,使器件复位。 开关断开时,复位脚接地(低电平),退出复位。 图35单片机复位开关电路时钟电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟的频率来提高CPU的速度。 目前51系列单片机都采用CMOS工艺,允许的最高频率是随型号而变化的,最高频率达60MHz。 CMOS型单片机内部有一个可控的反相放大器,引脚XTALXTAL2为反相放大器的输入端和输出端,在XTALXTAL2上外接晶振(或陶瓷谐振器)和电容便组成振荡器。 振荡器的频率主要取决于晶振(或陶瓷谐振器)的频率,但必须小于器件所允许的最高频率。 振荡器的工作受PD()控制,复位以后PD=0振荡器工作,可由软件设置PD=1,使振荡器停止振荡,从而使整个单片机停止工作,以达到节电的目的。 本设计采用的时钟电路是12M晶振,其原理图如下: 图36 单片机时钟振荡电路 ADC0832实现模数转换由于数字电子技术的迅速发展,尤其是计算机在自动控制、自动检测以及许多其他领域中的广泛应用,用数字电路处理模拟信号的情况也更加普遍。 为了能够使用数字电路处理模拟信号,必须将模拟信号转换成相应的数字信号,方能送入数字系统进行处理。 本系统采用ADC0832模数转换芯片来进行模拟信号与数字信号的转换。 单片机控制系统中通常要用到AD转换,根据输出格式,常用的AD转换方式可分为并行AD和串行AD。 并行方式一般在转换后可直接接收,但芯片的引脚比较多;串行方式所用芯片引脚少,封装小,但需要软件处理才能得到所需要的数据。 可是单片机I/O引脚本来就不多,使用串行器件可以节省I/O资源。 在进行单片机和ADC0832的连接时,因为DI和DO并不是同时使用,所以DI和DO可以共用单片机的一条I/O线,再加上一条时钟线和一条片选线就可以实现单片机和ADC0832的连接。 下图说明了ADC0832的工作时序,时钟与DI,DO输入,输出的关系。 图37 ADC0832的工作时序图正常情况下 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。 但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。 当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。 当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。 此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。 在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。 在第3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能,当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。 当2位数据为“1”、“1”时,只对CH1进行单通道转换。 当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN进行输入。 当2 位数据为“0”、“1”时,将CH0作为负输入端IN,CH1 作为正输入端IN+进行输入。 到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。 从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。 直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。 也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。 随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。 电路元器件的排版和连线影响到电路的美观和功能的实现,本设计采用protel软件进行排版设计。 制作流程:1.将生成的pcb图打印; 2.按照打印的图纸在板子上进行刻录联系; 3.将刻录的连线部分用锡进行覆盖; 4.用蚀铜液把多余的铜腐蚀掉; 5.打孔,焊接。 第四章 系统的软件与调试C语言是一种常用的高级语言之一,C语言简洁、紧凑、使用方便灵活。 用C语言编程容易实现程序的模块化和结构化,程序容易阅读、修改和移植[14]。 Keil C51是目前最流行的51系列单片机C语言软件开发平台,具有程序的编辑、编译、连接、目标文件格式转换、调试和模拟仿真等功能。 C51是其中的一个编译器,它具有ANSIC标准C所有的功能,并针对51系列单片机的硬件特点做了扩展。 图41 程序流程图程序流程图实现步骤:1.接通电源之后,系统初始化;2.通过单片机的EERROM及Flash技术与程序的结合写入湿度报警的上下限的值;3.然后检测湿度并显示;4.将检测的湿度与我们设置的报警的上下限的值进行比较,若高于上限,或者低于下限,则启动报警;5.判断有无报警的按键处理,若有返回到报警上下限值的写入部分,若无则继续显示当前湿度[15~16]。 图42湿度检测显示程序流程图 该软件部分的实现步骤为:1.初始化后,湿度传感器检测出当前环境湿度。 2.通过单片机控制数模装换芯片,将16进制数转换成10进制。 3.利用程序将要显示的数高低位拆分,查表,最后通过数码管显示。 图43 按键显示电路 本设计对按键要求是:显示值与设定值之间的转换,加1设定,减1设定。 其具体流程如图43所示:1.显示湿度后,需要判断有无按键,(即实物图里的转换开关按下),切换到报警的上下限值显示;2.,若检测到低电平(加1按键按下),则数码管显示的报警值加1;3.,若为低电平,设定值减1,若为高电平回到报警值显示。 图44 报警电路本次设计的报警电路是利用当前测试的湿度与写入的上下限的值进行比较,若高于或者对于设置的上下限,则单片机会驱动蜂鸣器响。 利用C51语言进行编程可以把程序进行模块化编写,然后在主函数里进行调用即可,这样分工明确,框架清晰,给人一目了然的感觉。 具体的程序见附录一。 第五章 系统调试1.在焊接之前对各元器件的好坏进行测试,用万用表进行测量。 2.检测电路焊接的正确性,是否存在漏焊等。 3.用万用表的电阻档测量各焊点是否存在虚焊。 软件采用keil c51软件进行编写程序并进行仿真运行 图51 程序编写截图1.在软件中编辑程序。 2.编辑结束后对软件的正确性进行仿真。 图52 程序仿真结果截图3.直至出现以上的结果即没有错误,没有警告(但并不代表可以实现功能,只是说明没有语法错误)。 结束语四年的大学生活,我学到很多的知识。 这几个月的毕业设计制作也让我学到的不仅仅是知识还有一种意志。 我选择这个课题作为我的毕业设计,确实是想临近毕业的时候多学点相关知识。 我们都知道当今单片机的用途十分广泛,对我们今后的工作有很大的帮助。 在做毕业设计的时候,翻越了大量的相关资料,从中学到了很多知识。 对传感器,单片机有了进一步的认识。 之前对湿度的概念很模糊,通过这次设计,我对湿度有了深刻的认识,知道湿度对我们日常生活的影响。 此外,还知道次设计在工业制造,农业生产等方面的应用。 参考文献[1] 肖志红.仓库温度与湿度自动控制系统设计[J].电子设计工程,2010,(10) .[2] 匡迎春,沈岳,姚帮松,罗亚辉,王江兰.简易型温室温湿度控制器设计[J].湖南农业大学学报(自然科学版),2009,(04) .[3] 董慧敏.温湿度控制系统设计[J]. 实验科学与技术,2008,(05).[4] Sabina Donato,Pietrantonio Ricci,Fernando Panarese,Emanuela Turillazzi.Cane Corso attack [J]. Forensic Science, Medicine,and Pathology,2006.[5] Vittorio Fineschi,Irene Riezzo,Santina Cantatore,Cristoforo Pomara,Emanuela Turillazzi,Margherita Neri.Complement C3a expression and tryptase degranulation as promising histopathological tests for diagnosing fatal amniotic fluid embolism [J].Virchows Archiv,2009.[6] Shishan Wu,Yanling Luo,Qianping Ran,Jian Shen.Effects of b copolymer PAAgMPEO on rheological and dispersion properties of aqueous CaCO3 suspensions [J]. Polymer Bulletin, 2007.[7] PIC单片机与单片机入门[J].电子制作, 2005, (10).[8] 严浪涛,孙林.基于ATMEL单片机及VB的船用调速器性能分析检测系统[J].山西电子技术, 2006,(04).[9] 陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2010.[10] 刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.[11] 钟富昭等.8051单片机典型模块设计与应用[M].人民邮电出版社,2007.[12] 王宝芹,范长胜,郭艳玲. 基于单片机的温室温湿度控制系统设计[J].林业机械与木工设备, 2008,(03) .[13] 于华丽,赵晓顺,刘淑霞,王家忠.传感器SHT71在温湿环境检测系统中的应用[J].农机化研究,2008,,(05) .[14] 梁合庆.使用单片机C语言的好处[J]. 电子产品世界,2000, (10) .[15] 牛余朋,牛傲其.51单片机C语言的编程技巧[J]. 电子制作, 2007.[16] 王东峰等.单片机C语言应用100例[M].电子工业出版社,2009. 附 录附录一:程序清单include //包含单片机寄存器的头文件define uchar unsigned chardefine uint unsigned intsbit P10=P1^0。 sbit ADD=P1^1。 sbit SUB=P1^2。 sbit P13=P1^3。 uint ya,temp,num=0,aa,th=180,tl=90。 //uchar aa,th=200,tl=100。 unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90}。 sbit CS=P2^3。 //sbit CLK=P2^4。 //sbit DIO=P2^5。 //void delay(uint z)。 void display(uint a)。 void displayth(uint b)。 void displaytl(uint c)。 void init(){TMOD=0x01。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 EA=1。 ET0=1。 TR0=1。 }void key(){ if(P10==0) { delay(5)。 if(P10==0) { num++。 if(num==3){num=0。 } } while(!P10)display(temp)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。