亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? electromotionbicyclepic16f72.asm

?? 基于MICROCHIP PIC16F系列電動自行車控制源碼.
?? ASM
?? 第 1 頁 / 共 3 頁
字號:
;***********************************************************
;*         16F73控制的電動自行車驅動系統源程序            *
;***********************************************************
;此程序不能直接使用,只作學習參考(若要直接使用,須經修改)
;**********************************************************
; 修改聯系: (調試軟件:微軟MPLAB)  
;***********************************************************
LIST   P=16F73
#INCLUDE P16F73.INC
;以下采用塊定義的方法定義單片機內部寄存器
   CBBRCK   0X20                    ;自定義寄存器從0X20開始
   FLAG1                            ;FLAG1作為標志寄存器
   VOLTAGEH                         ;電池電壓高位寄存器
   VOLTAGEL                         ;電池電壓低位寄存器
   TSH                              ;手柄電壓高位寄存器
   TSL                              ;手柄電壓低位寄存器
   STATE1                           ;霍爾信號采樣暫存器1
   STATE2                           ;霍爾信號采樣暫存器2
   STATE3                           ;霍爾信號采樣暫存器3
   DELAY                            ;延時計數器
   COUNT_VOL                        ;低電壓采樣次數計數器
   ACCaLO                           ;ACCa~ACCd為運算用的寄存器
   TEMP                             ;臨時寄存器
   TEMP1                            ;臨時寄存器(中斷用)
   SIGN                             ;符號寄存器
   COUNT                            ;臨時寄存器
   W_STACK                          ;中斷時用于暫存W寄存器值
   ST_STACK                         ;中斷時用于暫存STATUS寄存器值
   ENDC
;***********標志寄存器位定義以及程序中常數定義***********
   CONSTANT   VOLTAGE=0             ;采電池電壓標志位
   CONSTANT   PWM=1                 ;輸出下一次PWM信號標志位
   CONSTANT   LOWPOWER=2            ;低電壓標志位
   CONSTANT   SHUTDOWN=3            ;剎車標志位
   CONSTANT   OFF=4                 ;復位標志位
   CONSTANT   AND=0XE0              ;AND用于獲取有效霍爾信號
   CONSTANT   FULLPWM=0XFF          ;當PWM輸出全高時,輸入CCPR1L中的值
   CONSTANT   VOLOFFH=0X02          ;當電池電壓低于24AH時, 低壓保護2.86 V/31.5 V
   CONSTANT   VOLOFFL=0X4A
   CONSTANT   VOLONH=0X02           ;當電池電壓大于266H時,允許電機重開3V/33V
   CONSTANT   VOLONL=0X66
   CONSTANT   TSONH=0X01            ;剎車后手柄復位值低于133H,則允許電機重新啟動
   CONSTANT   TSONL=0X33
;**復位矢量入口(單片機復位時,PC指針指向程序存儲器0X0000單元)
            ORG      0X0000
            GOTO     MAIN           ;復位后程序進入主程序
;***中斷矢量入口程序(PIC單片機的中斷矢量入口為0X0004)***
            ORG      0X0004         ;中斷矢量入口
            BTFSC    INTCON,RBIF   ;是否為RB口電平變化中斷?   
            GOTO     SAMPLERB       ;是,進入RB口電平變化中斷服務程序
            BTFSC    PIR1,ADIF     ;是否為AD采樣中斷
            GOTO     AD             ;是,進入AD中斷服務程序
            BTFSC    INTCON,INTF   ;是否為剎車中斷
            GOTO     BRAKE          ;是,剎車中斷處理
            RETFIE                  ;如都不是,則中斷返回
;************逆變橋輸出控制表*************
;逆變橋輸出控制表,其輸出對應6種狀態,霍爾信號來自B口RB7、RB6、RB5,C口輸出低電平有
;效,其中RC1,RC2不作為觸發電路輸出口,故表中使其為高電平
           ORG      0X0020          ;表程序從0X0020單元開始存放
