36V智能有刷程序说明.doc

36V智能有刷程序说明.doc

36V智能有刷程序说明 设计时间:2006年9月21日 程序功能:1、转把调速度;2、刹车;3、助力;4、欠压保护;5、限流保护、过流保护。 参数说明: 转把有效电压:1.6~4.0V 转把断线保护电压:≥4.6V 欠压值:<31.5V 重开值:>33V 限 流:<16A 程序设计思路: 单片机:PIC16F716 晶振:4M PWM输出频率为16KHZ。PR2设为0X3B,则10位精度,调整度0~240。 转把、电池电压、电流采样AD中断循环采样。AD转换完成后,写入下次需转换的通道,TIMER1定时512uS中断一次,开启AD转换。电流采样8次,转把采样一次;转把采样64次,电池采样一次。 转把调速的实现: 转把有效电压1.6-4.0V采样82-204,差位122,为了方便期间差数120,则将转把采样的电压值减起82,在乘以2,即得到调速度的PWM值。 转把电压由AD采样中断得到,采样完一次,置TS-OK标志位,当采样电压达到开启电压1.6V时置TS-ON标志位。主程序通过检查标志为确定该处理对应的数据。 助力调速的实现: 助力是一脉宽的形式输入的。频率3.5~17HZ,正常骑行12HZ左右。通过定时对助力输入I/O进行扫描,判断电平是否发生变化,记录下相应的脉宽,变化一个周期(变化2次)再判断脉宽确定是正反助力,再有效的情况下计数加1。在一定时间内(程序里1.2S)计数的值就为助力的输入值。将输入的值通过一定的运算,转化成PWM的控制值。助力PWM值通过调整的形式去控制PWM的输出。(调整的形式:通过判断两个值大小,根据大小给另一个值进行加减)。 通过定时器1 512uS对助力输入I/O进行扫描,检查电平是否变化。脉宽计时间由定时器1 512uS计数40次形成30MS的定时间计数(30MS到计数加1)。由30MS计数50形成1.2S定时。30MS为脉宽计数,1.5S为助力的定时输出。输出值大约2,则助力有效。助力值*16 定速:30MS对定速键进行扫描,确定有键按下,通过主程序进行切换模式(电动模式与定速模式进行切换)。 程序框图: 主程序框图: WDT:看门狗。 DC_OK,TS_OK,DL_OK,TS_YX:分别为电池电压采样完成;转把采样完成;电流采样完成;转把有效。 AD采样中断子程序 1 开 始 清WDT I/O初始化 寄存器初始化 AD转换初始化 定时器1初始化 PWM初始化 延时20mS 清WDT 电池电压采样 电池电压>欠压重开值 中断使能配置 延时50mS 清标志位 DC_OK,TS_OK,DL_OK,TS_YX 清WDT 助力有效? 转把有效? PWM输出有效? PWM输出 助力信号检测完毕? 助力信号处理 PWM调整 电流采样完毕? 电池电压采样完毕? 欠压检测处理 有刹车信号? 刹车处理 需要复位? 需要复位? Y Y Y Y N N N Y N N Y N Y N N 电动模式 助力模式 助力模式 定速键按有效? 清定速有效标志位 跳到定速模式 软件复位地址 复位 复位 Y Y N Y 复位 Y N 定速模式 清ADIF Y Y N 转把有效? N N PWM输出有效? Y PWM输出 转把采样完毕? N Y 转把信号处理 N 电流采样完毕? Y PWM调整 电池电压采样完毕? N Y 欠压检测处理 需要复位? N N 有刹车信号? 刹车处理 需要复位? 中断向量 是转把采样? 是电流采样? 清定速有效标志位 跳到电动模式 定速键按有效? N 清WDT 清WDT 电动模式 清WDT N 电流采样完毕? Y PWM调整 N PWM输出有

文档评论(0)

1亿VIP精品文档

相关文档