C语言编程实现pic单片机电动自行车双闭环控制

3星 · 超过75%的资源 需积分: 10 2 下载量 9 浏览量 更新于2024-09-13 收藏 82KB DOC 举报
本章节主要介绍了利用单片机(如PIC)控制电动自行车驱动系统的方案。该方案采用了C语言编程,强调了双闭环控制策略,以优化电机转速性能并限制电机最大电流。核心部分涉及到硬件配置与软件结构: 1. **硬件配置**: - CCP(Capture Compare Peripheral)部件:CCP1用于PWM(脉冲宽度调制)输出,通过调整占空比来控制电机电压。CCP2则集成计时器TMR2、TMR1,用于精确的时间间隔控制和中断处理,包括RB口电平检测,INT(中断)管理,以及通用I/O口的使用。 - 特定寄存器定义:如`DELAYH`和`DELAYL`用于延时处理,`speed`、`speedcount`等用于存储转速数据,`gcur`和`currenth`表示当前和最大电流值。 2. **软件编程**: - 使用C语言编写程序,定义了一系列全局变量和标志位,如`p1`、`spe`等,用于控制不同的功能状态(例如电机速度控制、低电压保护等)。 - `INIT877()`子程序是初始化过程,它设置了PORTC口为输出模式,关闭所有MOSFET,以及配置PIE1寄存器以激活特定的中断和事件。 3. **双闭环控制**: - 电流环和转速环是双闭环控制系统的关键,通过`CURA0X0a`和`CURB0X09`定义电流环的比例系数,`THL0X6400`为电流环的最大输出,确保电机电流在安全范围内。 - 转速环通过`SPEA0X1d`和`SPEB0X1c`设置比例系数,`GCURHILO0X0330`和`GSPEH0X67`分别定义最大给定电流和转速。 4. **保护机制**: - 通过`TSON0X38`和`VOLON0X4c`定义了手柄开启和低电压保护的阈值,当电压低于`VOLOFF0X49`时,系统将自动关断以保护电池。 总结来说,这个方案是利用PIC单片机进行电动自行车驱动系统设计,通过双闭环控制算法优化电机性能,同时考虑到保护机制,确保系统的稳定性和安全性。编程实现包括硬件配置初始化和C语言程序编写,体现了单片机在电机控制领域的实际应用。