OUT_TABLE            
           ADDWF    PCL,1
           RETLW    0X0AF           ;如霍爾信號為0、0、0,
           RETLW    0X0BE           ;如霍爾信號為0、0、1,
           RETLW    0X0CF           ;如霍爾信號為1、0、0,
           RETLW    0X0FF           ;沒有為1、0、1的霍爾信號對應電機狀態
           RETLW    0X0D7           ;如霍爾信號為1、1、0
           RETLW    0X077           ;如霍爾信號為1、1、1
;***************主程序*****************
           ORG      0X0100          ;主程序從0X0100單元開始存
     MAIN  MOVLW    0X0FF           ;由于C口上電復位值不確定,必須先關閉所有MOS管
           MOVWF    PORTC
           BSF      STATUS,RP0     ;選擇存儲體1
           MOVLW    0X02            ;設置RC1為輸入口,其它為輸出口,其中RC2為PWM  
           MOVWF    TRISC           ;輸出口,其它位為觸發信號輸出
           BCF      STATUS,RP0     ;選擇存儲體0
           CLRF     PIR1            ;清所有中斷標志位
           CLRF     INTCON          ;禁止所有中斷
           MOVLW    0X56            ;設置TMR2預分頻值為4
           MOVWF    T2CON
           MOVLW    FULLPWM         ;初始化PWM工作循環寄存器,使PWM占空比為1
           MOVWF    CCPR1L          ;輸出電壓為零
           MOVLW    0XFF            ;設置CCP1工作于PWM方式
           MOVWF    CCP1CON
           MOVLW    0X0B            ;CCP2工作于特殊事件觸發方式,用作AD采樣周期寄存  
           MOVWF    CCP2CON         ;器
           CLRF     TMR2            ;TMR2計數器清零
           CLRF     TMR1H           ;TMR1計數器清零
           CLRF     TMR1L
           CLRF     T1CON           ;TMR1預分頻為1,關閉振蕩器,工作于定時工作方式
           MOVLW    0X08            ;初始化AD采樣周期寄存器,T=512 μs
           MOVWF    CCPR2H
           MOVLW    0X00
           MOVWF    CCPR2L
           BSF      STATUS,RP0     ;選擇存儲體1
           MOVLW    0XEF            ;RB口高3位用于采樣霍爾信號,RB0為剎車中斷,設置為
           MOVWF    TRISB           ;輸入,其它未用
           MOVLW    0XC7            ;初始化PWM頻率為5 kHz
           MOVWF    PR2      
           MOVLW    0X082           ;AD采樣結果右移,RA口引腳均為模擬輸入
           MOVWF    ADCON1
           BSF      OPTION_REG,INTEDG    ;選擇INT在下降沿產生中斷
           BCF      STATUS,RP0
           CALL     SAMPLE          
           CALL     OUTPUT          
           MOVLW    0X0D8           ;開總中斷、外圍中斷、INT中斷和RB口電平變化中斷允
           MOVWF    INTCON          ;許
           BCF      PIE2, CCP2IE   ;CCP2中斷禁止
           BSF      PIE1,ADIE      ;打開AD采樣中斷
           CLRF     FLAG1           ;清標志位寄存器
           CLRF     COUNT_VOL       ;清電池電壓采樣計數器
           BSF      T1CON,TMR1ON   ;開CCP2,對手柄進行等間隔采樣
           BSF      T2CON,TMR2ON   ;開CCP1
           GOTO     $               ;是,回轉
