咸阳学校网站建设费用,广州市住宅建设发展有限公司网站,网站备案和服务器备案,互动广告平台文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真51单片机控制器#xff0c;使用OLED液晶、按键、蜂鸣器、DS18B20温度传感器、人体红外传感器、语音识别模块、继电器、风扇、LED等。 主要功能#xff1a; 系统运行后#xff0… 文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真51单片机控制器使用OLED液晶、按键、蜂鸣器、DS18B20温度传感器、人体红外传感器、语音识别模块、继电器、风扇、LED等。 主要功能 系统运行后OLED显示动画效果一段时间后静止。当到达指定时间时开启闹钟系统需感应到有人后此时可通过K4键或语音关闭闹铃。 系统感应到有人后OLED显示测量的人体体温、时间、LED和风扇的开关状态此时可通过语音开关LED和风扇可通过按键K3进入闹钟设置界面通过K3键切换不同时间位置K1和K2键加减调节设置后按下K4键保存并退出返回测温和时钟显示界面。 语音识别指令十六进制数 开灯–0X01 关灯–0X02 开风扇–0X11 关风扇–0X12 关闹铃–0X22 二、软件设计
/*
作者嗨小易QQ3443792007*///系统数据参数显示界面
void sys_parm_show(void)
{OLED_Clear();//温度OLED_ShowCHinese(0,0,0);OLED_ShowCHinese(1*16,0,1);OLED_ShowCHinese(2*16,0,5);//时间OLED_ShowCHinese(0,2,2);OLED_ShowCHinese(1*16,2,3);OLED_ShowCHinese(2*16,2,5);//灯OLED_ShowCHinese(0,4,4);OLED_ShowCHinese(1*16,4,5);OLED_ShowString(2*16,4, ,16);//风扇OLED_ShowCHinese(3*168*1,4,16);OLED_ShowCHinese(4*168*1,4,17);OLED_ShowCHinese(5*168*1,4,5);OLED_ShowString(6*168*1,4, ,16);
}//系统数据设置
void sys_data_set(void)
{u8 key0;static u8 oneflag0;//有人的时候if(sys_ctrl.window1){keykey_scan(0);//语音识别if(UART_RX_BUF[0]LED_ON_CMD)//开灯{UART_RX_BUF[0]0;LED0;sys_ctrl.led1; }else if(UART_RX_BUF[0]LED_OFF_CMD)//关灯{UART_RX_BUF[0]0;LED1;sys_ctrl.led0; }else if(UART_RX_BUF[0]MOTOR_ON_CMD)//开风扇{UART_RX_BUF[0]0;MOTOR0;sys_ctrl.motor1; }else if(UART_RX_BUF[0]MOTOR_OFF_CMD)//关风扇{UART_RX_BUF[0]0;MOTOR1;sys_ctrl.motor0;}else if(UART_RX_BUF[0]ALARM_OFF_CMD)//关闹铃{UART_RX_BUF[0]0;sys_ctrl.alarm0;OLED_ShowString(0,6, ,16);} } //模式设置if(keyKEY3_PRESS){sys_ctrl.mode;if(sys_ctrl.mode9)sys_ctrl.mode1; if(oneflag0)//时间设置界面仅显示1次{oneflag1;sys_time_set_show();//系统时间设置界面显示 }}//在设置模式下加else if(keyKEY1_PRESS){switch(sys_ctrl.mode){case 1://吃药-时sys_ctrl.stime[0][0];if(sys_ctrl.stime[0][0]23)sys_ctrl.stime[0][0]0; break;case 2://吃药-分sys_ctrl.stime[0][1];if(sys_ctrl.stime[0][1]59)sys_ctrl.stime[0][1]0; break;case 3://吃药-秒sys_ctrl.stime[0][2];if(sys_ctrl.stime[0][2]59)sys_ctrl.stime[0][2]0; break;case 4://运动-时sys_ctrl.stime[1][0];if(sys_ctrl.stime[1][0]24)sys_ctrl.stime[1][0]0; break;case 5://运动-分sys_ctrl.stime[1][1];if(sys_ctrl.stime[1][1]59)sys_ctrl.stime[1][1]0; break;case 6://运动-秒sys_ctrl.stime[1][2];if(sys_ctrl.stime[1][2]59)sys_ctrl.stime[1][2]0; break;case 7://休息-时sys_ctrl.stime[2][0];if(sys_ctrl.stime[2][0]24)sys_ctrl.stime[2][0]0; break;case 8://休息-分sys_ctrl.stime[2][1];if(sys_ctrl.stime[2][1]59)sys_ctrl.stime[2][1]0; break;case 9://休息-秒sys_ctrl.stime[2][2];if(sys_ctrl.stime[2][2]59)sys_ctrl.stime[2][2]0; break; } }//在设置模式下减else if(keyKEY2_PRESS){switch(sys_ctrl.mode){case 1://吃药-时sys_ctrl.stime[0][0]--;if(sys_ctrl.stime[0][0]0)sys_ctrl.stime[0][0]23; break;case 2://吃药-分sys_ctrl.stime[0][1]--;if(sys_ctrl.stime[0][1]0)sys_ctrl.stime[0][1]59; break;case 3://吃药-秒sys_ctrl.stime[0][2]--;if(sys_ctrl.stime[0][2]0)sys_ctrl.stime[0][2]59; break;case 4://运动-时sys_ctrl.stime[1][0]--;if(sys_ctrl.stime[1][0]0)sys_ctrl.stime[1][0]23; break;case 5://运动-分sys_ctrl.stime[1][1]--;if(sys_ctrl.stime[1][1]0)sys_ctrl.stime[1][1]59; break;case 6://运动-秒sys_ctrl.stime[1][2]--;if(sys_ctrl.stime[1][2]0)sys_ctrl.stime[1][2]59; break;case 7://休息-时sys_ctrl.stime[2][0]--;if(sys_ctrl.stime[2][0]0)sys_ctrl.stime[2][0]23; break;case 8://休息-分sys_ctrl.stime[2][1]--;if(sys_ctrl.stime[2][1]0)sys_ctrl.stime[2][1]59; break;case 9://休息-秒sys_ctrl.stime[2][2]--;if(sys_ctrl.stime[2][2]0)sys_ctrl.stime[2][2]59; break; } }//确定else if(keyKEY4_PRESS){ if(oneflag1){sys_ctrl.mode0;oneflag0;sys_parm_show();//系统数据参数显示界面 }//闹铃if(sys_ctrl.alarm1){sys_ctrl.alarm0;OLED_ShowString(0,6, ,16); } }
}//应用控制系统
void appdemo_show(void)
{u8 i10;sys_parm_init();//系统参数初始化OLED_Init();ds18b20_init();UART_Init();//串口初始化9600UART_SendString(UART Init OK...\r\n);//读取温度数据等待稳定while(i--){sys_ctrl.tempds18b20_read_temperture()*10;delay_ms(100); }sys_open_show();//系统开机界面显示time0_init();//定时器初始化TR01;//开启定时器while(1){ sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制}
} 三、实验现象
B站演示视频https://space.bilibili.com/444388619 联系作者
视频地址https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发PCB设计视频分享技术交流。