单片机控制电动自行车驱动系统C语言程序解析

需积分: 0 0 下载量 58 浏览量 更新于2024-09-20 收藏 82KB DOC 举报
"单片机控制的电动自行车驱动系统" 单片机控制的电动自行车驱动系统是一种先进的电动车动力系统,它利用微控制器(如PIC16F877)来精确控制电动自行车的运行状态,包括电机转速和电流,从而确保高效、安全的运行。系统设计中采用了双闭环控制策略,即速度环和电流环,以优化电机性能并限制最大电流。 1. 双闭环控制:在程序中,双闭环控制是通过两个比较捕获模块(CCP1和CCP2)实现的。CCP1用于产生脉宽调制(PWM)信号,调节电机电压,进而控制电机转速。CCP2则用于触发模数转换(AD),同时与定时器TMR2、TMR1、中断(INT)以及RB口电平变化中断配合,实现电流检测和反馈控制。 2. C语言编程:程序使用C语言编写,便于理解和调试。代码中定义了一系列常量,如AND0xe0、CURA0X0a等,它们分别代表状态采集位、电流环参数和转速环参数,这些参数是控制系统性能的关键。 3. 参数设定:例如,CURH0X33表示最大给定电流,GSPEH0X67表示最大转速给定,TSON0X38代表手柄开启电压,VOLON0X4c和VOLOFF0X49设定低电压保护的重开和关断电压,这些都是为了确保电动自行车在不同工况下的安全和稳定运行。 4. 寄存器定义:程序中定义了多个寄存器变量,如DELAYH、DELAYL、speedcount、count_ts等,用于存储实时数据和控制状态,如延迟时间、速度计数和电压检测计数。 5. 标志位定义:如spe、ts、volflag、spepid和lowpower等标志位,它们用来标记系统的特定状态,例如速度控制状态、手柄开关状态、低电压警告等,帮助系统根据当前条件做出相应的响应。 6. 初始化子程序:INIT877()函数用于初始化单片机,设置端口方向(如PORTC全部设为输出)、中断使能(如PIE1)等,确保系统启动时正确配置硬件。 7. 安全特性:低电压保护功能(如VOLON和VOLOFF设定的电压值)能够防止电池电压过低导致的损害,同时手柄开启电压(TSON)和刹车后的开启电压设定,确保在骑行过程中的安全。 这个系统通过精心设计的软件和硬件相结合,实现了对电动自行车的智能化控制,提高了驾驶效率,降低了能源消耗,同时也提升了安全性。