久久久国产精品视频袁燕,99re久久精品国产,亚洲欧美日韩国产综合v,天天躁夜夜躁狠狠久久,激情五月婷婷激情五月婷婷

  • 回復(fù)
  • 收藏
  • 點(diǎn)贊
  • 分享
  • 發(fā)新帖

利用廢控制器做的測(cè)速器

春節(jié)期間閑來(lái)沒(méi)事,用廢控制器(PIC16F72版)做了一個(gè)測(cè)電機(jī)轉(zhuǎn)速的東東.

原理是:檢測(cè)單位時(shí)間內(nèi)的霍耳換相數(shù),再換算成每分鐘轉(zhuǎn)速.因目前市面上有32\40\46\56\70片磁鋼的電機(jī),只能用外部切換選擇了.

、硬件約定:

RB口對(duì)應(yīng)7段輝光管,BIT0-A……BIT6-G,不用小數(shù)點(diǎn).

 

RC口對(duì)應(yīng)位,動(dòng)態(tài)顯示,BIT7-千位……BIT4-個(gè)位.

 

RA口對(duì)應(yīng)電機(jī)選擇:

                  000-32片磁鋼

                  001-40片磁鋼

                  010-46片磁鋼

                  011-56片磁鋼

                  100-70片磁鋼

RA口之3用來(lái)輸入霍耳信號(hào),RA口之4用來(lái)輸出采樣周期信號(hào),以調(diào)試程序。

下面是用匯編語(yǔ)言做的:

;電動(dòng)車無(wú)刷電機(jī)測(cè)速程序,動(dòng)態(tài)驅(qū)動(dòng)輝光管4只。
;用中斷時(shí)間來(lái)控制采樣周期,0.5--1秒刷新一次,預(yù)計(jì)精度為千分之一。

    PROCESSOR 16F72
    #INCLUDE
; RAM_VARIABLE
LS_1   EQU  0X25   ;臨時(shí)寄存器
LS_2   EQU  0X26
LS_3   EQU  0X27
LS_4   EQU  0X28
LS_5   EQU  0X29
LS_6   EQU  0X2A
LS_7   EQU  0X2B
LS_8   EQU  0X2C
LS_9   EQU  0X2D
LJIA_1   EQU  0X2E
LJIA_2   EQU  0X2F
LJIA_3   EQU  0X30
LJIA_4   EQU  0X31      ;數(shù)據(jù)累加寄存器
XIANS_1   EQU  0X32  
XIANS_2   EQU  0X33  
XIANS_3   EQU  0X34    
XIANS_4   EQU  0X35      ;顯示寄存器
DFEN_1    EQU  0X36      ;動(dòng)態(tài)分配寄存器
FLAG      EQU  0X37      ;標(biāo)旗寄存器
LS_INT1  EQU  0X39    ;中斷保護(hù)寄存器1
LS_INT2  EQU  0X3A    ;中斷保護(hù)寄存器2
JS_INT1  EQU  0X3B    ;中斷計(jì)數(shù)器1
JS_INT2  EQU  0X3C    ;中斷計(jì)數(shù)器2
JS_INT3  EQU  0X3D    ;中斷計(jì)數(shù)器3
; =========================================================
        ORG    0X000
        NOP
        GOTO   PROGRAM
       
        ORG    0X4
        GOTO   ZHONGDUAN

        ORG    0X6
PROGRAM    ;程序開始
        CALL   CSH
        CLRWDT
LOOP5   CALL   SHONGX
        CALL   DINPOT_0
        BTFSC  FLAG,0
        GOTO   LOOP5
        CALL   ALLADD
        BTFSC  FLAG,3        ;單\雙計(jì)數(shù)選擇
        CALL   ALLADD
LOOP6   CALL   SHONGX
        CALL   DINPOT_1
        BTFSS  FLAG,1
        GOTO   LOOP6
        CALL   ALLADD
        BTFSC  FLAG,3        ;單\雙計(jì)數(shù)選擇
        CALL   ALLADD
        GOTO   LOOP5
        ORG    0X20
;===============================================================
CHABIAO     ;查表
        MOVWF  PCL
        RETLW  0X3F          ;00111111
        RETLW  0X6           ;00000110
        RETLW  0X5B          ;01011011
        RETLW  0X4F          ;01001111
        RETLW  0X66          ;01100110
        RETLW  0X6D          ;01101101
        RETLW  0X7D          ;01111101
        RETLW  0X7           ;00000111
        RETLW  0X7F          ;01111111
        RETLW  0X6F          ;01101111
        RETLW  0X79          ;01111001    ,E,表示超出量程
        RETLW  0X79
