版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、#include <pic168xa.h>/2008.4.24-14點(diǎn) 00 分#include <math.h>#include <stdlib.h>int charge_delay,jm,lkk,trial,run_num,protect_num;char m,n,k,s,L,tri;char hall_num;/ 循環(huán)次數(shù)char hall_number;/1+3+2+10+8+9=33( 一個(gè)循環(huán)和 ), hallless_protect() int pwm_hi; / pwm 占空比上限int pwm_cycle; / pwm 周期int pwm_
2、lo;/ pwm 占空比下限 ,由 A/D 結(jié)果確定int pwm_real; / pwm 占空比實(shí)際int ad_result; / A/D 轉(zhuǎn)換結(jié)果bit ghy,run_flag; / 運(yùn)行標(biāo)志 -0 ,未運(yùn)行,停止bit flag_autohand; /開始為 自動(dòng)void delay(delay_num)int delay_num;int j;for (j=delay_num;j>1;j-)asm("nop");union adresint y1;unsigned char adre2;adresult;void para_chushihua()protec
3、t_num=0; trial=0b10110000; tri=0x00;lkk=10; hall_num=0x00; hall_number=0x00;/ 運(yùn)行標(biāo)志 -0,未運(yùn)行,停止/開始為自動(dòng)/ pwm 周期/ pwm 占空比上限/ pwm 占空比上限r(nóng)un_flag=0;flag_autohand=1;pwm_cycle= 240;/ pwm_hi=pwm_cycle-5;pwm_hi=pwm_cycle-1;pwm_real=pwm_cycle; / 實(shí)際 pwm 占空比為 pwm 周期上限 pwm_lo=0x0A; / 設(shè) 定 下 限 + void nointerupt_chushi
4、hua() /禁止中斷INTCON=0X00;void Io_chushihua()/ ADCON1=0x8e; ADCON1=0x86; TRISA =0x09;護(hù))-輸出 ,0-不保護(hù) ,1-保護(hù);/RA0/AN0-VOLTAGE 電壓采樣 ,右對齊 1 /設(shè)定 RA0-RA6 設(shè)定為 I/O 口;/RA0-PROTECT 保護(hù)(電流保護(hù)和過溫保0->>10->>/RA1 -PSW1,繼電器,輸出,0,電源接通 /RA2 指示燈 ,輸出/RA3 按鍵,加,輸入 /RA4 指示燈 ,輸出/RA5RSW1, 繼電器,輸出 0,軟啟充電PORTA二PORTA&0x
5、09;RA1=0,-輸出低電平,PSW1,繼電器斷/RA2=0,-/RA4=0, 輸輸出出低低電電平平,指指示燈滅/RA5=0,-輸出低電平,RSW1,繼電器斷RBPU=0;/RB 端口內(nèi)部弱上拉電路禁止TRISB =0xfe;/RB7=1, 空 輸入/RB6=1HA, 輸入/RB5=1HB, 輸入RB4=1-HC,輸入 /RB3=1 停,輸入,按鈕 /RB2=1 啟,輸入,按鈕 /RB1=1 自/手選擇,輸入,開關(guān) RB0=0-ST/STOP,輸出,控制 GALPORTB=PORTB&0xfe; /RB0=0,輸出低電平,禁止 GAL 輸出TRISC =0x02;PORTC=0x06
6、; /RC7-A1+,PWMA1+, 輸出/RC6-A1, 輸出/RC5-B1+,輸出/RC4-B1,輸出/RC3-C1+, 輸出/RC2-CCP1(PWM), 輸出 ,死區(qū) /RC1減,輸入,按鈕/RC0-C1,輸出0000void protect()GIE=0; pwm_real=pwm_hi;CCPR1L=pwm_real;CCPR1H=0x00;CCP1CON=0x0c;PR2=pwm_cycle;TRISC=TRISC&0xfb;T2CON=0x00;TMR2ON=1;PORTC=0x00;PORTB=PORTB&0xfe;GAL 輸出/過流和過溫保護(hù)/關(guān)全局中斷/P
7、WM_realPWM 實(shí)時(shí)值/設(shè)置 PWM 輸出為最大/CCP1 選擇為 PWM 工作方式/設(shè)置 PWM 的周期/設(shè)置 RC2-PWM 輸出/分頻系數(shù) =0x00/啟用 TMR2/RB0=0,輸出低電平,禁止while(1)PORTA=0b00010100;delay(15000); /延時(shí) void protect_run()GIE=0; pwm_real=pwm_hi; CCPR1L=pwm_real;CCPR1H=0x00;CCP1CON=0x0c;PR2=pwm_cycle;TRISC=TRISC&0xfb;T2CON=0x00;TMR2ON=1;PORTC=0x00; POR
8、TB=PORTB&0xfe;GAL 輸出while(1)IIPORTAA=0b00010000;PORTAA=0b00000100;/過流和過溫保護(hù)II關(guān)全局中斷IIPWM_realPWM 實(shí)時(shí)值II設(shè)置PWM輸出為最大IIIICCP1 選擇為 PWM 工作方式II設(shè)置PWM的周期II設(shè)置RC2-PWM輸出II分頻系數(shù)=0x00啟用TMR2IIIIRB0=0, 輸出低電平,禁止IIRA4 閃動(dòng)IIRA2 閃動(dòng)delay(15000);II延時(shí)IIPWM_realPWM 實(shí)時(shí)值II設(shè)置PWM輸出為最大IIIICCP1 選擇為 PWM 工作方式II設(shè)置PWM的周期II設(shè)置RC2-PWM輸出
9、II分頻系數(shù)=0x00啟用TMR2II開環(huán)運(yùn)行50次,啟動(dòng)IIHA,HB,HC,II1 01, B-C+IIII延時(shí)IIHA,HB,HC,II1 0 0, A+B-void PWM_chushihua()II CCPR1L=0xa0;II CCPR1H=0x00;run_num=0; pwm_real=pwm_hi;CCPR1L=pwm_real;CCPR1H=0x00; CCP1CON=0x0c;PR2=pwm_cycle;TRISC=TRISC&0xfb; T2CON=0x00;TMR2ON=1;void open_loopf()k=0b00011000;II5s=PORTC&am
10、p;0b00000110; PORTC=k|s;delay(8000);k=0b10010000;II4s=PORTC&0b00000110;PORTC=k|s;delay(8000);k=0b10000001; /6 s=PORTC&0b00000110;PORTC=k|s;delay(8000);k=0b00100001; /2 s=PORTC&0b00000110;PORTC=k|s;delay(8000);k=0b01100000; /3 s=PORTC&0b00000110;PORTC=k|s;delay(8000);k=0b01001000; /1
11、s=PORTC&0b00000110;PORTC=k|s;delay(8000);/延時(shí)/HA,HB,HC,/1 1 0, C-A+ /延時(shí)/HA,HB,HC,/0 1 0, B+C- /延時(shí)/HA,HB,HC,/0 1 1, A-B+ /延時(shí)/HA,HB,HC,/0 0 1, C+A- /延時(shí)void interrupt RB4_int()char th;run_num+;if(run_num>10) run_num=10;m=PORTB; /RB7-HA,RB5-HB,RB4-HCm&=0xB0; mA=0x90;/A=/A,B=B,C=/C n=m>>4
12、;switch(n)/case 1: k=0b01001000;break;/case 3: k=0b01100000;break;/case 2: k=0b00100001;break;/case 10:k=0b10000001;break;/case 8: k=0b10010000;break;/case 9: k=0b00011000;break;/default:k=0b00000000;無效case 1: k=0b00011000;break;case 3: k=0b01001000;break;case 2: k=0b01100000;break;case 10:k=0b00100
13、001;break;case 8: k=0b10000001;break;case 9: k=0b10010000;break; default:k=0b00000000;/1 0 1 1/1 1/HA,HB,HC,/0 0 1, C+A-/0 1 1, A-B+/0 1 0, B+C-/1 1 0, C-A+/1 0 0, A+B-/1 0 1, B-C+/其它(000,111),0x00輸出為/101, B-C+/001, C+A-/011, A-B+/010, B+C-/110, C-A+/10 0, A+B-/其它(000,111),0x00輸出為無/取 RC1,RC2 狀態(tài) /輸出
14、PORTC /RB7=0 /RB5=0 /RB4=0/每 20 次測試一次/if (lkk>2) lkk-;else/每 20 次測試一次s=PORTC&0b00000110;PORTC=k|s;if (RB7=0) trial&=0b00110000; if (RB5=0) trial&=0b10010000; if (RB4=0) trial&=0b10100000; if (lkk>1) lkk-;/ tri=n;/ if (tri&=0b00001000)=0) trial&=0b00110000; /RB7=0 / tri=
15、n;/if (tri&=0b00000010)=0) trial&=0b10010000; /RB5=0/ tri=n;/if (tri&=0b00000001)=0) trial&=0b10100000; /RB4=0/關(guān)全局中斷/PWM_realPWM 實(shí)時(shí)值/設(shè)置 PWM 輸出為最大/CCP1 選擇為 PWM 工作/設(shè)置 PWM 的周期/設(shè)置 RC2-PWM 輸出/分頻系數(shù) =0x00/ 啟用 TMR2/RB0=0, 輸出低電平,/RA4 閃動(dòng)while(trial!=0b00000000)GIE=0; pwm_real=pwm_hi; CCPR1L=pw
16、m_real; CCPR1H=0x00; CCP1CON=0x0c;方式PR2=pwm_cycle; TRISC=TRISC&0xfb; T2CON=0x00; TMR2ON=1;PORTC=0x00; PORTB=PORTB&0xfe;禁止 GAL 輸出while(1)PORTAWbOOOIOOOO;for (jm=15000;jm>1;jm-) asm("nop");trial=0b10110000;lkk=10;RBIF=0;void max_min_compare()if (pwm_real>pwm_hi) pwm_real=pwm_hi
17、; if (pwm_real<pwm_lo) pwm_real=pwm_lo;main(void)para_chushihua(); nointerupt_chushihua(); Io_chushihua(); PWM_chushihua(); RA1=0;通電源RA5=0;電路充電延時(shí)RA2=0;RA4=0;delay(100);RB0=0;止 GAL 輸出/參數(shù)初始化/禁止中斷初始化/I/O 初始化/PWM 初始化/RA1-PSW1 發(fā)送低電平 ,接/RA5-RSW1 發(fā)送低電平 ,主/RA2 ,指示燈滅/RA4 ,指示燈滅/主電路充電延時(shí)ST/(-STOP)發(fā)送低電平,禁dela
18、y(100);RA1=1; 通電源for(charge_delay=0;charge_delay<50;charge_delay+)/RA1-PSW1 發(fā)送高電平 ,接delay(15000);RA5=1;電路充電延時(shí) delay(100);PP: asm(" nop");RBIF=0;標(biāo)志設(shè)定RBIE=0;定GIE=0;RA2=0;RA4=0;run_flag=0;while(run_flag=0)if (RB2=0) run_flag=1; delay(100);while(run_flag=1)int ope;int openloopn;RB0=1;放 GAL
19、輸出delay(100);RA4=1;/ pwm_real=180;pwm_real=230;/RA5-RSW1 發(fā)送高電平 ,主/主電路充電延時(shí)/禁止 RB4-7 中斷 ,清 RBIF/禁止RB4-7中斷,RBIE設(shè)/關(guān)全局中斷/RA2 ,指示燈滅/RA4 ,指示燈滅/運(yùn)行標(biāo)志 -由 RB2 按鈕設(shè)置 / 主程序 /RB2 啟動(dòng)鍵,低電平有效/運(yùn)行標(biāo)志 -由 RB2 按鈕設(shè)置/延時(shí)/運(yùn)行,則執(zhí)行 /設(shè)定開環(huán)運(yùn)行次數(shù)為 12 次/ST/(-STOP)發(fā)送高電平,開/延時(shí)delay(500);/ ope=10;ope=3;/延時(shí)/設(shè)/設(shè)定定開開環(huán)環(huán)運(yùn)運(yùn)行行次次數(shù)數(shù)為為2020次次for (ope
20、nloopn=0;openloopn<=ope;openloopn+)0000000000000000CCPR1L=pwm_real; 130open_loopf();/000000000000000000delay(6000);RBIF=0;RBIE=1;GIE=1;RA2=1;pwm_real=pwm_hi;ghl: asm(" nop");/ 設(shè)置開環(huán)下 PWM 輸出值/開環(huán)運(yùn)行 20 次,啟動(dòng)/延時(shí)/RB4-7 中斷 ,RBIF 標(biāo)志設(shè)定 /RB4-7 中斷 ,RBIE 設(shè)定 /開全局中斷/if (pwm_real<110)&&(run_
21、num<10)/如果 pwm_real<140,但是run_num<10親明未動(dòng),貝U一-/protect_run();protect_run();while(RA0=1)delay(150); protect_num+; if(protect num>30)如果 溫和過流保護(hù)軟件濾波)protect(); protect_num=0;/RA0=1, 過流和過溫保護(hù)/調(diào)用延時(shí)程序/30次保護(hù),貝認(rèn)為是真正保護(hù)(過 /過流和過溫保護(hù)/if(RB1=1) flag_autohand=1; else flag_autohand=0;if (flag_autohand=1)/自 /手標(biāo)志設(shè)定,標(biāo)志設(shè)定/RB1=1-AUTO;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)學(xué)美容紋眉技術(shù)培訓(xùn)
- 2026年智能酒品AI設(shè)備維護(hù)系統(tǒng)項(xiàng)目營銷方案
- 醫(yī)用耗材行業(yè)產(chǎn)業(yè)鏈分析
- 醫(yī)療資源整合與醫(yī)療服務(wù)能力提升策略與實(shí)踐
- 醫(yī)療人工智能法律監(jiān)管
- 智能康復(fù)輔助技術(shù)發(fā)展
- 醫(yī)療設(shè)備行業(yè)投資環(huán)境分析
- 核電安全培訓(xùn)考題課件
- 杜邦安全培訓(xùn)課件
- 《GB 14050-2008 系統(tǒng)接地的型式及安全技術(shù)要求》專題研究報(bào)告
- 廣東省珠海市斗門區(qū) 2024-2025學(xué)年九年級上學(xué)期期末道德與法治試題(含答案)
- 工作簡歷模板
- 北京石景山區(qū)2023-2024學(xué)年第一學(xué)期初三期末數(shù)學(xué)試卷
- 湖南省長沙市雨花區(qū)2023-2024學(xué)年五年級上學(xué)期語文期末考試試卷
- DZ∕T 0207-2020 礦產(chǎn)地質(zhì)勘查規(guī)范 硅質(zhì)原料類(正式版)
- 箱式房拆方案
- YS-T 650-2020 醫(yī)用氣體和真空用無縫銅管
- 總承包工程技術(shù)標(biāo)述標(biāo)匯報(bào)
- TY/T 4001.1-2018汽車自駕運(yùn)動(dòng)營地建設(shè)要求與開放條件
- GB/T 19022-2003測量管理體系測量過程和測量設(shè)備的要求
- 人工智能與教育的深度融合課件
評論
0/150
提交評論