欢迎来到天天文库
浏览记录
ID:805165
大小:51.03 KB
页数:19页
时间:2017-09-05
《单片机控制的电动自行车驱动系统部分程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
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占空比
此文档下载收益归作者所有