;==================================================================
CSH  ;初始化
        BCF    STATUS,RP0      ;體0
        CLRF   PORTA
        CLRF   PORTB
        CLRF   PORTC
        CLRF   CCP1CON        ;CCP模塊設(shè)置(禁用)
        BSF    STATUS,RP0     ;體1
        CLRF   PIE1         ;外設(shè)中斷禁止
        MOVLW  0XDF
        MOVWF  TRISA
        CLRF   TRISB
        CLRF   TRISC        ;I/O口設(shè)置
        MOVLW  0X88
        MOVWF  OPTION_REG         ;分頻器設(shè)定
        MOVLW  0X7
        MOVWF   ADCON1          ;A口全設(shè)為數(shù)字口
        BCF    STATUS,RP0      ;體0
        CLRF   T1CON
        CLRF   SSPCON     ;串口禁止
        CLRF   CCPR1L
        MOVLW  0X5C
        MOVWF  0X22
        MOVLW  0X23
        MOVWF  FSR
LOOP1   CLRF   INDF       ;通用寄存器清零
        INCF   FSR,F
        DECFSZ 0X22,F
        GOTO   LOOP8
        BCF    STATUS,RP0
        MOVLW  0X80
        MOVWF  ADCON0     ;AD設(shè)置
        CLRF   TMR0
        MOVLW  0XA0
        MOVWF  INTCON    ;中斷設(shè)置
        RETURN
;================================================================
SHONGX   ;送顯
        INCF   DFEN_1,F      ;動(dòng)態(tài)分配寄存器
        MOVLW  0X1
        SUBWF  DFEN_1,W
        BTFSC  STATUS,Z
        GOTO   ZT_1
        MOVLW  0X2
        SUBWF  DFEN_1,W
        BTFSC  STATUS,Z
        GOTO   ZT_2
        MOVLW  0X3
        SUBWF  DFEN_1,W
        BTFSC  STATUS,Z
        GOTO   ZT_3
        GOTO   ZT_4
ZT_1     ;狀態(tài)1,個(gè)位送顯
        MOVF   XIANS_1,W
        ADDLW  0X21
        CALL   CHABIAO
        MOVWF  PORTB
        MOVLW  0X10
        MOVWF  PORTC
        RETURN
ZT_2     ;狀態(tài)2,十位送顯
        MOVF   XIANS_2,W
        ADDLW  0X21
        CALL   CHABIAO
        MOVWF  PORTB
        MOVLW  0X20
        MOVWF  PORTC
        RETURN
ZT_3     ;狀態(tài)3,百位送顯
        MOVF   XIANS_3,W
        ADDLW  0X21
        CALL   CHABIAO
        MOVWF  PORTB
        MOVLW  0X40
        MOVWF  PORTC
        RETURN
ZT_4     ;狀態(tài)4,千位送顯
        MOVF   XIANS_4,W
        ADDLW  0X21
        CALL   CHABIAO
        MOVWF  PORTB
        MOVLW  0X80
        MOVWF  PORTC
        CLRF   DFEN_1
        RETURN
;======================================================
DINPOT_0     ;讀輸入信號(hào),0有效
        MOVLW   0x8           ;連續(xù)判斷8次                  
        MOVWF   LS_1                            
        CLRF    LS_2   
LOOP_1                         
        BTFSS   PORTA, 3                          
        INCF    LS_2, F                          
        DECFSZ  LS_1, F                        
        GOTO    LOOP_1                            
        MOVLW   0x8                             
        SUBWF   LS_2, W                         
        BTFSS   STATUS, Z                       
        GOTO    LOOP_2
        BCF     FLAG,0        ;表示讀入0
        RETURN
LOOP_2
        BSF     FLAG,0        ;表示讀入1 
        RETURN
;========================================================
DINPOT_1     ;讀輸入信號(hào),1有效
        MOVLW   0x8           ;連續(xù)判斷8次                  
        MOVWF   LS_3                            
        CLRF    LS_4   
LOOP_3                         
        BTFSC   PORTA, 3                          
        INCF    LS_4, F                          
        DECFSZ  LS_3, F                        
        GOTO    LOOP_3                            
        MOVLW   0x8                             
        SUBWF   LS_4, W                         
        BTFSS   STATUS, Z                       
        GOTO    LOOP_4
        BSF     FLAG,1        ;表示讀入1
        RETURN
LOOP_4
        BCF     FLAG,1        ;表示讀入0 
        RETURN 
;==========================================================
ALLADD      ;信號(hào)累集
        INCF    LJIA_1,F
        MOVLW   0XA
        SUBWF   LJIA_1,W
        BTFSS   STATUS,C
        RETURN
        INCF    LJIA_2,F     ;滿十進(jìn)一
        CLRF    LJIA_1
        MOVLW   0XA
        SUBWF   LJIA_2,W
        BTFSS   STATUS,C
        RETURN
        INCF    LJIA_3,F     ;滿百進(jìn)一
        CLRF    LJIA_2
        MOVLW   0XA
        SUBWF   LJIA_3,W
        BTFSS   STATUS,C
        RETURN
        INCF    LJIA_4,F     ;滿千進(jìn)一
        CLRF    LJIA_3
        MOVLW   0XA
        SUBWF   LJIA_4,W
        BTFSS   STATUS,C      ;上萬(wàn)則顯示故障
        RETURN
        MOVLW   0XB
        MOVWF   LJIA_4
        RETURN 
