dw做网站设计,影视动画专业要学什么,最牛的网站建,深圳外贸公司注册系统功能:
系统可以设置充电时长#xff0c;启动充电后按设置的充电时长充电#xff0c;充电时间到后自动
停止充电#xff0c;中途检测到温度过高也会结束充电并开启风扇和蜂鸣器报警。
系统上电后#xff0c;OLED显示“欢迎使用智能充电系统请稍后”#xff0c;两秒钟…系统功能:
系统可以设置充电时长启动充电后按设置的充电时长充电充电时间到后自动
停止充电中途检测到温度过高也会结束充电并开启风扇和蜂鸣器报警。
系统上电后OLED显示“欢迎使用智能充电系统请稍后”两秒钟后进入正常
页面显示。
第一行显示设定的充电时长以分钟计
第二行显示剩余的充电时长以秒计
第三行显示设置的温度阈值
第四行显示获取到的当前温度值
短按按键B4后启动充电
短按按键B5后增加充电时长
短按按键B6后减小充电时长
短按按键B7后增加温度设定阈值
短按按键B3后减小温度设定阈值 主要功能模块原理图:
电源时钟烧录接口: 单片机和按键输入电路: 传感器采集电路: 资料获取地址 系统主要功能模块代码 /* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init */InitVar();/* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 *///在HAL库初始化串口1后调用HAL_Delay(100);SetUart1RxToInput();HAL_Delay(50);//uart1打开接收中断HAL_UART_Receive_IT(huart1, (uint8_t*)uart1RecBuff, 1);InitOled();InitOledDisp();if(InitDS18B20()0){// printf(%s, DS18B20初始化成功);//DS18B20在上电第一次读取时显示温度为85℃这是正常的。//85℃是DS18B20在上电复位后在温度寄存器内的对应数字量//这里DS18B20初始化成功后读一次值避免出现85℃DS18B20GetTemp_SkipRom();}/* USER CODE END 2 */
系统控制功能
//系统信息更新void SystemControl(void){static uint8_t updateCnt 0;updateCnt; if(updateCntSYSTEM_UPDATE_INTER){ds18b20Temp DS18B20GetTemp_SkipRom();getTemp (uint8_t)ds18b20Temp;if(getTempsetTemp){chargingOn false; //停止充电CHARGE_OFF(); //关闭继电器FAN_ON(); //打开风扇BUZZER_ON(); //打开蜂鸣器报警 }else //温度恢复正常后关闭风扇和蜂鸣器{FAN_OFF();BUZZER_OFF();}}ChargingControl();}
系统显示:
//处理OLED显示内容void SystemDisplay(void){char textBuf[20];//显示设置的充电时长分钟sprintf(textBuf,SetTime:%2dmin, setTimeMin);OledShowString(0, 0, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//显示剩余的充电时间秒sprintf(textBuf,Remain:%4dsec, remainTime);OledShowString(0, 2, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//显示设置的超温温度阈值sprintf(textBuf,SetTemp:%2d, setTemp);OledShowString(0, 4, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符//显示获取到的温度值sprintf(textBuf,GetTemp:%2d, getTemp); OledShowString(0, 6, (uint8_t*)textBuf, OLED_FONT_8X16); //测试8*16字符}
此设计提供的资料包含原理图PCB包含PDFAD立创EDA三个版本源代码系统框图主程序流程图物料清单包含使用到的器件手册功能操作说明等。