版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于单片机的猫舍环境控制系统设计与实现目录TOC\o"1-2"\h\u25284摘要 230578第一章绪论 347231.1系统背景 3154861.2国内外研究现状 3314011.3研究的目的及意义 4171451.4本章小结 531364第二章硬件设计 560472.1主控模块硬件设计 5218962.2显示模块 7314442.3温度传感器模块 9209352.4按键模块 1132262.5驱动模块 1183382.6蓝牙模块 13197172.7红外模块 14116592.8水位监测模块 15157552.14模块硬件集成 1639062.15本章小结 174520第三章软件设计 17281043.3 温度传感器模块软件设计 2145113.4水位检测模块软件设计 2458583.5 系统中断软件设计 26103503.5系统调试 28298863.7本章小结 307719第四章总结 3119021参考文献 32摘要随着社会的发展和人们的生活水平日益提升,越来越多的人喜欢养宠物猫。目前市场上有各种各样的猫舍,进入了不同的应用场合,如家庭、宾馆和商场等等,但现有的猫舍一般需要人为的操作,比如温度的检测、喂食以及防丢等,给人们带来了很大的不便。通过对此现象进行调研发现,猫舍中的温度,清洁度有很大关系。因此,设计一套智能猫舍系统是非常必要的。本文设计了一套智能猫舍系统。选用STC单片机为主控芯片,使用温度传感器、红外传感器、水位传感器实时采集猫舍内环境参数。由单片机处理后,实现温度控制、温度检测、进出检测、紫外线灯光、APP显示、喂食等。采集到的数据,通过蓝牙模块传输到手机界面,方便用户进行远程控制与数据查看。在实际应用中获得了良好的实用效果。关键字:单片机;传感器;蓝牙;猫舍;智能系统第一章绪论1.1系统背景随着社会的不断进步,科学技术的飞速发展,人们的生活水平有了很大的提高,人们也开始喜爱饲养宠物,如:猫。然而,人们因为各种各样的原因,有的时候在外不能照顾到家里的猫,出门在外担心猫咪的喂食问题。因为对猫咪的喜爱,人们也会去猫咖一类的地方和猫玩耍,放松自己,猫咖里有很多的猫,作为店主需要对猫进行统一的管理,全靠人力是比较费劲的,而且很难做到全面。此外城市里有很多的流浪猫,它们四处流浪,生活环境恶劣,到了晚上就会到处翻垃圾桶找东西吃,这样不仅会对猫的身体健康造成伤害,也不利于社区的环境管理。从目前的市场来看,现在并没有一套具有多功能、自动化的猫舍产品,目前市场上猫舍都是简单的木制结构,装有毛毡布、猫爬架以提供猫的睡眠和娱乐需求,但是其缺少了自动投喂的功能,故本设计一种智能猫舍用自动投喂系统测试装置及方法,以解决上述问题。1.2国内外研究现状目前,猫和狗在宠物类别中仍然占据主导地位。《2019年中国宠物行业白皮书》数据显示,分别有43.1%和54.4%的饲养者将猫和狗作为宠物,而水族类、爬行类、啮齿及其他类的宠物主人占比也分别达到24.4%、13.2%和20.1%。由此可见,饲养者的宠物选择和偏好更加多样化。我们都知道它们也像人一样,会出现发烧、感冒、消化不良、过敏、呕吐等等问题的,而且通常它们生病或者不舒服的时候,往往都会找一个自己认为比较安静或者安全的地方,类似于沙发底下或者死角里躲起来,这个时候我们往往都没办法及时的发现它们的异常,或者及时观测它们的病情,这时候如果有了猫笼就不一样了,镂空的设计使我们的观测更加方便。同时有一个猫笼,也会为疾病的治疗提供更多的方便。而这里的疾病主要指的是猫藓,因为这是一种需要多晒太阳才能治好的疾病,但是很少有猫能够一直乖乖在哪里一动不动,所以猫笼能够限制它们的活动,使病情能够快速好转。同时,每天往它们的饮用水中往滴两滴维生素B也能够有效缓解这种疾病。而猫笼也能够改变它们的许多坏习惯,比如说乱撒尿的问题。如果你家的猫咪有这种问题,那么你就要为它准备一个猫笼了,因为这样可以阻止它随地大小便,笼子里的猫砂就是它唯一的选择了。只需要在笼中养上半个月,那么这个问题就能够迎刃而解了。同时猫笼的存在也能缓解一些客人的尴尬或者恐惧,因为有人喜欢自然就有人害怕,同样也有一些人会对猫咪的毛过敏,一旦他们来到家里做客,就把猫咪暂时先放进笼子里,等到客人走后再放出来,这样一来也不用担心会出现什么尴尬的局面了。这第五点吗,就是笼子还可以用来对新猫进行隔离。当家里出现新的成员的时候,为了避免疾病的感染,或者出现打架事件,所以就需要先将它们隔离起来,同时猫笼也比较省地方,对于住房面积比较小的家庭来说,也是个好法子。这猫笼的最后一个作用是对于哺乳期的母猫来说的。虽然现在越来越多的人都选择了给自己家的小宝贝做了绝育,但是也不排除仍有一些人会选择让它们进行生育,而此时笼子的重要性就显现出来了。因为会有一些猫妈妈不喜欢看护、喂养孩子,经常想溜出去玩,久而久之孩子就会因为奶水不足而出现问题,所以笼子的出现就会很好的缓解这个问题。同时笼子的出现也能给它们提供一个安全、稳定的居住场所。1.3研究的目的及意义目的智能猫舍系统是在单片机的基础上,结合传感器技术,设计并实现智能控制的集成电路,集多种功能于一体。将喂食、温控、消毒结合为一体,解放人们的双手,并且可在外出时放心的将宠物留在家中,减少后顾之忧,侧面提升了人们的工作效率,达到猫咪生活环境合适与否了然于胸的目的。意义与传统猫舍相比,智能猫舍系统可以避免以下问题:①避免外出喂食问题:很多人们养猫并不会整日在家,有时也会需要长时间在外,食物放少了担心猫挨饿,多了又担心猫撑着,之后的日子挨饿。智能猫舍定量投喂,精准把控。②避免猫舍卫生问题:猫咪在舍内排泄后,有时主人不能及时清理,易让猫咪患病。智能猫舍可以检测猫是否排泄以提醒主人及时清理。并在猫咪出门时开启紫外线灯光照射杀菌。③避免猫舍温度不适问题:猫喜欢的生活温度在17~23℃,猫舍可以将温度控制在这之间。1.4本章小结本章根据现实生活中养猫的一些问题,并根据数据确定智能猫舍系统的可行性。简单描写智能猫舍系统的目的及意义。第二章硬件设计本章内容是介绍智能猫舍控制的硬件结构和设计,主要包括以下设计:单片机电路模块、按键模块、显示模块、温度控制模块、蓝牙模块、电机驱动模块、水位监测模块等。下文中详细的阐述了各电路设计中芯片的选型要求,并根据其内部组成、性能参数和功能特点等设计出了具体的硬件电路。在综合各个电路的元件性能的前提下,保证所设计的各个电路之间可以协调工作,在主系统的控制和调试下可以达到方便快捷的效果,实现硬件部分的高效执行性和系统的自动化控制。2.1主控模块硬件设计控制系统以STC12C5A60S2单片机为控制核心,结合传感器技术,集多种控制功能于一体,包括检测温度、喂食驱动、风扇驱动、温度显示、紫外线驱动等,可进行手动自动控制设置,还可以通过APP实现对猫舍的远程控制和管理。整个系统分为两个部分:第一部分是以STC12C5A60S2为核心的控制部分,实现对各种控制参数的设置、存储、和处理。第二部分是以LCD1602为核心的显示部分,通过单片对各种传感器的数据进行显示,让人可以实时看到系统的状态。如下图2-1所示:STC12C5A60S2单片机STC12C5A60S2单片机LCD显示模块按键模块蓝牙模块温控模块紫外线灯光模块水位传感器模块红外感应模块
图2-1系统整体原理框图本套系统采用的单片机控制芯片是宏晶科技的STC12C5A60S2,如图2-2所示。该单片机为单时钟/机器周期型单片机,在相同的晶振下工作速度可超过普通51单片机的8倍以上,抗干扰能力强。图2-2STC12C5A60S2单片机单片机加上适当的外围器件和应用程序,构成的应用系统称为最小系统。“单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.对51系列单片机来说,最小系统一般应该包括:单片机、电源、晶振电路、复位电路。1、单片机89C51单片机一片2、电源5V直流电源1个3、晶振电路包括12MHz晶振1只、30pF瓷片电2只。如图2-3图2-3STC12C5A60S2最小系统电路图2.2显示模块采用LCD1602显示器作为显示模块,LCD1602是一种工业字符型液晶显示器,能够同时显示32个字符。LCD1602液晶显示原理是利用液晶的物理特性,通过输入电压对其显示区域进行控制,即可以显示出图形、文字、数字。虽然LCD1602需要的IO口较多,但是在本设计中AT89C52的IO足够支持LCD1602的使用,而且调试比较方便。如下图2-4所示:所以本设计采用LCD1602显示屏作为显示模块。图2-4LCD1206显示模块1602LCD引脚说明如表2-5所示。表2-51602LCD引脚说明序号名称说明1VSS电源地2VDD接5V电源正极3V0V0为屏幕对比度调整端,接地电源时对比度最高,接电源正极时对比度最弱4RS高电平1时选择数据寄存器、低电平0时选择指令寄存器5RW高电平1时进行读操作,低电平0时进行写操作6EN使能端7D0-D78位双向数据端8A背光灯电源正极9K背光灯电源负极 它的读写操作、屏幕和光标的操作都是通过指令编程来实现的(说明:1为高电平,0为低电平)。 指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H 。 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 。S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效 。 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示。 C:控制光标的开与关,高电平表示有光标,低电平表示无光标。 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁 。 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标 。 指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线。N:低电平时为单行显示,高电平时双行显示。 F:低电平时显示5X7的点阵字符,高电平时显示5x10的点阵字符(有些模块是 DL:高电平时为8位总线,低电平时为4位总线)。 指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置 。 指令9:读出忙信号和光标地址。 BF为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙,模块就能接收相应的命令或者数据。 指令10:写数据 。 指令11:读数据 。下图2-6为LCD1602电路图。图2-6:LCD1602电路2.3温度传感器模块在设计温度控制模块过程中,选用DALLAS公司生产的芯片DS18B20作为核心芯片,它是一种一线式数字温度传感器,主要由以下四部分组成:温度传感器、配置寄存器、64位ROM以及非挥发的温度报警触发器.其温度的测量范围是-55~+125摄氏度,有3个引脚T0-92,是小体积的的封装形式,其温度的测量精确程度可以达到0.0625摄氏度,并且有9-12位的A/D转换精度,还可以将测量到的温度扩展为16位数字量,并通过串行的方式输出。其工作电源有两种方式,一是可以在远端直接引入,二是可以通过寄生电源产生。如图2-7。图2-7温度传感器DS18B20数字温度传感器模块的各引脚说明如表2-8所示。表2-8DS18B20数字温度传感器引脚说明序号名称说明1VDD接5V电源正极2DQ数据输出,1-Wire漏极开路接口引脚3GND地DS18B20传感器是用来测量温度数值,器件中间的管脚是输出管脚,两端的引脚分别是GND和VCC引脚。DS18B20温度传感器的标准电路如下图2-9所示:图2-9DS18B20电路图2.4按键模块采用4个按键作为按键模块。按键主要为切换为手动时根据各个传感器采集到的数据进行手动控制,采用10K的上拉电阻以及100NF的消抖电容来组成按键模块。如图2-10所示:图2-10按键按键模块电路图如图2-11所示:图2-11按键模块电路图2.5驱动模块在选择电机驱动方案时,我们选择了L9110S电机驱动这个方案。使用L9110S电机驱动模块,该模块的驱动电流大,可以通过IO口的配置来实现电机的正反转,使用方法简单而且价格低廉,性价比极高。如图2-13所示:图2-13驱动模块本套系统采用直流电机驱动L9110模块,来控制电机。该模块的各引脚说明,如表2-14所示。表2-14直流电机驱动L9110模块引脚说明序号名称说明1VCC外接2.5-12V电压2GND外接GND3A-1A外接单片机IO口4A-1B外接单片机IO口5B-1A外接单片机IO口6B-1B外接单片机IO口该驱动模块的供电电压为2.5V-12V,可以驱动电压在2.5V-12V,最大工作电流为0.8A的电机,市面上的大部分电机基本都处于这个区域之内。模块输入部分引出了6个端口作为输入端,分别是VCC、GND、IA1、IB1、IA2、IB2。端口中VCC接2.5V-12V电源输出,GND接地,VCC与GND负责对驱动模块供电,尤其要注意驱动电路与单片机要共地。IA1,IB1,IA2,IB2则与单片机的PWM输出口相接,通过对单片机的IO口配置来改变电机的转动速度以及电机的旋转。而输出部分引出的4个排针则为输出端。输出端的4个口接电机分两组是没有方向的。如果接直流电机的话一个驱动模块可以接4个直流电机。电机驱动电路如下图2-15所示:图2-15:温控模块驱动电路2.6蓝牙模块系统使用HC-05模块作为通讯电路,蓝牙技术,一般可采用电脑或手机来控制。它较红外技术优势在于传输距离较远、传输速度快、安全性高等。但是作为当今互联网发展高速的21世纪,要想远距离跨地域控制就难以实现了。如图2-16所示:图2-16蓝牙模块该模块使用HC-05模块作为通讯电路,HC-05蓝牙模块的特点: (1) 采用CSR主流蓝牙芯片,蓝牙V2.0协议标准; (2) 输入电压:3.6V--6V,禁止超过7V; (3) 波特率为1200,2400,4800,9600,19200,38400,57600,115200 用户可设置; (4) 带连接状态指示灯,LED快闪表示没有蓝牙连接;LED慢闪表示进入 AT命令模式; (5) 板载3.3V稳压芯片,输入电压直流3.6V-6V;未配对时,电流约 30mA(因LED灯闪烁,电流处于变化状态);配对成功后,电流大约10mA。 (6) 用于GPS导航系统,水电煤气抄表系统,工业现场采控系统; (7) 可以与蓝牙笔记本电脑、电脑加蓝牙适配器等设备进行无缝连接。 (8) HC-05 嵌入式蓝牙串口通讯模块(以下简称模块)具有两种工作模 式:命令响应工作模式和自动连接工作模式,在自动连接工作模式下模块又可分为主(Master) 、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;当模块处于命令响应工作模式时能执行下述所有 AT 命令,用户可向模块发送各种 AT 指令,为模块设定控制参数或发布控制命令。通过控制模块外部引脚(PIO11)输入电平,可以实现模块工作状态的动态转换。电路图如图2-17所示:图2-17:蓝牙模块电路2.7红外模块在红外感应模块的选择时,我们了解到E18-DNK这个模块的功能完全满足我们系统的要求,此模块通过感应接收到的红外光,而且反应灵敏,感应范围大,价格低廉,又可以直接和MCU相连,所以我们使用这个模块提供红外感应数据。E18-D80NK-N是E18-D80NK的升级版。改动部分主要是内部电路板和外部连线。传感器外部接线,在末端增加了杜邦头,方便用户使用。 E18-D80NK-N这是一种集发射与接收于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出。有效的避免了可见光的干扰。透镜的使用,也使得这款传感器最远可以检测80厘米距离的问题(由于红外光的特性,不同颜色的物体,能探测的最大距离也有不同;白色物体最远,黑色物体最近)。检测障碍物的距离可以根据要求通过尾部的电位器旋钮进行调节。如图2-18所示: 图2-18红外传感器该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。下图2-19为系统红外传感器电路图。图2-19光敏电阻模块电路图2.8水位监测模块本套系统采用水位传感器进行液体高度监测,如图2-20所示。当水位超过或低于所设置的范围时,自动运行执行模块进行水位范围调节。图2-20水位传感器水位传感器模块的各引脚说明如表2-21所示。表2-21水位传感器模块引脚说明序号名称说明1+接电源正极5V2S数据输出3-地水位传感器模块的S口与STC单片机IO口直接通信,电路图如图2-22所示。图2-22水位传感器连接电路图2.14模块硬件集成通过上述对智能猫舍系统系统模块组成的硬件部分详细分析,搭建出智能猫舍系统的硬件环境,如图2-23所示。图2-23智能猫舍系统实物图2.15本章小结在这一章中具体对智能猫舍系统的硬件部分进行了具体探究,了解了猫舍上为什么使用STC12C5A60S2单片机而不用其他单片机,随后有选择性的购买硬件,搭建好硬件环境。在下一章中会具体来设计智能猫舍系统的软件部分。第三章软件设计软件设计是本次论文的中智能猫舍系统主要内容和重点,主要是根据设计系统的功能要求,在已选好的系统硬件的基础上进行系统的软件设计。 整个单片机系统的程序共分为三模块,即主程序模块、驱动模块、检测模块和显示模块。每个模块都有一定的功能和作用,其中一些还包括有一些子程序,它们既相互独立有相互联系,低级模块可以被高级模块调用,共同实现协调统一。 3.1 系统软件设计本设计是以STC12C5A60S2为单片机作为主要的控制核心,利用温度传感器、水位传感器、红外传感器实时监测智能猫舍环境参数,并显示在LCD屏幕上,而当温度、水位、红外超过或低于所设定的范围时,将启动各对应功能,自动调节环境参数至设定的范围内,从而实现对智能猫舍环境的自动监测及控制。其系统软件主要流程图如图3-1所示。图3-1智能猫舍系统主要软件流程图 3.2显示模块软件设计系统采用STC12C5A60S2单片机来控制LCD的显示,显示模块的主要程序流程图如图3-2所示。图3-2显示模块的主要程序流程图显示模块功能运行主要代码如下:/*全局运行参数定义*/#defineOSC_FREQ(11059200)//振荡器频率值,单位Hz#defineSYS_MCLK(OSC_FREQ/12)//系统主时钟频率,即振荡器频率÷12#defineLCD1602_DBP2//1602液晶数据端口sbitLCD1602_RS=P0^5;//1602液晶指令/数据选择引脚sbitLCD1602_RW=P0^6;//1602液晶读写引脚sbitLCD1602_EN=P0^7;//1602液晶使能引脚sbitIO_DS18B20=P3^7;//DS18B20通信引脚sbitDHT11=P3^7;//dht11data端接单片机的P1^0口//sbitbeezer=P3^6;sbitHW=P3^4;sbitDS1302_CK=P1^5;sbitDS1302_IO=P1^4;sbitDS1302_CE=P1^3;sbitJDQ=P1^0;sbitled0=P1^0;sbitDEG=P1^1;sbitled2=P1^2;sbitled3=P1^3;sbitled4=P1^4;sbitled5=P1^5;sbitled6=P1^6;sbitFS=P1^7;sbit SDA=P1^6;//IIC数据引脚定义sbit SCL=P1^7;//IIC时钟引脚定义sbitMOTO1=P3^6;//I2C总线时钟引脚sbitMOTO2=P3^3;//I2C总线数据引脚sbitSB=P3^3;//蜂鸣器控制引脚sbitJIARE=P3^7;//蜂鸣器控制引脚sbitBUZZER=P3^6;//蜂鸣器控制引脚//sbitIO_DS18B20=P3^2;//DS18B20通信引脚sbitIR_INPUT=P3^2;//红外接收引脚//按键定义sbitkey1=P0^4;sbitkey2=P0^3;sbitkey3=P0^2;sbitkey4=P0^1;typedef unsignedchar BYTE;typedef unsignedint WORD;typedefunsignedcharBOOL;typedefunsignedcharINT8U;typedefsignedcharINT8S;typedefunsignedintINT16U;typedefsignedintINT16S;typedefunsignedlongINT32U;typedefsignedlongINT32S;#endif3.3 温度传感器模块软件设计在利用芯片DS18B20读取温度时,首先要取得到芯片DS18B20检测到的温度值,该温度值是以BC码的形式来显示,然后再以十进制的形式输出,而且输出的温度值会是实际检测到的温度值的十倍,并且会含有一位不显示的小数。下图3-3为温度读取子程序图。开始开始指令读取数据转换得到温度结束图3-3:温度子程序图系统温度采集功能运行主要代码如下:/*启动一次18B20温度转换,返回值-表示是否启动成功*/bitStart18B20(){bitack;ack=Get18B20Ack();//执行总线复位,并获取18B20应答if(ack==0)//如18B20正确应答,则启动一次转换{Write18B20(0xCC);//跳过ROM操作Write18B20(0x44);//启动一次温度转换}return~ack;//ack==0表示操作成功,所以返回值对其取反}/*读取DS18B20转换的温度值,返回值-表示是否读取成功*/3.4按键模块软件设计按键模块软件流程图如图3-4:按键软件流程图3-4按键模块功能运行主要代码如下:voideepromprogram();voidshowInit();voidShowstep(unsignedcharnum) //设置步骤步伐{ num=0;switch(step){case1:Lcd1602SetCursor(0,1); break;case2:Lcd1602SetCursor(1,1); break;case3:Lcd1602SetCursor(3,1); break;case4:Lcd1602SetCursor(4,1); break;default:break;} if(step==0) { Lcd1602WriteCmd(0x0C);//光标关闭 }else { Lcd1602WriteCmd(0x0F); }}voidInputSetStep() //key1动作{ step++; if(step>1) { step=0; } Showstep(0); }unsignedcharNumUpRegion()//上升下降数字显示区域限制{ unsignedintdate=0; switch(step) { case1:setValue1+=1; if(setValue1>=99) { setValue1=99; date=setValue1; break; default:break; } } returndate;}unsignedcharNumDownRegion()//数字下降数字显示区域限制{ unsignedchardate=0; switch(step) { case1:setValue1-=1; if(setValue1<=1) { setValue1=1; } date=setValue1; break; default:break; } returndate;}voidNumberUpAcktion(){ unsignedchardat; dat=NumUpRegion(); showInit(); Showstep(0);}voidNumberDownAcktion(){ unsignedchardat; dat=NumDownRegion(); showInit(); Showstep(0);}voiddelay_Nms(unsignedintNcount)//??-0.018084490741us{unsignedchara,b; Ncount=Ncount*2; while(Ncount--) { for(b=4;b>0;b--) for(a=79;a>0;a--); }}externunsignedcharcom;bitflagmotosta=0,flagmoshi=0;/*按键动作函数,根据键码执行相应的操作,keycode-按键键码*/voidKeyAction(unsignedcharkeycode){if(keycode==0x25||com=='1')//向左键,向左切换设置位{ InputSetStep(); showInit(); Showstep(1); if(step==0) eepromprogram();}3.4水位检测模块软件设计水位及浊度数据采集均是通过A/D转换模块实现的,将电压信号转换成模拟信号给STC单片机进行处理。A/D转换模块流程图如图3-5所示。图3-5A/D转换模块流程图系统过A/D转换模块功能运行主要代码如下:voidInitADC() { P1ASF=0x03; ADC_RES=0x00; ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START; EA=1; }voidADConvert(unsignedcharch) {unsignedintcount=0,temp=0; while(count<11) { while(!(ADC_CONTR&ADC_FLAG)); ADC_CONTR&=~ADC_FLAG; temp=ADC_RES; temp<<=2; temp|=ADC_RESL; ADCValue[count]=temp; temp=0; ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|ch; ADC_RES=0; ADC_RESL=0; count++; } }unsignedintDigitalFiltering(unsignedcharch) {unsignedinti,j,voltageADC=0,temp=0; ADConvert(ch); for(i=0;i<10;i++) {for(j=0;j<(10-i);j++){if(ADCValue[j]>ADCValue[j+1]){temp=ADCValue[j];ADCValue[j]=ADCValue[j+1];ADCValue[j+1]=temp;}}}for(i=2;i<8;i++) {voltageADC+=ADCValue[i]; } returnADCValue[5]; }3.5 系统中断软件设计 系统中断子程序主要为定时器中断函数以及串口中断函数,其中定时器中断函数主要是制定执行机构检测频率,每到时间就会触发中断检测数据是否达标,不达标则触发相应执行机构,而串口中断则主要是接收到信息赋予一个标志位使串口完成数据接收。如图3-6所示:开始开始中断配置中断检测中断执行退出中断图3-6:串口中断程序系统中断软件设计运行主要代码如下://voidUart2Send(chari)//{// unsignedchartemp=0;// // IE2&=(~ES2);//关闭串口2中断//ES2=0;// S2CON&=(~S2TI);//S2TI=0;// S2BUF=i;//装入数据// do// {// temp=S2CON;// temp=temp&0x02;//temp=S2TI;// }while(temp==0);//判断是否发送完毕//// S2CON&=(~S2TI);//S2TI=0;// IE2|=ES2;//ES2=1;// //}//voidUart2Sends(char*data_at){ IE2&=(~ES2);//关闭串口2中断//ES2=0; S2CON&=(~S2TI);//S2TI=0; while(*data_at!='\0') //判断一串数据是否结束 { S2BUF=*(data_at++);//装入数据 while((S2CON&S2TI)==0); S2CON&=(~S2TI);//S2TI=0; } S2CON&=(~S2TI);//S2TI=0; IE2|=ES2;//ES2=1; }unsignedcharcom=0;voidInterruptUart2()interrupt8{ IE2&=(~ES2);//关闭串口2中断//ES2=0;if(S2CON&S2RI) { S2CON&=(~S2RI); //S2RI=0; com=S2BUF; } IE2|=ES2; if(S2CON&S2TI) { S2CON&=(~S2TI); //S2TI=0; }}3.5系统调试编写好程序后,给单片机烧录程序,连接各硬件模块,开始上电,进行系统调试,智能猫舍控制系统硬件模块连接图如图3-7所示。图3-7智能猫舍控制系统硬件模块连线图上电后,即可看到LCD显示屏实时显示温度、水位。打开手机串口调试软件,连接智能猫舍控制系统底层的蓝牙模块,便可以通过手机看到此时的智能猫舍环境下的温度、水温数据,也可通过手机按钮控制底层的直流电机等执行部件。图3-8为手机串口调试软件界面。图3-8手机串口调试软件界面3.7本章小结在本章软件设计中,主要详细介绍了智能猫舍控制系统系统软件设计的主要思路、主要流程及模块设计流程,还介绍了系统调试及运行结果等。第四章总结经过几个月的不断学习和努力,在曹振华老师的谆谆教导下,在其他老师及同学们的热心帮助与指导下,智能猫舍控制系统即将结束,基本完成了老师所规定的各项工作任务。本论文介绍了选用STC单片机作为主控芯片,用温度传感器、红外传感器实时控制猫舍内的环境。由单片机处理后,自动控制猫舍内温度及杀菌,采集到的感知数据,通过蓝牙模块传输到手机界面上。在硬件调试和软件代码编写调试中遇到了许许多多的问题,如红外传感器与电机喂食的调试,就让我思考了许久,但在曹老师的耐心指导下,解决了该蓝牙与手机通信问题。通过做本设计,我了解并掌握了传感器的基本理论知识,更深入的掌握单片机的开发应用和蓝牙无线通信控制等知识。为以后从事物联网应用技术打下了良好的基础,并在这种能力上得到了比较充分的锻炼。参考文献 [1] 杨彦伟,苏卫红,张灏璠.基于STC889C51的智能鱼缸控制系统[J]. 电子技术与软件工程. 2015(22) [2]王天凤.
基于单片机的电子密码锁教学应用[J].电子技术.
2018(03)[3]徐兴,傅凯.基于单片机的安全守护预警器设计[J].电子制作.
2020(01)[4]黎佩伟.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 面向国际学生的校园AI失物招领多语言支持体系构建课题报告教学研究课题报告
- 中职语文教学中情境教学法的课题报告教学研究课题报告
- 初中化学微型实验装置绿色化改造与实际应用课题报告教学研究课题报告
- 2026秋招:江苏港口集团试题及答案
- 做账实操-卫星互联网公司会计账务处理分录
- 生物信息项目资金申请指南
- 小学数学六年级《倒数的认识》教学设计
- 高中语文选修《个人信件写作》教学设计
- 2026年量子计算机药物研发报告及未来五至十年新药开发技术报告
- 小学语文教育空间重构:人工智能辅助下的多模态互动教学模式研究教学研究课题报告
- 2025年国资委主任年终述职报告
- 工程顾问协议书
- 大学教学督导与课堂质量监控工作心得体会(3篇)
- 广东省汕头市金平区2024-2025学年九年级上学期期末化学试卷(含答案)
- 项目专家评审意见书标准模板
- 2025年高中计算机操作试题题库及答案
- 2026年山西信息职业技术学院单招职业技能测试题库及参考答案详解1套
- 收购软件的合同范本
- 麻醉科麻醉后恶心呕吐预防指南
- 04 《生于忧患死于安乐》对比阅读(解析版)
- 外贸三方协议出口合同
评论
0/150
提交评论