✨哈喽大家好,这里是@每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~
🐱🐉这是51单片机毕业设计100篇系列的第30篇:基于51单片机的宠物自动投喂
💻项目相关说明:
- 代码量:714行
- 报告字数:5193字
- 含代码、仿真、原理图、报告、器件清单、常见问题(实物、lw可另外定制)
🎈项目分享:见文末!
1、主要功能
可实现功能:
1、LCD1602实时显示北京时间和温湿度
2、温湿度传感器DHT11采集环境温湿度
3、时钟模块DS1302采集北京时间
4、蓝牙可远程控制投喂器开关
5、按键可设置投喂时间,一天里有三个时间进行自动投喂,投喂5s后自动关闭
6、按键也可以手动投喂
7、步进电机模拟投喂器,正转180°打开,反转180°关闭
2、仿真
投喂时间可设置:
3、代码
void main(void)
{
uchar i=0;
TMOD|=0x20; //TMOD=0010 0000,设置定时器T1工作于方式二
SCON=0x50; //SCON: 模式1, 8-bit UART, 使能接收
PCON=0x00; //PCON=0000 0000,晶振为11.0592
TH1=0xf3; //设置定时器T1的初值,波特率为9600
TL1=0xf3; //定时器T1自动填充的值,波特率为9600
REN =1; //允许串口接收数据位
IE =0x90; //允许总中断,允许串口中断,禁止其他中断
TR1=1; //启动定时器T1
//ES= 1; //打开串口中断
L1602_init();//LCD初始化
Ds1302Init();//时钟初始化
Ds1302ReadTime();
TIME[0]&=0X7F;
while(1)
{
Ds1302ReadTime(); //读取时间
display_time(); //显示时间
DHT11_receive(); //读取温湿度
display_th(); //显示温湿度
if(key_scan() !=0) //如果按键按下
{
KEY_Control();
}
}
}