PIC16F72无刷电动车控制器源码详解

5星 · 超过95%的资源 需积分: 10 35 下载量 112 浏览量 更新于2024-12-28 3 收藏 11KB TXT 举报
该资源是一份针对PIC16F72单片机设计的无刷电动车控制器的源程序。该程序利用了该型号单片机的特性,如定时器、输入输出控制以及脉宽调制(PWM)功能,来实现电动车动力系统的精确控制。以下是一些关键知识点的详细解析: 1. **硬件配置**: - PIC16F72单片机被用于无刷电动车控制器,表明它具有足够的计算能力和数字信号处理能力。 - 通过定义的引脚如`AND0`, `CURA`, `CURB`, `THL`, `FULLDUTY`, `SPEA`, `SPEB`, `GCURHILO`, `GCURH`, `GSPEH`, `TSON`, `VOLON`, 和 `VOLOFF`,程序对多个输入/输出(I/O)端口进行了配置,分别用于电流检测、电压控制和状态指示等。 2. **中断管理**: - 程序使用`TMR2`和`TMR1`作为定时器,可能是为了测量电机转速或者周期性任务,同时配置了中断处理机制(INT)。 - CCP2被用于ADC采样,并可能与定时器配合监控电机工作状态。 3. ** PWM 控制**: - PWM控制通过`CCP1`实现,这有助于精确控制电机的转速,通过调整脉冲宽度来改变电动机的力矩输出。 4. **变量定义**: - 变量如`DELAYH`, `DELAYL`, `oldstate`, `speed`, `speedcount`, 等用于计时、状态存储和速度控制,展示了程序对实时数据处理的需求。 - `volatile`关键字确保了这些变量在多任务环境下能正确更新。 5. **电源管理**: - `TSON`定义了电源开关的阈值,可能是用来控制低功耗模式或电源电压的切换。 - `VOLON`和`VOLOFF`定义了电压阈值,用于电动车电池充电和断开的控制。 6. **初始化函数**: - `INIT877()`函数负责初始化电路,包括设置端口配置、设置定时器T2的工作模式、设置PWM通道CCP1的初始值等,确保了系统的正常启动。 通过这个源程序,开发者可以了解如何在实际应用中利用PIC16F72单片机构建一个无刷电动车控制器,实现电机驱动、电流检测和电源管理等功能。理解和修改这些代码可以帮助开发人员根据自己的需求进行定制和优化。