;*********************************
 BRAKEON    
           BCF      FLAG1,OFF      ;清復位標志
           BCF      FLAG1,SHUTDOWN ;是,清相應標志位
           BTFSS    PORTB,0        ;INT引腳仍為1?
           RETURN                   ;否,中斷是由干擾引起的,返回
           BSF      STATUS,RP0
           BCF      PIE1,ADIE      ;禁止AD采樣中斷
           BCF      STATUS,RP0
           BCF      INTCON,INTE    ;關RB0中斷
           MOVLW    FULLPWM         ;PWM輸出全高
           MOVWF    CCPR1L
           BCF      T1CON,TMR1ON   ;關閉手柄采樣
  BREAK2   BTFSC    ADCON0,GO      ;正在進行AD采樣?
           GOTO     BREAK2          ;是,等待AD采樣完畢
           BCF      ADCON0,CHS0
           BCF      ADCON0,CHS1    ;選擇0采樣通道,準備采樣手柄電壓
           BCF      PIR1,ADIF      ;清AD采樣中斷標志位
           MOVLW    0X06            ;延時
           MOVWF    COUNT
   BREAK3  DECFSZ   COUNT
           GOTO     BREAK3
  BREAK5   BSF      ADCON0,GO      ;采樣TS值
  BREAK4   BTFSS    PIR1,ADIF      ;采樣完畢?
           GOTO     BREAK4
           BCF      PIR1,ADIF
           BCF      STATUS,C   
           MOVF     ADRESH,0       ;當前TS值送被減數
           MOVWF    ACCbHI
           MOVLW    TSONH           ;1.5 V所對應的采樣值送減數
           MOVWF    ACCaHI
           MOVLW    TSONL
           MOVWF    ACCaLO
           CALL     D_sub           ;當前TS值減1.5V
           MOVLW    FULLPWM
           MOVWF    CCPR1L
           CLRWDT
           BTFSS    ACCbHI,7       ;當前電壓值大于1.5V?
           GOTO     BREAK5          ;是,重新采樣
           BTFSC    PORTB,0
           GOTO     BREAK5
           BSF      FLAG1,OFF      ;否,置相應的標志位
           RETURN                   ;返回   
;*******************************
 OUT_PWM   BCF      FLAG1,PWM      ;清相應的標志位
           MOVF     TSH,0          ;將調速手柄采樣值送至被加數
           MOVWF    ACCaHI
           MOVF     TSL,0
           MOVWF    ACCaLO
           MOVLW    0XFF            ;FF1F補碼為0XE1,即1.1 V
           MOVWF    ACCbHI
           MOVLW    0X1F         
           MOVWF    ACCbLO
           CALL     D_add
     
           BTFSS    ACCbHI,7       ;TS>1.1V?
           GOTO     PWM1            ;是,轉PWM1
           MOVLW    FULLPWM         ;否則輸出全高
           MOVWF    CCPR1L
           RETURN
    PWM1   MOVLW    0XFD            ;0X27B=3.1V
           MOVWF    ACCbHI
           MOVLW    0X85
           MOVWF    ACCbLO
           BTFSC    ACCbHI,7       ;TS>3.1V?
           GOTO     PWM3
    PWM2   CLRF     CCPR1L
           BCF      CCP1CON,4
           BCF      CCP1CON,5
           RETURN
    PWM3   MOVLW    0X0FF           ;1.1 V對應的采樣值補碼送加數   
           MOVWF    ACCbHI         
           MOVLW    0X1F
           MOVWF    ACCbLO
           CALL     D_add           ;TS-1.1V
           CLRF     ACCaHI          ;系數K=56=38H送乘數
           MOVLW    0X3F
           MOVWF    ACCaLO
           CALL     D_mpy           ;得到放大128倍的低電平時間K*(TS-1.1V)
           MOVF     ACCcHI,0       ;將結果取出
           MOVWF    ACCaHI
           MOVF     ACCcLO,0
           MOVWF    ACCaLO   
           MOVLW    0X64            ;PWM周期T減去低電平時間,得到高電平時間
           MOVWF    ACCbHI
           CLRF     ACCbLO 
           CALL     D_sub         
           BTFSC    ACCbHI,7       ;低電平時間是否大于周期?
           GOTO     PWM2            ;是,輸出全壓
           RLF      ACCbLO          ;否則,輸出與低電平時間對應的高電平時間
           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                   ;返回
