日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]16F876控制的電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)源程序(1)

;16F876控制電動(dòng)自行車驅(qū)動(dòng)系統(tǒng)源程序.

;沒有鎖閉環(huán)程序。

LIST P=16F876

#INCLUDE P16F876.INC

;以下采用塊定義的方法定義單片機(jī)內(nèi)部寄存器

CBLOCK 0X20 ;自定義寄存器從0X20開始

FLAG1 ;FLAG1作為標(biāo)志寄存器

VOLTAGEH ;電池電壓高位寄存器

VOLTAGEL ;電池電壓低位寄存器

TSH ;手柄電壓高位寄存器

TSL ;手柄電壓低位寄存器

STATE1 ;霍爾信號(hào)采樣暫存器1

STATE2 ;霍爾信號(hào)采樣暫存器2

STATE3 ;霍爾信號(hào)采樣暫存器3

DELAY ;延時(shí)計(jì)數(shù)器

COUNT_VOL ;低電壓采樣次數(shù)計(jì)數(shù)器

ACCaLO ;ACCa~ACCd為運(yùn)算用的寄存器

ACCaHI

ACCbLO

ACCbHI

ACCcLO

ACCcHI

ACCdLO

ACCdHI

TEMP ;臨時(shí)寄存器

TEMP1 ;臨時(shí)寄存器(中斷用)

SIGN ;符號(hào)寄存器

COUNT ;臨時(shí)寄存器

W_STACK ;中斷時(shí)用于暫存W寄存器值

ST_STACK ;中斷時(shí)用于暫存STATUS寄存器值

ENDC

;***********標(biāo)志寄存器位定義以及程序中常數(shù)定義***********

CONSTANT VOLTAGE=0 ;采電池電壓標(biāo)志位

CONSTANT PWM=1 ;輸出下一次PWM信號(hào)標(biāo)志位

CONSTANT LOWPOWER=2 ;低電壓標(biāo)志位

CONSTANT SHUTDOWN=3 ;剎車標(biāo)志位

CONSTANT OFF=4 ;復(fù)位標(biāo)志位

CONSTANT AND=0XE0 ;AND用于獲取有效霍爾信號(hào)

CONSTANT FULLPWM=0XFF ;當(dāng)PWM輸出全高時(shí),輸入CCPR1L中的值

CONSTANT VOLOFFH=0X02 ;當(dāng)電池電壓低于24AH時(shí), 低壓保護(hù)2.86 V/31.5 V

CONSTANT VOLOFFL=0X4A

CONSTANT VOLONH=0X02 ;當(dāng)電池電壓大于266H時(shí),允許電機(jī)重開3V/33V

CONSTANT VOLONL=0X66

CONSTANT TSONH=0X01 ;剎車后手柄復(fù)位值低于133H,則允許電機(jī)重新啟動(dòng)

CONSTANT TSONL=0X33

;***復(fù)位矢量入口(單片機(jī)復(fù)位時(shí),PC指針指向程序存儲(chǔ)器0X0000單元)***

ORG 0X0000

START GOTO MAIN ;復(fù)位后程序進(jìn)入主程序

;***中斷矢量入口程序(PIC單片機(jī)的中斷矢量入口為0X0004)***

ORG 0X0004 ;中斷矢量入口

BTFSC INTCON,RBIF ;是否為RB口電平變化中斷?

GOTO SAMPLERB ;是,進(jìn)入RB口電平變化中斷服務(wù)程序

BTFSC PIR1,ADIF ;是否為AD采樣中斷

GOTO AD ;是,進(jìn)入AD中斷服務(wù)程序

BTFSC INTCON,INTF ;是否為剎車中斷

GOTO BRAKE ;是,剎車中斷處理

RETFIE ;如都不是,則中斷返回

;************逆變橋輸出控制表*************

;逆變橋輸出控制表,其輸出對(duì)應(yīng)6種狀態(tài),霍爾信號(hào)來自B口RB7、RB6、RB5,C口輸出低電平有

;效,其中RC1,RC2不作為觸發(fā)電路輸出口,故表中使其為高電平

ORG 0X0020

;表程序從0X0020單元開始存放(也可以不從這開始)

OUT_TABLE

ADDWF PCL,1

RETLW 0X0AF ;如霍爾信號(hào)為0、0、0,則使RC4、RC6為低電平

RETLW 0X0BE ;如霍爾信號(hào)為0、0、1,則使RC0、RC6為低電平

RETLW 0X0FF ;沒有為0、1、0的霍爾信號(hào)對(duì)應(yīng)電機(jī)狀態(tài)

RETLW 0X07E ;如霍爾信號(hào)為0、1、1,則使RC0、RC7為低電平

RETLW 0X0CF ;如霍爾信號(hào)為1、0、0,則使RC4、RC5為低電平

RETLW 0X0FF ;沒有為1、0、1的霍爾信號(hào)對(duì)應(yīng)電機(jī)狀態(tài)

