-
- 一、开发环境
- 二、主要功能
- 三、仿真设计
- 四、程序代码
- 五、设计说明书
- 六、资料清单&下载链接
基于STM32智能路灯控制系统LCD显示仿真设计 本设计包含proteus仿真+程序代码+设计报告+讲解视频
一、开发环境
仿真图:proteus 8.17
程序编译器:keil 5
编程语言:C语言
设计编号:C0143
二、主要功能
1、设计目的
(1)掌握STM32F103C8T6单片机最小系统的设计;
(2)掌握电路的设计方法;
(4)掌握STM32的编程方式。
(5)掌握使用Proteus进行仿真的方法。
2、仿真要求
(1)用Proteus进行功能仿真,LCD显示时间、光照强度、自动开关灯的阈值。
(2)自动开关灯的阈值可通过按键调节(开灯时间设定、关灯时间设定)。
(3)开灯时间到后,自动点亮路灯。关灯时间到后,自动关闭路灯。
(4)利用Protues中的光敏电阻模拟光照强度,光照强度小于50,则立即自动开灯。
(5)光照强度的优先级要高于定时时间。
以下为本设计资料展示:
三、仿真设计
打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。
四、程序代码
程序是用keil5 mdk版本打开的,如果打开有问题,核实下keil的版本。程序有注释可以结合讲解视频理解。
main.c 关键代码:
int main(void){ /* USER CODE BEGIN 1 */ ADC_ChannelConfTypeDef sConfig = {0}; uint32_t adcv; uint16_t light_val; /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* 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(); MX_TIM2_Init(); MX_ADC1_Init(); /* USER CODE BEGIN 2 */ /* DS1302初始化 */ DS1302_GPIO_Init(); DS1302_Init(); /* LCD1602初始化 */ LCD_Init(); HAL_Delay(100); /* 路灯初始熄灭 */ STREET_LIGHT_OFF(); /* 启动定时器2中断 */ HAL_TIM_Base_Start_IT(&htim2); HAL_UART_Transmit(&huart1, (uint8_t *)&"Smart Street Lightrn", 19, 10); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_Delay(30); /* 读取ADC光照强度 */ sConfig.Channel = ADC_CHANNEL_1; HAL_ADCEx_Calibration_Start(&hadc1); HAL_ADC_ConfigChannel(&hadc1, &sConfig); HAL_ADC_Start(&hadc1); HAL_ADC_PollForConversion(&hadc1, 30); adcv = HAL_ADC_GetValue(&hadc1); light_val = light_intensity(adcv); /* 路灯控制 */ Check_LightControl(light_val, DS1302_TimeData.hour, DS1302_TimeData.minute, on_hour, on_minute, off_hour, off_minute); /* 更新LCD显示 */ Update_LCD_Display(light_val, DS1302_TimeData.hour, DS1302_TimeData.minute, DS1302_TimeData.second, on_hour, on_minute, off_hour, off_minute, set_mode, blink_show); } /* USER CODE END 3 */}
程序流程图:
五、设计说明书
13633字,内容包括硬件设计、软件设计、结论等。
摘要:
本课题旨在设计并实现一套基于STM32F103C8T6单片机的智能路灯控制系统,该系统集成DS1302实时时钟和光敏电阻传感器,能够根据环境光照强度和预设时间参数自动控制路灯的开关状态。系统采用光照优先级最高的控制策略——当环境光照强度低于50lux的阈值时,无论当前处于什么时间段,系统都会立即自动开启路灯,确保在恶劣天气条件下的道路照明安全;在光照充足的正常条件下,系统则根据用户设定的开灯时间和关灯时间进行定时控制。
六、资料清单&下载链接
资料下载链接:
链接: https://pan.baidu.com/s/1ufrKXp4JJI8N0gUoxvyPZw?pwd=w2c5
提取码: w2c5
53