![單片機(jī)控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)_第1頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/6634afef-07c4-4265-aa42-a319f3697510/6634afef-07c4-4265-aa42-a319f36975101.gif)
![單片機(jī)控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)_第2頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/6634afef-07c4-4265-aa42-a319f3697510/6634afef-07c4-4265-aa42-a319f36975102.gif)
![單片機(jī)控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)_第3頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/6634afef-07c4-4265-aa42-a319f3697510/6634afef-07c4-4265-aa42-a319f36975103.gif)
![單片機(jī)控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)_第4頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/6634afef-07c4-4265-aa42-a319f3697510/6634afef-07c4-4265-aa42-a319f36975104.gif)
![單片機(jī)控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)_第5頁(yè)](http://file2.renrendoc.com/fileroot_temp3/2021-6/10/6634afef-07c4-4265-aa42-a319f3697510/6634afef-07c4-4265-aa42-a319f36975105.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 14 章 單片機(jī)控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)14.4.4 C 語(yǔ)言程序#include 電動(dòng)車雙閉環(huán)程序,采用雙閉環(huán)方式控制電機(jī),以得到最好的 zh 轉(zhuǎn)速性能,并且可以 限制電機(jī)的最大電流。本應(yīng)用程序用到兩個(gè)CO部件,其中CCP傭于PWM輸出,以控制電機(jī)電壓;CCP2用于觸發(fā)AD定時(shí)器TMR2 TMR1 INT中斷,RB口電平變化中斷, 看門狗以及 6 個(gè)通用/I/O#define AND 0xe0/#define CURA 0X0a/#define CURB 0X09/#define THL 0X6400/#define FULLDUTY 0X0FF/#define SPEA 0X1d/#d
2、efine SPEB 0X1c/#define GCURHIL0 0X0330/#define GCURH 0X33/#define GSPEH 0X67/#define TSON 0X38/狀態(tài)采集 5,6,7 位 電流環(huán)比例和積分系數(shù)之和 電流環(huán)比例系數(shù) 電流環(huán)最大輸出占空比為 1 時(shí)的高電平時(shí)間 轉(zhuǎn)速環(huán)比例和積分系數(shù)之和 轉(zhuǎn)速環(huán)比例系數(shù) 轉(zhuǎn)速環(huán)最大輸出 最大給定電流 最大轉(zhuǎn)速給定手柄開(kāi)啟電壓1.1 V , TS0N*2為剎車后手柄開(kāi)啟電壓,即/2.2 V#define VOLON 0X4c/#define VOLOFF 0X49/低電壓保護(hù)重開(kāi)電壓 3.0 V 即 33 V低電壓保護(hù)關(guān)斷
3、電壓 2.86 V 即 31.5 Vvolatile unsigned char DELAYH,DELAYL,oldstate,speed, speedcount,tsh,count_ts,count_vol,gcur,currenth, voltage;/ 寄存器定義static bit sp1,spe,ts,volflag,spepid,lowpower, off,shutdown,curpid;/ 標(biāo)志位定義static volatile unsigned char new10=0xaf,0xbe,0xff,0x7e,0xcf, 0xff,0xd7,0x77,0xff,0xff;/ 狀態(tài)
4、寄存器表初始化子程序 /PIC16F877void INIT877()P0RTC=0X0FF;TRISC=0X02;/PIE1=0X00;TRISA=0XCF;TRISB=0XEF;/關(guān)斷所有 M0SFET 設(shè)置 C 口輸出 中斷寄存器初始化,關(guān)斷所有中斷 設(shè)置 RA4,RA5 輸出/RB 口高三位輸入,采集電機(jī)三相的霍爾信號(hào)225PORTC=new(PORTB&AND)5; / 采集第一次霍爾信號(hào),并輸出相應(yīng)的信號(hào),導(dǎo)通T2CON=0X01;CCPR1L=0X0FF;CCP1CON=0X0FF;CCP2CON=0X0B;ADCON0=0X81;TMR2=0X00;TMR1H=0X00;/兩個(gè)
5、MOS管/TMR2 4 分頻/初始時(shí)PWM輸出全高/CCP1設(shè)置為PWM方式/CCP2 設(shè)置為特殊方式,以觸發(fā) AD/AD時(shí)鐘為32分頻,且AD使能,選擇AN0通道采集手 / 柄電壓/TMR2 寄存器初始化/TMR1 寄存器初始化TMR1L=0X00;T1CON=0X00;CCPR2H=0X08;CCPR2L=0X00;PR2=0XC7;ADCON1=0X02;OPTION=0XFB;TMR2ON=1;INTCON=0XD8;ADIE=1; speedcount=0x00; speed=0x7f; spe=1;sp1=1;oldstate=0x0ff; count_ts=0x08; count
6、_vol=0x00;ts=1;ADGO=1;TMR1ON=1;/TMR1 為 1 分頻/電流采樣周期設(shè)置為Tad=512卩s/PWM頻率設(shè)置為5 kHz/AD 結(jié)果左移/INT 上升沿觸發(fā)/PWM開(kāi)始工作/ 中斷設(shè)置 GIE=1,PEIE=1,RBIE=1/AD 中斷使能/ 轉(zhuǎn)速計(jì)數(shù)寄存器/ 轉(zhuǎn)速保持寄存器/ 低速標(biāo)志位/ 低速標(biāo)志位/ 初始狀態(tài)設(shè)置,區(qū)別于其他狀態(tài)/ 電流采樣 8 次 , 采集 1 次手柄/ 采樣 256次手柄 , 采集 1 次電池電壓/ 可以采集手柄值的標(biāo)志位/AD 采樣使能/CCP2 部件開(kāi)始工作/ 延時(shí)子程序 #pragma interrupt_level 1 void
7、 DELAY1(x) char x;DELAYH=x;/ 延時(shí)參數(shù)設(shè)置#asmDELAY2 MOVLW 0X06MOVWF _DELAYLDELAY1 DECFSZ _DELAYLGOTODELAY1DECFSZ _DELAYHGOTODELAY2#endasm/ 狀態(tài)采集子程序 void sample()char state1,state2,state3,x;do x=1;state1=(PORTB&AND);DELAY1(x); state2=(PORTB&AND);while(state1-state2);if(state1-oldstate!=0)oldstate=state1;sta
8、te1=(oldstate5);PORTC=newstate1; if(sp1=1)spe=1;sp1=0; else spe=0;sp1=0;speedcount2);speed=speedcount+state3;speedcount=0;/AD 采樣子程序void AD()/ 霍爾信號(hào)采集/ 當(dāng)三次采樣結(jié)果不相同時(shí)繼續(xù)采集狀態(tài)/ 看本次采樣結(jié)果是否與上次相同,不同/ 則執(zhí)行/ 將本次狀態(tài)設(shè)置為舊狀態(tài)C 口輸出相應(yīng)的信號(hào)觸發(fā)兩個(gè) MOS管/ 如果轉(zhuǎn)速很低,則 spe 置 1/ 否則, spe=0, 計(jì)轉(zhuǎn)速/speed寄存器為每256卩s加1/清AD中斷標(biāo)志位char x;ADIF=0;if
9、(ts=1)/如果為手柄采樣,則采樣手柄值CHS0=1;/選擇電流采樣通道count_vol=count_vol+1;/電池采樣計(jì)數(shù)寄存器spepid=1;/置轉(zhuǎn)速閉環(huán)運(yùn)算標(biāo)志ts=0;tsh=ADRESH;/存手柄值if(count_vol=0) / 如果電池采樣時(shí)間到,則選擇 AN2 通道,采集電池電壓CHS0=0;CHS1=1;volflag=1;x=1;DELAY1(x);ADGO=1;else if(volflag=1) / 電池采樣完畢,進(jìn)行相應(yīng)的處理else speedcount=speedcount+1; if(speedcount0x3d) sp1=1;/currenth=A
10、DRESH;curpid=1; count_ts=count_ts-1; if(count_ts=0) CHS1=0;CHS0=1;volflag=0;voltage=ADRESH;lowpower=1;/ 否則,中斷為采樣電流中斷/speedcount 寄存器加 1,作為測(cè)量轉(zhuǎn)速用/如果轉(zhuǎn)速低于1 000 000卩s/(512 卩s*3eh*3)/ 如果手柄時(shí)間到,則轉(zhuǎn)入手柄采樣通道則認(rèn)為為低速狀態(tài)CHS0=0;count_ts=0x08;ts=1;x=1;DELAY1(x);ADGO=1;/ 剎車處理子程序 void BREAKON()char x;off=0; shutdown=0; i
11、f(RB0=1) ADIE=0;INTE=0;/off 清零,如果是干擾則不復(fù)位/ 如果剎車信號(hào)為真,則停止輸出電壓/關(guān)AD中斷/ 關(guān)剎車中斷CCPR1L=FULLDUTY; / 輸出電壓 0TMR1ON=0; for(;ADGO=1;) ADIF=0; CHS0=0;/關(guān)CCP2不再觸發(fā)ADcontinue;/ 如正在采樣,則等待采樣結(jié)束 /ADIF 位清零/ 選擇通道 0 采樣手柄CHS1=0;x=1;DELAY1(x);do ADGO=1;for(;ADIF=0;)continue; ADIF=0;CCPR1L=FULLDUTY; asm(CLRWDT);tsh=(ADRESH1); w
12、hile(tshTSON|RB0=1);/off=1;/ 欠保護(hù)子程序 void POWER()char x;lowpower=0;voltage=1;if(voltage1);CCPR1L=FULLDUTY; asm(CLRWDT); while(voltageVOLON);/ 當(dāng)手柄值大于 2.2 V 或剎車仍舊繼續(xù)時(shí) ,執(zhí)行以 上語(yǔ)句/ 置復(fù)位標(biāo)志/ 電壓值換為 7 位,以利于單字節(jié)運(yùn)算/ 電池電壓小于 3*k(V) 時(shí)保護(hù)/ 電池電壓小于 35 V 時(shí)繼續(xù)保護(hù)off=1;/ 置復(fù)位標(biāo)志/ 電流環(huán)運(yùn)算子程序 void CURPI() static int curep=0x00,curek
13、=0x00,curuk=0x00;union dataint pwm;char a2;b; curpid=0; curep=curek*CURB; if(currenth=1;curek=gcur-currenth; curuk=curuk+curek*CURA-curep;/ 計(jì)算本次偏差/ 按閉環(huán) PI 運(yùn)算方式得到本次輸出結(jié)果,下/ 面對(duì)結(jié)果進(jìn)行處理if(curuk=0) / 如果輸出大于限幅值,則輸出最大電壓 curuk=THL;CCPR1L=0;CCP1X=0;CCP1Y=0;else /否則,按比例輸出相應(yīng)的高電平時(shí)間到CCPR寄存器b.pwm=THL-curuk;b.pwm8)&
14、OxOff;將 PWM寄存器的高半字節(jié)if(b.pwm&0x80!=0) CCP1X=1;else CCP1X=0;if(b.pwm&0x40!=0) CCP1Y=1;else CCP1Y=0;/ 轉(zhuǎn)速環(huán)運(yùn)算子程序 void SPEPI() static int speep=0x00,speek=0x00,speuk=0x00;int tsh1,speed1;/ 轉(zhuǎn)速寄存器定義spepid=0;/ 清轉(zhuǎn)速運(yùn)算標(biāo)志if(spe=1) speed1=0x00; / 若轉(zhuǎn)速太低,則認(rèn)為轉(zhuǎn)速為零else speed1=0x7f-speed;/ 否則計(jì)算實(shí)際轉(zhuǎn)速if(speed10) speed1=0;
15、 speep=speek*SPEB; tsh1=tsh-0x38; speek=tsh1-speed1; if(tsh1=GSPEH) tsh1=GSPEH;/ 得到計(jì)算用的手柄值/ 當(dāng)手柄值低于 1.1 V 時(shí),則認(rèn)為手柄給定為零 / 否則,計(jì)算相應(yīng)的轉(zhuǎn)速環(huán)輸出/ 限制最大轉(zhuǎn)速speuk=speuk+speek*SPEA-speep; / 計(jì)算得轉(zhuǎn)速環(huán)輸出 if(speukGCURHILO) / 轉(zhuǎn)速環(huán)輸出限制,即限制最大電流約 12 Aspeuk=GCURHILO;gcur=GCURH;else / 調(diào)速狀態(tài)時(shí)的輸出gcur=(speuk4)&0x0ff;/ 主程序 main()for(;)INIT877(); off=0; for(;off=0;)/if(curpid=1) CURPI(); else if(spepid=1) else if(lowpower=1) POWER(); else if(shutdown=1) BREAKON();
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)西洋參行業(yè)發(fā)展?jié)摿Ψ治黾巴顿Y方向研究報(bào)告
- 2025年度教育培訓(xùn)機(jī)構(gòu)場(chǎng)地租賃及教育資源共享與開(kāi)發(fā)合同
- 2025年度國(guó)內(nèi)旅游交通接送服務(wù)合同
- 2025年工地項(xiàng)目部與施工班組施工臨時(shí)用電協(xié)議書(shū)
- 2025年度金融科技產(chǎn)品獨(dú)家代理合作協(xié)議范本
- 體育先進(jìn)個(gè)人申請(qǐng)書(shū)
- 書(shū)畫院成立申請(qǐng)書(shū)
- 2025年度建筑領(lǐng)域校企合作綠色建筑技術(shù)研發(fā)合同
- 2025年度文化產(chǎn)業(yè)股東出資協(xié)議書(shū)(含知識(shí)產(chǎn)權(quán))
- 教師資格證申請(qǐng)書(shū)范文
- 馬匹寄養(yǎng)協(xié)議書(shū)
- 股權(quán)投資項(xiàng)目建議書(shū)
- 2025年北京廣播電視臺(tái)招聘(140人)歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025年中國(guó)電信集團(tuán)有限公司招聘筆試參考題庫(kù)含答案解析
- 2025年全國(guó)計(jì)算機(jī)二級(jí)等級(jí)考試全真模擬試卷及答案(共九套卷)
- 2024復(fù)工復(fù)產(chǎn)安全培訓(xùn)
- 2025中國(guó)南光集團(tuán)限公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 機(jī)加工行業(yè)安全生產(chǎn)風(fēng)險(xiǎn)辨識(shí)及控制清單
- 江蘇省蘇州市2024-2025學(xué)年第一學(xué)期八年級(jí)數(shù)學(xué)期末模擬卷(一)(無(wú)答案)
- 呼吸科護(hù)理組長(zhǎng)述職報(bào)告
- 【歷史】秦漢時(shí)期:統(tǒng)一多民族國(guó)家的建立和鞏固復(fù)習(xí)課件-2024-2025學(xué)年統(tǒng)編版七年級(jí)歷史上冊(cè)
評(píng)論
0/150
提交評(píng)論