PIC16F72电动车控制器C源代码与原理解析

4星 · 超过85%的资源 需积分: 50 105 下载量 170 浏览量 更新于2024-09-22 7 收藏 28KB DOCX 举报
"该资源提供了一个基于PIC16F72单片机的电动车控制器的C语言源程序,包括了程序代码、原理图和设计说明。这个控制器采用双闭环控制策略,以优化电机的转速性能并限制最大电流。源码中涉及到的主要功能模块有PWM输出、AD转换、定时器、中断服务、输入/输出接口等。" 在电动车控制器的设计中,PIC16F72单片机扮演着核心角色,负责处理整个系统的控制逻辑。源程序中,`#include<pic.h>`表明代码使用了Microchip的PIC单片机库,使得可以直接调用与硬件相关的函数和寄存器。 双闭环控制是该控制器的关键特性,包括电流环和速度环。电流环通过CCP1模块实现PWM输出,以调节电机电压,确保电机运行在设定的电流范围内。`CURA`和`CURB`定义了电流环的比例和积分系数,而`THL`则设定了电流环的最大输出值。速度环利用CCP2进行AD转换,通过定时器TMR2和TMR1以及INT中断来监控和调整电机转速。`SPEA`和`SPEB`是速度环的比例和积分系数,`GCURHILO`、`GCURH`和`GSPEH`分别代表速度环的最大输出、最大给定电流和最大转速给定。 此外,控制器还包含了各种中断服务,如RB口电平变化中断,以及看门狗功能,确保系统稳定运行。`TSON`、`VOLON`和`VOLOFF`用于设置手柄开启电压、低电压保护的重开和关断阈值,以防止电池过放电。 程序中定义的多个变量,如`DELAYH`、`DELAYL`、`speed`、`speedcount`、`tsh`等,用于存储临时数据和状态信息。标志位如`p1`、`spe`、`ts`、`volflag`等则用于标记系统当前的工作状态,例如手柄状态、速度检测、电压检测等。 这个电动车控制器源程序展示了如何运用PIC16F72单片机进行复杂的实时控制系统设计,包括电机控制、电源管理、安全保护等多个方面,是学习嵌入式系统和电动车控制技术的重要参考资料。