RETLW 0X0D7 ;如霍爾信號(hào)為1、1、0則使RC3、RC5為低電平

RETLW 0X077 ;如霍爾信號(hào)為1、1、1則使RC3、RC7為低電平

;***************主程序*****************

ORG 0X0100 ;主程序從0X0100單元開始存儲(chǔ)

MAIN

MOVLW 0X0FF ;由于C口上電復(fù)位值不確定,必須先關(guān)閉所有MOS管

MOVWF PORTC

BSF STATUS,RP0 ;選擇存儲(chǔ)體1

MOVLW 0X02 ;設(shè)置RC1為輸入口,其它為輸出口,其中RC2為PWM

MOVWF TRISC ;輸出口,其它位為觸發(fā)信號(hào)輸出

BCF STATUS,RP0 ;選擇存儲(chǔ)體0

CLRF PIR1 ;清所有中斷標(biāo)志位

CLRF INTCON ;禁止所有中斷

MOVLW 0X01 ;設(shè)置TMR2預(yù)分頻值為4

MOVWF T2CON

MOVLW FULLPWM ;初始化PWM工作循環(huán)寄存器,使PWM占空比為1

MOVWF CCPR1L ;輸出電壓為零

MOVLW 0XFF ;設(shè)置CCP1工作于PWM方式

MOVWF CCP1CON

MOVLW 0X0B ;CCP2工作于特殊事件觸發(fā)方式,用作AD采樣周期寄存

MOVWF CCP2CON ;器

MOVLW 0X081 ;選擇AD轉(zhuǎn)換時(shí)鐘為32分頻,選擇AN0通道,并使AD

MOVWF ADCON0 ;轉(zhuǎn)換允許

CLRF TMR2 ;TMR2計(jì)數(shù)器清零

CLRF TMR1H ;TMR1計(jì)數(shù)器清零

CLRF TMR1L

CLRF T1CON ;TMR1預(yù)分頻為1,關(guān)閉振蕩器,工作于定時(shí)工作方式

MOVLW 0X08 ;初始化AD采樣周期寄存器,T=512 μs

MOVWF CCPR2H

MOVLW 0X00

MOVWF CCPR2L

BSF STATUS,RP0 ;選擇存儲(chǔ)體1

MOVLW 0XEF ;RB口高3位用于采樣霍爾信號(hào),RB0為剎車中斷,設(shè)置為

MOVWF TRISB ;輸入,其它未用

MOVLW 0XC7 ;初始化PWM頻率為5 kHz

MOVWF PR2

MOVLW 0X082 ;AD采樣結(jié)果右移,RA口引腳均為模擬輸入

MOVWF ADCON1

BSF OPTION_REG,INTEDG ;選擇INT在下降沿產(chǎn)生中斷

BCF STATUS,RP0

CALL SAMPLE ;確定當(dāng)前轉(zhuǎn)子位置

CALL OUTPUT ;根據(jù)采得的狀態(tài)值觸發(fā)相應(yīng)的MOSFET

MOVLW 0X0D8 ;開總中斷、外圍中斷、INT中斷和RB口電平變化中斷允

MOVWF INTCON ;許BCF

PIE2,CCP2IE ;CCP2中斷禁止

BSF PIE1,ADIE ;打開AD采樣中斷

CLRF FLAG1 ;清標(biāo)志位寄存器

CLRF COUNT_VOL ;清電池電壓采樣計(jì)數(shù)器

BSF T1CON,TMR1ON ;開CCP2,對(duì)手柄進(jìn)行等間隔采樣

BSF T2CON,TMR2ON ;開CCP1RETEST

BTFSS FLAG1,PWM ;TS采樣完畢?

GOTO NEXT1 ;沒有,轉(zhuǎn)NEXT1

CALL OUT_PWM ;TS采樣完畢,送出相應(yīng)的PWM信號(hào)

BCF FLAG1,PWM ;清PWM允許標(biāo)志NEXT1

BTFSS FLAG1,LOWPOWER;電壓采樣完畢?

GOTO NEXT2 ;沒有轉(zhuǎn)NEXT2

CALL POWER ;是,調(diào)用電壓保護(hù)子程序處理數(shù)據(jù)

BTFSC FLAG1,OFF ;是否需要復(fù)位?

GOTO MAIN ;是,單片機(jī)復(fù)位NEXT2

BTFSS FLAG1,SHUTDOWN;剎車中斷到來?

GOTO RETEST ;否,回轉(zhuǎn)RETEST

CALL BRAKEON ;是,調(diào)用剎車處理子程序

CLRWDT BTFSC FLAG1,OFF ;OFF=0?

GOTO MAIN ;否,單片機(jī)復(fù)位

GOTO RETEST ;是,回轉(zhuǎn)RETEST

;***************剎車處理子程序******************

BRAKEON

