• 方案介绍
  • 相关推荐
申请入驻 产业图谱

基于STM32智能路灯控制系统LCD显示Proteus仿真+代码+报告+讲解

21分钟前
53
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

基于STM32智能路灯控制系统LCD显示仿真设计

    • 一、开发环境
    • 二、主要功能
    • 三、仿真设计
    • 四、程序代码
    • 五、设计说明书
    • 六、资料清单&下载链接

基于STM32智能路灯控制系统LCD显示仿真设计 本设计包含proteus仿真+程序代码+设计报告+讲解视频

一、开发环境

仿真图:proteus 8.17

程序编译器:keil 5

编程语言:C语言

设计编号:C0143

二、主要功能

1、设计目的

(1)掌握STM32F103C8T6单片机最小系统的设计;

(2)掌握电路的设计方法;

(3)掌握LCD、DS1302、ADC的驱动;

(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

相关推荐