基于51单片机的的智能电动车充电桩系统设计

1. 系统总体设计

点击链接下载protues仿真设计资料:https://download.csdn.net/download/m0_51061483/91644953

1.1 设计背景

随着新能源交通工具的普及,电动车已成为城市出行的重要方式之一。与此同时,配套的充电基础设施需求迅速增长。传统电动车充电设备大多功能单一,仅提供基本充电功能,缺乏智能化管理与远程监控能力,难以满足现代智慧能源管理的需求。

基于单片机的智能充电桩系统能够实现多路充电控制、实时电压监测、人机交互以及与上位机通信等功能,具有结构简单、成本低、扩展性强等优点。因此,设计一种基于51单片机的智能电动车充电桩系统,对提高充电设备的智能化水平和用户体验具有重要意义。


1.2 系统功能设计

本系统基于51单片机实现双路电动车充电桩控制,主要功能如下:

  1. 通过LCD1602显示两个充电桩的实时充电电压;
  2. 通过按键控制两个充电桩的启动与关闭;
  3. 支持通过按键设置充电电压;
  4. 当充电完成后,通过蜂鸣器进行提示;
  5. 通过串口通信与上位机连接,实现电压数据实时上传;
  6. 上位机可远程控制两个充电桩的启动、关闭及电压设定;
  7. 系统支持双充电桩独立运行与控制,提高使用效率。

2. 系统电路设计

2.1 单片机最小系统电路设计

本系统采用AT89C51单片机作为核心控制单元,负责数据处理、控制逻辑与通信功能。

最小系统包括:

  1. 晶振电路:采用11.0592MHz晶振,保证串口通信精度;
  2. 复位电路:采用RC复位电路,实现系统可靠启动;
  3. 电源电路:通过稳压模块提供稳定5V电源。

该模块为系统稳定运行提供基础。


2.2 电压采样电路设计

电压采样用于获取充电桩输出电压。

设计方案:

  1. 采用电阻分压电路将高电压转换为0~5V范围;
  2. 每个充电桩独立采样;
  3. 加入滤波电容减少干扰;
  4. 输出信号输入ADC模块。

2.3 ADC模数转换电路设计

本系统采用ADC0808进行模数转换。

主要特点:

  1. 8位分辨率;
  2. 多通道输入,支持两个充电桩电压采集;
  3. 与单片机接口简单;
  4. 转换速度满足实时测量需求。

连接方式:

  • 数据端口连接P0口;
  • 控制信号连接单片机IO口;
  • 时钟信号由外部电路提供。

2.4 LCD1602显示电路设计

LCD1602用于显示两个充电桩的电压信息。

设计要点:

  1. 采用4位数据模式;

  2. 控制引脚包括RS、RW、EN;

  3. 显示内容包括:

    • 充电桩1电压;
    • 充电桩2电压。

2.5 按键输入电路设计

系统设置多个按键用于控制:

  1. 充电桩1启动/停止;
  2. 充电桩2启动/停止;
  3. 电压调节(增加/减少)。

设计要点:

  • 使用上拉电阻;
  • 单片机IO口读取;
  • 软件消抖处理。

2.6 充电控制电路设计

充电控制通过继电器实现。

设计方案:

  1. 单片机输出控制信号;
  2. 三极管驱动继电器;
  3. 控制充电回路通断;
  4. 每个充电桩独立控制。

2.7 串口通信电路设计

用于实现与上位机通信。

设计要点:

  1. 使用单片机UART接口;
  2. 通过MAX232实现电平转换;
  3. 支持RS232通信;
  4. 实现数据上传与远程控制。

2.8 蜂鸣器报警电路设计

用于充电完成提示。

设计方法:

  1. 单片机IO口控制;
  2. 三极管驱动蜂鸣器;
  3. 充电完成时触发。

3. 系统程序设计

3.1 程序总体结构设计

系统程序采用模块化设计,包括采样模块、显示模块、按键模块、控制模块及通信模块。

主程序如下:

c 复制代码
void main()
{
    System_Init();
    while(1)
    {
        Key_Scan();
        Voltage1 = Read_ADC(0);
        Voltage2 = Read_ADC(1);
        Control_Process();
        LCD_Display();
        UART_Send();
    }
}