BCF FLAG1,OFF ;清復(fù)位標(biāo)志

BCF FLAG1,SHUTDOWN;是,清相應(yīng)標(biāo)志位

BTFSS PORTB,0 ;INT引腳仍為1?

RETURN ;否,中斷是由干擾引起的,返回

BSF STATUS,RP0 BCF PIE1,ADIE ;禁止AD采樣中斷

BCF STATUS,RP0 BCF INTCON,INTE ;關(guān)RB0中斷

MOVLW FULLPWM ;PWM輸出全高

MOVWF CCPR1L

BCF T1CON,TMR1ON ;關(guān)閉手柄采樣BREAK2

BTFSC ADCON0,GO ;正在進(jìn)行AD采樣?

GOTO BREAK2 ;是,等待AD采樣完畢

BCF ADCON0,CHS0

BCF ADCON0,CHS1 ;選擇0采樣通道,準(zhǔn)備采樣手柄電壓

BCF PIR1,ADIF ;清AD采樣中斷標(biāo)志位

MOVLW 0X06 ;延時(shí)

MOVWF COUNTBREAK3

DECFSZ COUNT

GOTO BREAK3BREAK5

BSF ADCON0,GO ;采樣TS值BREAK4

BTFSS PIR1,ADIF ;采樣完畢?

GOTO BREAK4

BCF PIR1,ADIF

BCF STATUS,C

MOVF ADRESH,0 ;當(dāng)前TS值送被減數(shù)

MOVWF ACCbHI

BSF STATUS,RP0

MOVF ADRESL,0

BCF STATUS,RP0

MOVWF ACCbLO

MOVLW TSONH ;1.5 V所對(duì)應(yīng)的采樣值送減數(shù)

MOVWF ACCaHI

MOVLW TSONL

MOVWF ACCaLO

CALL D_sub ;當(dāng)前TS值減1.5V

MOVLW FULLPWM

MOVWF CCPR1L

CLRWDT

BTFSS ACCbHI,7 ;當(dāng)前電壓值大于1.5V?

GOTO BREAK5 ;是,重新采樣

BTFSC PORTB,0

GOTO BREAK5

BSF FLAG1,OFF ;否,置相應(yīng)的標(biāo)志位

RETURN

;返回

;***************開環(huán)PWM輸出子程序****************

OUT_PWM

BCF FLAG1,PWM ;清相應(yīng)的標(biāo)志位

MOVF TSH,0 ;將調(diào)速手柄采樣值送至被加數(shù)

MOVWF ACCaHI

MOVF TSL,0

MOVWF ACCaLO

MOVLW 0XFF ;FF1F補(bǔ)碼為0XE1,即1.1 V

MOVWF ACCbHI

MOVLW 0X1F

MOVWF ACCbLO

CALL D_add

BTFSS ACCbHI,7 ;TS>1.1V?

GOTO PWM1 ;是,轉(zhuǎn)PWM1

MOVLW FULLPWM ;否則輸出全高

MOVWF CCPR1L

RETURN

PWM1

MOVLW 0XFD ;0X27B=3.1V

MOVWF ACCbHI

MOVLW 0X85

MOVWF ACCbLO

CALL D_add

BTFSC ACCbHI,7 ;TS>3.1V?

GOTO PWM3PWM2

CLRF CCPR1L

BCF CCP1CON,4

BCF CCP1CON,5

RETURN

PWM3

MOVLW 0X0FF ;1.1 V對(duì)應(yīng)的采樣值補(bǔ)碼送加數(shù)

MOVWF ACCbHI

MOVLW 0X1F

MOVWF ACCbLO

CALL D_add ;TS-1.1V

CLRF ACCaHI ;系數(shù)K=56=38H送乘數(shù)

MOVLW 0X3F

MOVWF ACCaLO

CALL D_mpy ;得到放大128倍的低電平時(shí)間K*(TS-1.1V)

MOVF ACCcHI,0 ;將結(jié)果取出

MOVWF ACCaHI

MOVF ACCcLO,0

MOVWF ACCaLO

MOVLW 0X64 ;PWM周期T減去低電平時(shí)間,得到高電平時(shí)間

MOVWF ACCbHI

CLRF ACCbLO

CALL D_sub

BTFSC ACCbHI,7 ;低電平時(shí)間是否大于周期?

GOTO PWM2 ;是,輸出全壓

RLF ACCbLO ;否則,輸出與低電平時(shí)間對(duì)應(yīng)的高電平時(shí)間

RLF ACCbHI

MOVF ACCbHI,0 ;D10~D2位送CCPR1L

MOVWF CCPR1L

BCF CCP1CON,5 ;D0位送CCP1CON5

BTFSC ACCbLO,7

BSF CCP1CON,5

BCF CCP1CON,4 ;D.1位送CCP1CON4

BTFSC ACCbLO,6

BSF CCP1CON,4

RETURN

;返回

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