单片机控制的电动自行车驱动系统部分程序

单片机控制的电动自行车驱动系统部分程序

ID:805165

大小:51.03 KB

页数:19页

时间:2017-09-05

单片机控制的电动自行车驱动系统部分程序_第1页
单片机控制的电动自行车驱动系统部分程序_第2页
单片机控制的电动自行车驱动系统部分程序_第3页
单片机控制的电动自行车驱动系统部分程序_第4页
单片机控制的电动自行车驱动系统部分程序_第5页
资源描述:

《单片机控制的电动自行车驱动系统部分程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、单片机控制的电动自行车驱动系统部分程序(CHUNTIAN)作者:佚名 来源:不详 录入:jdzj868 更新时间:2009-7-916:52:08 点击数:0【字体:】单片机控制的电动自行车驱动系统14.4.4  各部分程序LISTP=16F876#INCLUDEP16F876.INC;以下采用块定义的方法定义单片机内部寄存器CBLOCK0X20;自定义寄存器从0X20开始FLAG1;FLAG1作为标志寄存器VOLTAGEH;电池电压高位寄存器VOLTAGEL;电池电压低位寄存器TSH;手柄电压高位寄存

2、器TSL;手柄电压低位寄存器STATE1;霍尔信号采样暂存器1STATE2;霍尔信号采样暂存器2STATE3;霍尔信号采样暂存器3DELAY;延时计数器COUNT_VOL;低电压采样次数计数器ACCaLO ;ACCa~ACCd为运算用的寄存器ACCaHI ACCbLO ACCbHI ACCcLO ACCcHI ACCdLO ACCdHI TEMP ;临时寄存器TEMP1 ;临时寄存器(中断用)SIGN ;符号寄存器COUNT ;临时寄存器W_STACK;中断时用于暂存W寄存器值ST_STACK;中断时用

3、于暂存STATUS寄存器值ENDC;***********标志寄存器位定义以及程序中常数定义***********CONSTANTVOLTAGE=0;采电池电压标志位CONSTANTPWM=1;输出下一次PWM信号标志位CONSTANTLOWPOWER=2;低电压标志位CONSTANTSHUTDOWN=3;刹车标志位CONSTANTOFF=4;复位标志位CONSTANTAND=0XE0;AND用于获取有效霍尔信号CONSTANTFULLPWM=0XFF;当PWM输出全高时,输入CCPR1L中的值CONS

4、TANTVOLOFFH=0X02;当电池电压低于24AH时,低压保护2.86V/31.5VCONSTANTVOLOFFL=0X4ACONSTANTVOLONH=0X02;当电池电压大于266H时,允许电机重开3V/33VCONSTANTVOLONL=0X66CONSTANTTSONH=0X01;刹车后手柄复位值低于133H,则允许电机重新启动CONSTANTTSONL=0X33;***复位矢量入口(单片机复位时,PC指针指向程序存储器0X0000单元)***ORG0X0000STARTGOTOMAIN;

5、复位后程序进入主程序;***中断矢量入口程序(PIC单片机的中断矢量入口为0X0004)***ORG0X0004;中断矢量入口BTFSCINTCON,RBIF;是否为RB口电平变化中断?GOTOSAMPLERB;是,进入RB口电平变化中断服务程序BTFSCPIR1,ADIF;是否为AD采样中断GOTOAD;是,进入AD中断服务程序BTFSCINTCON,INTF;是否为刹车中断GOTOBRAKE;是,刹车中断处理RETFIE;如都不是,则中断返回;************逆变桥输出控制表********

6、*****;逆变桥输出控制表,其输出对应6种状态,霍尔信号来自B口RB7、RB6、RB5,C口输出低电平有;效,其中RC1,RC2不作为触发电路输出口,故表中使其为高电平ORG0X0020;表程序从0X0020单元开始存放(也可以不从这开始)OUT_TABLEADDWFPCL,1RETLW0X0AF;如霍尔信号为0、0、0,则使RC4、RC6为低电平RETLW0X0BE;如霍尔信号为0、0、1,则使RC0、RC6为低电平RETLW0X0FF;没有为0、1、0的霍尔信号对应电机状态RETLW0X07E;如

7、霍尔信号为0、1、1,则使RC0、RC7为低电平RETLW0X0CF;如霍尔信号为1、0、0,则使RC4、RC5为低电平RETLW0X0FF;没有为1、0、1的霍尔信号对应电机状态RETLW0X0D7;如霍尔信号为1、1、0则使RC3、RC5为低电平RETLW0X077;如霍尔信号为1、1、1则使RC3、RC7为低电平;***************主程序*****************ORG0X0100;主程序从0X0100单元开始存储MAINMOVLW0X0FF;由于C口上电复位值不确定,必须先关

8、闭所有MOS管MOVWFPORTCBSFSTATUS,RP0;选择存储体1MOVLW0X02;设置RC1为输入口,其它为输出口,其中RC2为PWM    MOVWFTRISC;输出口,其它位为触发信号输出BCFSTATUS,RP0;选择存储体0CLRFPIR1;清所有中断标志位CLRFINTCON;禁止所有中断MOVLW0X01;设置TMR2预分频值为4MOVWFT2CONMOVLWFULLPWM;初始化PWM工作循环寄存器,使PWM占空比

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。