基于单片机智能药盒提醒控制系统设计

利用STC90C516单片机、8个按键、LCD1602液晶显示屏、蜂鸣器、LED发光二极管等设计一个家庭用智能药盒。该系统硬件部分由单片机最小系统、按键电路、液晶显示电路、声光报警电路组成,系统能完成时间的实时显示、每天四次定时、每次用药四种药用量提醒的功能。

系统基本功能如下:

(1)显示

采用LCD1602显示实时时间、用药量、 调设信息显示等。

(2)定时时间与用药量的设定

系统须实现每天四次时间的定时,每次用药时须对四种药做出用量的提醒,通过6个按键完成,1个功能键,1个调节键,4次定时对应的4个定时按键。

(3)实时时间调节

实时时间通过另外2个按键进行调节,其中之一为功能键,另一个为调节键。

(4)报警功能

实时时钟运行到定时时间时,LCD1602显示此次用药量,蜂鸣器响起,LED闪烁,提醒用药时间到。

#include <reg52.h>
#include "12864.h"
#include "delay.h"
#include "ds1302.h"
#include "typedef.h"
#include "key.h"
#include "dht11.h"
#include "24c02.h"
#include "mp3_uart.h"
 
sbit GLED=P1^1;
sbit RLED=P1^0;
sbit BUZZER=P2^0;
 
uchar SetFlag = 0;   //设置标志
 
uchar ClockTime[15][3]={0};  //吃药定时时间
uchar ClockNum[15]={2,2,2,2,2,2,2,2,2,2,2};	     //吃药数量数组
uchar ClockEN[15]={0};    	 //吃药开关
uchar Name[15]={0,1,2,1,0,2};
 
uchar Current=0;             //当前编号
 
void TimerInit(void);
void RTC_Display(void);  //
void HT_Display(uchar temp,uchar humi);
void GetTempHumi(void);
void SetRTC(void); 
void ClockControl(void);
void SetClock(uchar Add,uchar *Clock);
void ReadClock(void);
void ClockAlarm(void);
void TimerInit(void);
void UartInit(void);		//9600bps@11.0592MHz
void DisplayName(uchar x,uchar y,uchar num);
void DisplayMsg(void); //
void DataSave(uchar num);   //吃药数据保存

代码过长省略....