当前位置:首页 >> 硬件技术 >> 【Proteus仿真】【Arduino单片机】视力保护仪,ios 5

【Proteus仿真】【Arduino单片机】视力保护仪,ios 5

cpugpu芯片开发光刻机 硬件技术 2
文件名:【Proteus仿真】【Arduino单片机】视力保护仪,ios 5 【Proteus仿真】【Arduino单片机】视力保护仪

文章目录 一、功能简介二、软件设计三、实验现象联系作者


一、功能简介

本项目使用Proteus8仿真Arduino单片机控制器,使LCD1602液晶,DS18B20温度传感器、按键、蜂鸣器、继电器开关、HC05蓝牙模块等。 主要功能: 系统运行后,LCD1602显示温度、温度阈值,定时时间及状态信息等;如果温度高于阈值,则开关关闭,且蜂鸣器报警。 如果温度低于阈值,当定时器状态开启,定时结束,开关关闭,发出提示音。正常模式下,可通过K1键对开关的开和关控制。 通过K3键进入阈值设置模式,可通过K3选择需修改的数据位置,K1和K2调节,当需要开启定时器时,需将状态由N设置为Y,K4键确定并返回正常模式。可通过蓝牙发送字符’O’远程打开开关,发送字符’C’关闭。


二、软件设计 /*作者:嗨小易(QQVIP群2:570487280)*///系统数据显示void sys_data_show(void){while(1){//距离显示lcd1602_show_nums(2,0,sys_ctrl.dis,3,0);//光线显示lcd1602_show_nums(2,1,sys_ctrl.light,2,0);//有无开启计时状态显示if(sys_ctrl.timeflag==1)lcd1602_show_string(15,0,"Y");else lcd1602_show_string(15,0,"N");//时间显示lcd1602_show_nums(11,1,sys_ctrl.time[0],2,0x80);lcd1602_show_nums(14,1,sys_ctrl.time[1],2,0x80);//距离阈值显示lcd1602_show_nums(8,0,sys_ctrl.disl,3,0);//光线阈值显示lcd1602_show_nums(6,1,sys_ctrl.lightl,2,0);//设置参数闪烁switch(sys_ctrl.mode){case 1://距离lcd1602_show_string(8,0," ");delay_ms(50);lcd1602_show_nums(8,0,sys_ctrl.disl,3,0);break;case 2://光线lcd1602_show_string(6,1," ");delay_ms(50);lcd1602_show_nums(6,1,sys_ctrl.lightl,2,0);break;}break;}}//系统数据设置void sys_data_set(void){u8 key=0;key=key_scan(0);//设置if(key==KEY3_PRESS){sys_ctrl.mode++;if(sys_ctrl.mode>2)sys_ctrl.mode=1;}//阈值设置模式if(sys_ctrl.mode!=0){//加if(key==KEY1_PRESS){switch(sys_ctrl.mode){case 1://距离sys_ctrl.disl++;if(sys_ctrl.disl>500)sys_ctrl.disl=0;break;case 2://光线sys_ctrl.lightl++;if(sys_ctrl.lightl>99)sys_ctrl.lightl=0;break;}}//减else if(key==KEY2_PRESS){switch(sys_ctrl.mode){case 1://距离sys_ctrl.disl--;if(sys_ctrl.disl<0)sys_ctrl.disl=500;break;case 2://光线sys_ctrl.lightl--;if(sys_ctrl.lightl<0)sys_ctrl.lightl=99;break;}}//确定else if(key==KEY4_PRESS){sys_ctrl.mode=0;}}//正常模式else{//计时器开关if(key==KEY1_PRESS){sys_ctrl.timeflag=!sys_ctrl.timeflag;if(sys_ctrl.timeflag==1){TR1=1;//打开定时器}else{TR1=0;//关闭定时器sys_ctrl.time[0]=0;sys_ctrl.time[1]=0;}}}}//系统功能控制void sys_fun_ctrl(void){//正常模式if(sys_ctrl.mode==0){//如果光线强度低于阈值,指示灯亮,蜂鸣器报警if(sys_ctrl.light<sys_ctrl.lightl){LED_LIGHT=0;beep_alarm(1,1000);}//如果光线强度正常,指示灯灭,报警取消else{LED_LIGHT=1;}//如果检测距离低于阈值,指示灯亮,蜂鸣器报警if(sys_ctrl.dis<sys_ctrl.disl){LED_DIS=0;beep_alarm(1,1000);}//如果检测距离正常,指示灯灭,报警取消else{LED_DIS=1;}//如果开启计时if(sys_ctrl.timeflag){//如果计时到达60分钟,指示灯亮,蜂鸣器报警if(sys_ctrl.time[0]==60){LED_TIME=0;beep_alarm(1,1000);}}}}
三、实验现象

B站演示视频:https://space.bilibili.com/444388619

联系作者

视频地址:https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

协助本站SEO优化一下,谢谢!
关键词不能为空
同类推荐
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接