;========================================================
ZHONGDUAN       ;中斷
        MOVWF  LS_INT1
        SWAPF  STATUS,W
        BCF    STATUS,RP0
        MOVWF  LS_INT2        ;現(xiàn)場(chǎng)保護(hù)
        CLRWDT
        MOVF   PORTA,W
        ANDLW  0X7
        MOVWF  LS_5
        BTFSC  STATUS,Z
        GOTO   XUANZ_32
        MOVLW  0X1
        SUBWF  LS_5,W
        BTFSC  STATUS,Z
        GOTO   XUANZ_40
        MOVLW  0X2
        SUBWF  LS_5,W
        BTFSC  STATUS,Z
        GOTO   XUANZ_46
        MOVLW  0X3
        SUBWF  LS_5,W
        BTFSC  STATUS,Z
        GOTO   XUANZ_56
        MOVLW  0X4
        SUBWF  LS_5,W
        BTFSC  STATUS,Z
        GOTO   XUANZ_70
        GOTO   XUANZ_46        ;電機(jī)選擇
;-------------------------------------------------------------
XUANZ_32    ;32片磁鋼電機(jī)
        MOVLW  0X39
        MOVWF  LS_6
        MOVLW  0X38
        MOVWF  LS_7
        BSF    FLAG,3         ;單\雙計(jì)數(shù)選擇
        GOTO   JISHU          ;開始計(jì)數(shù)
XUANZ_40    ;40片磁鋼電機(jī)
        MOVLW  0X2D
        MOVWF  LS_6
        MOVLW  0XC7
        MOVWF  LS_7
        BSF    FLAG,3         ;單\雙計(jì)數(shù)選擇
        GOTO   JISHU          ;開始計(jì)數(shù)
XUANZ_46    ;46片磁鋼電機(jī)
        MOVLW  0X27
        MOVWF  LS_6
        MOVLW  0XCE
        MOVWF  LS_7
        BSF    FLAG,3         ;單\雙計(jì)數(shù)選擇
        GOTO   JISHU          ;開始計(jì)數(shù)
XUANZ_56    ;56片磁鋼電機(jī)
        MOVLW  0X20
        MOVWF  LS_6
        MOVLW  0XB3
        MOVWF  LS_7
        BSF    FLAG,3         ;單\雙計(jì)數(shù)選擇
        GOTO   JISHU          ;開始計(jì)數(shù)
XUANZ_70    ;70片磁鋼電機(jī)
        MOVLW  0X34
        MOVWF  LS_6
        MOVLW  0X51
        MOVWF  LS_7
        BCF    FLAG,3         ;單\雙計(jì)數(shù)選擇
        GOTO   JISHU          ;開始計(jì)數(shù)
;------------------------------------------------------------
JISHU      ;開始計(jì)數(shù)  
        BTFSC  FLAG,2         ;計(jì)數(shù)器滿期標(biāo)記
        GOTO   CAIJIXH        ;采集信號(hào) 
        INCF   JS_INT1,F
        BTFSS  STATUS,Z
        GOTO   HFXC           ;1號(hào)計(jì)數(shù)未滿,返回
        INCF   JS_INT2,F        ;2號(hào)計(jì)數(shù)        
        MOVF   LS_6,W
        SUBWF  JS_INT2,W
        BTFSS  STATUS,C
        GOTO   HFXC           ;2號(hào)計(jì)數(shù)未滿,返回 
        BSF    FLAG,2         ;2號(hào)計(jì)數(shù)已滿,打上標(biāo)記
        GOTO   HFXC
;-----------------------------------------------------------
CAIJIXH    ;采集信號(hào)
        INCF   JS_INT1,F
        MOVF   LS_7,W
        SUBWF  JS_INT1,W
        BTFSS  STATUS,C
        GOTO   HFXC            ;1號(hào)計(jì)數(shù)余數(shù)未滿,返回
        MOVF   LJIA_1,W
        MOVWF  XIANS_1
        MOVF   LJIA_2,W
        MOVWF  XIANS_2
        MOVF   LJIA_3,W
        MOVWF  XIANS_3
        MOVF   LJIA_4,W
        MOVWF  XIANS_4
        CLRF   LJIA_1
        CLRF   LJIA_2
        CLRF   LJIA_3
        CLRF   LJIA_3
        CLRF   JS_INT1
        CLRF   JS_INT2
        BCF    FLAG,2         ;所用的計(jì)數(shù)器,標(biāo)記位復(fù)位
        BTFSC  PORTA,5        ;用于驗(yàn)證采樣周期
        GOTO   LOOP_9
        BSF    PORTA,5
        GOTO   HFXC
LOOP_9  BCF    PORTA,5      
HFXC    BCF    INTCON,2   ;恢復(fù)現(xiàn)場(chǎng),出棧
        SWAPF  LS_INT2,W
        MOVWF  STATUS
        SWAPF  LS_INT1,F
        SWAPF  LS_INT1,W
        RETFIE
        END
            

 

全部回復(fù)(0)
正序查看
倒序查看
現(xiàn)在還沒(méi)有回復(fù)呢,說(shuō)說(shuō)你的想法
發(fā)