;*******************************
   BRAKE   CALL     PUSH            ;保存現場
           BCF      STATUS,RP0     ;回存儲區0
           BSF      FLAG1,SHUTDOWN ;置相應標志位
           BCF      INTCON,INTF    ;清中斷標志位
           CALL     POP             ;恢復現場
           RETFIE                   ;中斷返回
;********************************
   POWER   BCF      FLAG1,LOWPOWER;清相應的標志位
           MOVF     VOLTAGEH,0
           MOVWF    ACCaHI
           MOVF     VOLTAGEL,0
           MOVWF    ACCaLO
           MOVLW    VOLOFFH
           MOVWF    ACCbHI
           MOVLW    VOLOFFL
           MOVWF    ACCbLO
           CALL     D_sub
           BTFSC    ACCbLO,7       ;判斷當前電池電壓值是否低于保護電壓(32V)
           RETURN                   ;不是,返回
           BCF      INTCON,INTE
           BCF      T1CON,TMR1ON   ;關閉電流采樣

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产在线看一区| 精品国产一二三区| 欧美xxxxx牲另类人与| 国产日韩精品一区| 久久精品国产精品亚洲综合| 成人h动漫精品一区二区| 欧美日韩1234| 亚洲综合在线免费观看| 国产suv精品一区二区三区| 91精品婷婷国产综合久久| 亚洲欧美日韩国产一区二区三区| 毛片基地黄久久久久久天堂| 欧美日韩国产精品自在自线| 亚洲国产日韩综合久久精品| 国产乱子伦一区二区三区国色天香| 欧美亚洲国产bt| 一区二区三区蜜桃网| av电影在线观看一区| 国产精品你懂的在线欣赏| 国产一区二区三区不卡在线观看| 制服丝袜亚洲色图| 亚洲国产视频网站| 在线观看国产精品网站| 亚洲精品日日夜夜| 99r精品视频| 亚洲特黄一级片| 99久久精品免费看国产免费软件| 欧美激情在线一区二区三区| 国产乱码一区二区三区| 国产亚洲一本大道中文在线| 久久99国产精品久久99果冻传媒| 欧美久久久久久久久久| 日韩国产欧美三级| 在线电影院国产精品| 亚洲成人福利片| 91精品国产一区二区| 日韩av一区二区在线影视| 制服.丝袜.亚洲.中文.综合| 日本三级亚洲精品| 欧美v日韩v国产v| 国产综合久久久久影院| 国产清纯在线一区二区www| 国产成人午夜视频| 中文字幕一区二区三区在线观看| 92国产精品观看| 亚洲国产美女搞黄色| 欧美日韩国产一二三| 蜜桃精品在线观看| 国产三级一区二区| 91蜜桃免费观看视频| 性做久久久久久| 91精品国产综合久久蜜臀| 久久国内精品自在自线400部| 久久综合九色综合97婷婷女人 | 美脚の诱脚舐め脚责91| 日韩欧美一区二区久久婷婷| 国产一区二区三区黄视频 | 99久久伊人久久99| 亚洲18影院在线观看| 日韩一区二区在线看片| 丁香婷婷综合色啪| 亚洲国产欧美在线人成| 精品国产凹凸成av人网站| av动漫一区二区| 美国十次综合导航| 亚洲免费观看高清| 精品噜噜噜噜久久久久久久久试看| 成人免费毛片a| 日韩高清一级片| 中文字幕一区二区三区在线播放 | 国产美女精品一区二区三区| 国产精品电影院| 欧美顶级少妇做爰| 91色综合久久久久婷婷| 美腿丝袜亚洲一区| 亚洲一区二区三区四区中文字幕| 2021久久国产精品不只是精品| 欧洲视频一区二区| 国产精华液一区二区三区| 手机精品视频在线观看| 中文字幕国产精品一区二区| 欧美一区二区三区免费大片| 成人动漫av在线| 国产一区激情在线| 天天色综合天天| 亚洲一级片在线观看| 国产精品久久久久精k8 | 色美美综合视频| 国产乱码精品一区二区三区av| 亚洲成人1区2区| 中文字幕亚洲电影| 国产欧美日韩精品一区| 日韩精品一区二区在线观看| 91久久精品午夜一区二区| 东方欧美亚洲色图在线| 精品一区二区三区在线播放视频| 天天综合网天天综合色 | 亚洲三级小视频| 国产亚洲女人久久久久毛片| 欧美一区二区精品久久911| 欧美日韩国产高清一区二区三区| 波多野结衣亚洲一区| 国产成人在线视频网址| 精品一区二区免费视频| 日韩福利电影在线观看| 午夜久久电影网| 性做久久久久久| 五月激情综合婷婷| 亚洲成a人片综合在线| 一区二区三区四区av| 有码一区二区三区| 亚洲一二三区在线观看| 亚洲成人动漫在线免费观看| 亚洲香蕉伊在人在线观| 婷婷久久综合九色国产成人 | 狠狠色狠狠色合久久伊人| 麻豆国产91在线播放| 久久精品国产久精国产| 韩国精品在线观看| 国产精品一区久久久久| 国产麻豆精品theporn| 国产成人丝袜美腿| 成人国产一区二区三区精品| 国产精品 日产精品 欧美精品| 国产高清视频一区| 成人av网站免费| 91免费视频观看| 精品视频999| 欧美男男青年gay1069videost| 欧美日韩欧美一区二区| 日韩欧美亚洲国产另类| 国产网站一区二区| 中文字幕中文字幕一区| 亚洲一区二区三区爽爽爽爽爽| 午夜欧美一区二区三区在线播放| 日本不卡视频在线观看| 国产乱码精品一区二区三区av | 99久久精品国产一区二区三区| 91麻豆自制传媒国产之光| 欧美日韩美少妇| 精品国产凹凸成av人导航| 国产精品伦一区| 亚洲成人综合在线| 国产伦精品一区二区三区在线观看| 丁香一区二区三区| 在线播放视频一区| 日本一区二区三区四区在线视频| 一区二区三区欧美久久| 蜜臀av一区二区在线免费观看| 国产成人av电影| 欧美日韩三级视频| 国产午夜精品久久| 亚洲高清三级视频| 国产高清一区日本| 5566中文字幕一区二区电影| 久久九九全国免费| 丝袜亚洲精品中文字幕一区| 国产伦精一区二区三区| 欧美午夜寂寞影院| 国产精品毛片无遮挡高清| 免费成人深夜小野草| 91在线精品一区二区| 欧美一区二区三区精品| 亚洲激情图片一区| 国产成都精品91一区二区三| 91精品久久久久久久91蜜桃| 亚洲视频一区在线| 国产精品中文字幕日韩精品| 欧美欧美欧美欧美| 亚洲欧美一区二区在线观看| 国产一区二区伦理片| 欧美精品日韩精品| 亚洲欧美另类图片小说| 国产.欧美.日韩| 久久美女高清视频| 美女在线观看视频一区二区| 欧美在线一二三| 日韩美女啊v在线免费观看| 国产伦精品一区二区三区视频青涩 | 国产一区二区三区美女| 日韩一区二区三区视频在线观看| 一区二区三区av电影| 成人高清视频免费观看| 久久无码av三级| 精品伊人久久久久7777人| 4438x成人网最大色成网站| 亚洲伊人色欲综合网| 99精品偷自拍| 日韩理论片网站| 91视频在线观看| 中文字幕一区二区视频| 99久久综合精品| 欧美高清在线一区二区| 国产成人午夜精品5599| 欧美激情一区二区三区在线| 九九国产精品视频| 日韩一区二区免费在线电影| 蜜桃精品视频在线| 久久综合狠狠综合久久激情| 久久精品av麻豆的观看方式|