本设计是一个宠物饲养可控温定时投喂箱,该饲养箱以STC89C51单片机为主控芯片,配合多组基础模块。我们根据所饲养宠物的需求,通过按键设定基准温度,设定投喂时间。为了更加清晰的显示效果,我们将所有需要观测的数据统一显示在0.96寸OLED显示屏上。为了保存设定的基准温度和投喂时间,我们采用AT24C02一个2K位串行CMOS E2PROM保存数据,防止掉电丢失,避免因突发情况破坏饲养箱的工作状态。
1、温度控制
依靠DS18B20温度传感器检测饲养箱内当前温度。单片机采集到当前温度后与基准温度对比,若当前温度高于基准温度,单片机驱动与风扇相连接的继电器,使风扇工作,对饲养箱进行降温处理;若当前温度低于基准温度,单片机驱动与加热器相连接的继电器,使加热器工作,对饲养箱进行加热处理。
2、定时控制
依靠DS1302时钟模块提供标准时间,保证饲养箱的时间标准与生活状态一致。单片机实时读取当前时间,若读取的当前时间与设定的投喂时间一致时,单片机驱动蜂鸣器,蜂鸣器报警,提示已到投喂时间。待投喂后,蜂鸣器恢复静息状态,等待下一次报警。
1.1.2设计原理
在保证每个部件正确供电的情况下,STC89C51单片机作为主控芯片,AT24C02数据存储器用于存储数据,DS18B20温度传感器用于测量温度,DS1302时钟模块用于规定当前时间,OLED显示屏用于显示参数,独立按键用于修改温度阈值和定时时间,两个LED分别用于照明和提示,蜂鸣器用于报警,继电器用于打开加热棒和风扇
制作出来的实物图如下:
电路原理图如下:
单片机源程序如下:
- #include "reg52.h"
- #include "config.h"
- #include "control.h"
- #include "oled.h"
- #include "Ds18b20.h"
- #include "ds1302.h"
- #include "menu.h"
- unsigned int Actural_temp = 0; //读取的实际温度 *10 3位
- unsigned char OLED_Reflash = 0; //刷新费时间,分三次刷新。
- void DelayXms(unsigned int xtime)
- {
- unsigned char i = 0;
- for(;xtime>0;xtime--)
- for(i = 110;i>0;i--);
- }
- void ALL_Init(void)
- {
- T0Init(); //定时10ms
- OLED_Init(); //初始化OLED
- OLED_Clear();
- start_window();
- DS18B20_init();
- TIME[2] = ZH_Data(1,23);
- TIME[1] = ZH_Data(1,58);
- TIME[0] = ZH_Data(1,58);
- Ds1302Init();
- SET_Init();
-
- LIGHT_LED = 1;
- FEED_BEEP = 1;
- HIGH_RELAY = 1;
- LOW_RELAY = 1;
-
- }
- void main(void)
- {
- unsigned char BeepFlag = 0;
- ALL_Init();
- DelayXms(1000);
- while(1)
- {
- KeyPorc();
- if(xDelay(TIMERINDEX1,1) == TIMEISUP)
- {
- EA = 0; //采集对时序要求严格,不允许打断
- Actural_temp = temper_change();
- Ds1302ReadTime();
- KeyRead();
- EA = 1;
- }
-
- if(xDelay(TIMERINDEX2,5) == TIMEISUP)
- {
- DataProce();
- StateReflash();
- }
-
- if(xDelay(TIMERINDEX3,10) == TIMEISUP) //100ms
- {
- OLED_Reflash++;if(OLED_Reflash > 5)OLED_Reflash = 0;
- menuEventHandle();
- }
-
- if(xDelay(TIMERINDEX4,100) == TIMEISUP) //1s
- {
-
- if(flagData.feedFlag)
- {
- BeepFlag++;
- FEED_BEEP ^= 1;
- if(BeepFlag > 6)
- {
- BeepFlag = 0;
- FEED_BEEP = 1;
- flagData.feedFlag = 0;
- }
- }
-
- }
-
- }
-
- }
复制代码
程序原理图和word文档下载:
single-chip-ke-master.7z
(1.87 MB, 下载次数: 0)
|