单片机控制的电动自行车驱动系统源码

单片机控制的电动自行车驱动系统源码

ID:30918412

大小:87.27 KB

页数:7页

时间:2019-01-05

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

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

1、单片机控制的电动自行车驱动系统源码C语言程序Sincludc//电动车双闭环程序,采用双闭环方式控制电机,以得到最好的zh传速性能,并且可以//限制电机的最大电流。木应用程序用到两个CCP部件,其屮CCP1用于PWM输出,以控//制电机电压;CCP2用于触发AD,定时器TMR2、TMR1,INT中断,RB口电平变化中断,//看门狗以及6个通用I/O口itdefineANDOxeO#defineCURAOXOattdcfincCURB0X09^defineTHL0X6400itdefineFULLDUTYOXOFFSd

2、efineSPEAOXld#defineSPEBOXlc//状态釆集5,6,7位//电流环比例和积分系数之和//电流环比例系数//电流环最大输岀//占空比为1时的高电平时间//转速环比例和积分系数之和〃转速环比例系数ttdcfincGCURIIILO0X0330//转速环最大输出^defineGCURH0X33itdefineGSPEH0X67SdefineTSON0X38压,即^defineVOLON0X4citdefineVOLOFF0X49//最大给定电流//最大转速给定//手柄开启电压1.1V,TS0M*2为刹车后手柄开启

3、电//2.2V//低电压保护重开电压3.0V即33V//低电压保护关断电压2.86V即31.5VvoidINIT8770{PORTC二OXOFF;TRISC=0X02;PIE1=OXOO;TR1SA=OXCF;TRISB=OXEF;volatileunsignedcharDELAYH,DELAYL,oldstate,speed,speedcount,tsh,count_ts,coungcur,currenth,voltage;//寄存器定义staticbitspl,spe,ts,volflag,spepid,lowpower,of

4、f,shutdown,curpid;//标志位定义staticvolat订eunsignedcharnew[10]={0xaf,Oxbe,Oxff,0x7e,Oxcf,Oxff,0xd7,0x77,Oxff,Oxff};//状态寄存器表//PIC16F877初始化子程序//关断所有MOSFET〃设置C口输出//中断寄存器初始化,关断所有中断//设置RA4,RA5输岀//RB口高三位输入,采集电机三相的霍尔信号PORTC=ne讥(PORTB&AND)»5];//采集第一次霍尔信号,并输出相应的信号,导通//两个MOS管T2C0N=0

5、X01;CCPR1L二OXOFF;CCP1CON=OXOFF;CCP2CON二OXOB;ADCONO二0X81;采集手//TMR24分频//初始时PWM输出全高//CCP1设置为PWM方式//CCP2设置为特殊方式,以触发AD//AD时钟为32分频,且AD使能,选择AN0通道//柄电压TMR2=0X00;TMR1H二0X00;TMR1L二0X00;T1CON=OXOO;CCPR211=0X08;//TMR2寄存器初始化//TMR1寄存器初始化//TMR1为1分频CCPR2L=0X00;PR2=0XC7;ADC0N1二0X02;OP

6、TION二OXFB;TMR2ON=1;1NTC0N二0XD8;ADIE=1;speedcount二0x00;speed二0x7f;spc=l;spl=l;oldstate=0x0ff;countts=0x08;count_vol=0x00;ts=l;ADGO二1;TMR1ON=1;//电流采样周期设置为Tad=512us//PWM频率设置为5kHz//AD结果左移//INT上升沿触发//PWM开始工作//中断设置GIE=1,PEIE=1,RBIE=1//AD中断使能〃转速计数寄存器〃转速保持寄存器//低速标志位//低速标志位〃初始

7、状态设置,区别于其他状态〃电流采样8次,采集1次手柄//采样256次手柄,采集1次电池电压〃可以采集手柄值的标志位//AD采样使能//CCP2部件开始工作//延时子程序Spragmaintcrrupt_lcvcl1voidDELAY1(x)charx;{//延时参数设置DELAYH=x;#asniDELAY2MOVLW0X06MOVWF_DELAYLDELAY1DECFSZDELAYLGOTODELAY1DECFSZ_DELAYHGOTODELAY2Sendasm}//状态采集子程序——voidsample(){charstate

8、l,state2,state3,x;do{x=l;statel=(PORTB&AND);DELAY1(x);state2二(PORTB&AND);//霍尔信号采集}while(statcl-statc2);if(statel-oldstate!=0

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

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

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