3.2 ADC采样程序设计

c 复制代码
unsigned char Read_ADC(unsigned char ch)
{
    channel = ch;
    ALE = 1;
    START = 1;
    delay_us(5);
    ALE = 0;
    START = 0;
    
    while(EOC == 0);
    
    OE = 1;
    return P0;
}

实现多通道采样。


3.3 电压计算程序设计

c 复制代码
float Convert_Voltage(unsigned char adc)
{
    return adc * 5.0 / 255.0 * SCALE;
}

将数字量转换为实际电压。


3.4 按键处理程序设计

c 复制代码
void Key_Scan()
{
    if(KEY1 == 0)
    {
        delay_ms(10);
        if(KEY1 == 0)
            charge1_flag = !charge1_flag;
    }
    
    if(KEY2 == 0)
    {
        delay_ms(10);
        if(KEY2 == 0)
            charge2_flag = !charge2_flag;
    }
}

实现充电控制。


3.5 充电控制程序设计

c 复制代码
void Control_Process()
{
    if(charge1_flag)
        Relay1_ON();
    else
        Relay1_OFF();
    
    if(charge2_flag)
        Relay2_ON();
    else
        Relay2_OFF();
}

实现充电桩控制。


3.6 LCD显示程序设计

c 复制代码
void LCD_Display()
{
    LCD_ShowString(0,0,"V1:");
    LCD_ShowNum(3,0,Voltage1,2);
    
    LCD_ShowString(0,1,"V2:");
    LCD_ShowNum(3,1,Voltage2,2);
}

显示电压信息。


3.7 串口通信程序设计

c 复制代码
void UART_Send()
{
    printf("V1=%.2f,V2=%.2f\n",Voltage1,Voltage2);
}

实现数据上传。


3.8 上位机控制处理程序

c 复制代码
void UART_Receive()
{
    if(RI)
    {
        RI = 0;
        cmd = SBUF;
        
        if(cmd == 'A')
            charge1_flag = 1;
        if(cmd == 'B')
            charge1_flag = 0;
    }
}

实现远程控制。


3.9 蜂鸣器控制程序

c 复制代码
void Beep()
{
    Buzzer = 1;
    delay_ms(500);
    Buzzer = 0;
}

用于提示充电完成。


4. 系统总结

本系统基于51单片机实现了智能电动车充电桩控制,通过双路电压采样、继电器控制及串口通信,实现了充电过程的智能化管理。

在电路设计方面,各模块结构清晰,功能独立,具备良好的稳定性;在程序设计方面,采用模块化设计,使系统逻辑清晰、易于扩展。

系统不仅支持本地按键控制,还支持上位机远程控制,提高了系统灵活性与实用性,具有较高的应用价值。

相关推荐
SDAU20051 小时前
CH32V103C8T6的时钟操作
单片机·嵌入式硬件
不做无法实现的梦~1 小时前
SBUS 接收机到 STM32:为什么要做硬件反相、如何解析数据、如何接线与实现代码
stm32·单片机·嵌入式硬件
一路往蓝-Anbo2 小时前
第二章:隔离硬件 —— 利用 CMock 伪造 GPIO 与定时器
stm32·单片机·嵌入式硬件·软件工程·信息与通信·tdd
刘延林.3 小时前
esp32 s3+micpython快速验证ML307R 是否能正常连接4G
单片机·嵌入式硬件
不做无法实现的梦~8 小时前
86步进电机和DM860H驱动器的使用方法和记录
单片机·嵌入式硬件
Aaron15889 小时前
RFSOC+VU13P/VU9P+GPU多通道同步一体化解决方案
人工智能·嵌入式硬件·算法·matlab·fpga开发·硬件架构·基带工程
所见即所得111119 小时前
stm32烧录过程中串口问题(串口被占用无法使用)
stm32·单片机·嵌入式硬件
Freak嵌入式9 小时前
WIZnet-EVB-Pico2开始,用MicroPython玩转以太网开发
arm开发·人工智能·python·嵌入式硬件·机器人·嵌入式·micropython
Ligocious10 小时前
stm32---1.两种开发方式点亮LED
stm32·单片机
黑白园10 小时前
STM32F103C8TC使用ST-Link下载
stm32·单片机·嵌入式硬件