小说网站设计模板,榆林网站开发,沈阳企业网站开发,seo搜索引擎优化方案文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真51单片机控制器#xff0c;使用LCD1602显示模块、DS18B20温度传感器、PCF8691 ADC模块、按键、LED蜂鸣器模块等。
主要功能#xff1a; 系统运行后#xff0c;LCD1602显示温度… 文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介
本项目使用Proteus8仿真51单片机控制器使用LCD1602显示模块、DS18B20温度传感器、PCF8691 ADC模块、按键、LED蜂鸣器模块等。
主要功能 系统运行后LCD1602显示温度、电压、电流值电压0-3.3V电流0-3.3A可通过按键K3进入阈值设置模式K3键用于切换选择温度阈值、电压、电流K1和K2用于调节对应阈值K4用于确定并返回主界面。当温度超限温度报警指示蜂鸣器报警当电压超限电压报警指示蜂鸣器报警当电流超限电流报警指示蜂鸣器报警 二、软件设计
/*
作者嗨小易QQ3443792007*///系统数据获取
void sys_data_get(void)
{static u8 i0;u8 temp0;while(1){//温度获取i;if(i%50)sys_ctrl.tempDS18B20_GetTemperture();//电压获取temppcf8591_read_adcvalue(0);temppcf8591_read_adcvalue(0);sys_ctrl.vol((float)temp*3.3/255)*10;//电流获取temppcf8591_read_adcvalue(1);temppcf8591_read_adcvalue(1);sys_ctrl.cur((float)temp*3.3/255)*10; break;}
}//系统数据显示
void sys_data_show(void)
{u8 buf[5];while(1){//正常模式显示if(sys_ctrl.mode0){//温度显示lcd1602_show_nums(5,0,sys_ctrl.temp,2,0);//电压显示buf[0]sys_ctrl.vol/100x30;buf[1].;buf[2]sys_ctrl.vol%100x30;buf[3]\0;lcd1602_show_string(2,1,buf);//电流显示buf[0]sys_ctrl.cur/100x30;buf[1].;buf[2]sys_ctrl.cur%100x30;buf[3]\0;lcd1602_show_string(12,1,buf); }//阈值设置显示else{//温度阈值显示lcd1602_show_nums(4,0,sys_ctrl.temph,2,0);//电压阈值显示buf[0]sys_ctrl.voll/100x30;buf[1].;buf[2]sys_ctrl.voll%100x30;buf[3]\0;lcd1602_show_string(3,1,buf);//电流阈值显示buf[0]sys_ctrl.curl/100x30;buf[1].;buf[2]sys_ctrl.curl%100x30;buf[3]\0;lcd1602_show_string(12,1,buf);//阈值设定数据位置闪烁switch(sys_ctrl.mode){case 1://温度lcd1602_show_string(4,0, );delay_ms(100);lcd1602_show_nums(4,0,sys_ctrl.temph,2,0);break;case 2://电压lcd1602_show_string(3,1, );delay_ms(100);buf[0]sys_ctrl.voll/100x30;buf[1].;buf[2]sys_ctrl.voll%100x30;buf[3]\0;lcd1602_show_string(3,1,buf);break;case 3://电流lcd1602_show_string(12,1, );delay_ms(100);buf[0]sys_ctrl.curl/100x30;buf[1].;buf[2]sys_ctrl.curl%100x30;buf[3]\0;lcd1602_show_string(12,1,buf);break; }}break; }
}//系统数据设置
void sys_data_set(void)
{u8 key0;static u8 oneflag0;keyKEY_Scan(0);//模式设置if(keyKEY3_PRESS){sys_ctrl.mode;if(sys_ctrl.mode4)sys_ctrl.mode1;if(oneflag0){oneflag1;_parm_set_show();//系统参数设置显示}}if(sys_ctrl.mode!0){//在设置模式下加if(keyKEY1_PRESS){ switch(sys_ctrl.mode){case 1://温度 sys_ctrl.temph;if(sys_ctrl.temph99)sys_ctrl.temph0;break;case 2://电压 sys_ctrl.voll;if(sys_ctrl.voll50)sys_ctrl.voll0;break;case 3://电流 sys_ctrl.curl;if(sys_ctrl.curl50)sys_ctrl.curl0;break;} }//在设置模式下减else if(keyKEY2_PRESS){switch(sys_ctrl.mode){case 1://温度 sys_ctrl.temph--;if(sys_ctrl.temph0)sys_ctrl.temph99;break;case 2://电压 sys_ctrl.voll--;if(sys_ctrl.voll0)sys_ctrl.voll50;break;case 3://电流 sys_ctrl.curl--;if(sys_ctrl.curl0)sys_ctrl.curl50;break;}}//确定else if(keyKEY4_PRESS){sys_ctrl.mode0;oneflag0;sys_open_show();//系统开机界面显示 } }
}//系统功能控制
void sys_fun_ctrl(void)
{//正常工作模式下if(sys_ctrl.mode0){//温度高于上限温度高指示蜂鸣器报警if(sys_ctrl.tempsys_ctrl.temph){LED_WDH0;beep_alarm(10,1000);}else{LED_WDH1;}//电压低于阈值电压报警指示蜂鸣器报警if(sys_ctrl.volsys_ctrl.voll){LED_DYL0;beep_alarm(10,1000); }else{LED_DYL1;}//电流低于阈值电流报警指示蜂鸣器报警if(sys_ctrl.cursys_ctrl.curl){LED_DLL0;beep_alarm(10,1000);}else{LED_DLL1; } }
} 三、实验现象
B站演示视频https://space.bilibili.com/444388619 联系作者
视频地址https://space.bilibili.com/444388619/video 专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发PCB设计视频分享技术交流。