天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

專注差異化嵌入式產品解決方案 給智能產品定制注入靈魂給予生命

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

10位AD轉換成三位BCD碼的程序

更新時間: 2019-03-26
閱讀量:2082

個是10AD的轉換程序;
;入口參數是原二進數,ADRESH,ADRESL,
;出口參數:轉換完成數是存放在,RLT,SOUH,SOU,
;程序默認的是SELECT AN0
;相當于二字節二進制轉換成3字節BCD
;
;

    LIST  P=16F877;
    INCLUDE  


TEMP1   EQU    21H;
TEMP2   EQU    22H;
TEMP3   EQU    23H;
CNT     EQU    50H;
SOU     EQU    76H;
SOUH    EQU    77H;
RLT     EQU    78H;
  
BANK3 MACRO                       ;
BSF STATUS,RP0                   ;
BSF STATUS,RP1                   ;
ENDM                             ;
BANK2 MACRO                       ;
BCF STATUS,RP0                   ;
BSF STATUS,RP1                   ;
ENDM                             ;
BANK1 MACRO                       ;
BSF STATUS,RP0                   ;
BCF STATUS,RP1                   ;
ENDM                             ;
BANK0 MACRO                       ;
BCF STATUS,RP0                   ;
BCF STATUS,RP1                   ;
ENDM                             ;

 ORG   0000
    NOP;
    GOTO  AAAA
MIAN
    BANK1;
    MOVLW   B'00000010'          ;左對齊方式,標準,RA全部口為模擬的,RE口為數字口
    MOVWF   ADCON1               ;
    BANK0                        ;選擇體零
    MOVLW    B'01000001'         ;選擇FOSC/8,允許ADC工作,但還沒有開始轉換
    MOVWF    ADCON0              ;
    BSF      ADCON0,GO           ;START ADC GO
    BTFSS    PIR1,ADIF;
    GOTO     $-1;
    MOVF     ADRESH,0;
    MOVWF    SOUH;
    BANK1;
    MOVF     ADRESL,0;
    MOVWF    SOU;
    BANK0;
AAAA

 CLRF     SOU;
    CLRF     SOUH;
    MOVLW    56H;
    MOVWF    SOU;
    MOVLW    3FH;
    MOVWF    SOUH;
    CALL     DBTBCD;
    
    GOTO     $
  

;********************DBTBCD********************
;本程序實現雙字節二進制數轉化為3字節壓縮BCD碼。
;入口參數:原二進制數在SOUH:SOU中。
;出口參數:結果在RLT:SOUH:SOU中。
;占用資源:W,STATUS,FSR,023H,024H,025H,026H,028H,029,02AH,兩重堆棧。

DBTBCD      MOVF        SOU,W
            MOVWF       TEMP2
            MOVF        SOUH,W
            MOVWF       TEMP3
            CLRF        SOU
            CLRF        SOUH
            CLRF        RLT
            BCF         STATUS,C
            MOVLW       .16
            MOVWF       CNT
LOOPC1      RLF         TEMP2,F

  RLF         TEMP3,F
            RLF         SOU,F
            RLF         SOUH,F
            RLF         RLT,F
            DECFSZ      CNT,F
            GOTO        ADJDEC1        
            RETURN           ;整個子程序結束
ADJDEC1     MOVLW       SOU
            MOVWF       FSR
            CALL        ADJBCD1     ;調整RLT
            MOVLW       SOUH
            MOVWF       FSR
            CALL        ADJBCD1     ;調整RLTH
            MOVLW       RLT
            MOVWF       FSR
            CALL        ADJBCD1     ;調整TEMP1
            GOTO        LOOPC1
;********************調整BCD********************

ADJBCD1     MOVLW       03H
            ADDWF       INDF,W      ;低四位加3
            MOVWF       TEMP1       ;暫存
            BTFSC       TEMP1,3     ;結果大于7,
            MOVWF       INDF        ;則存起來
            MOVLW       30H
            ADDWF       INDF,W      ;高四位加3
            MOVWF       TEMP1              
            BTFSC       TEMP1,7     ;結果大于7,
            MOVWF       INDF        ;則存起來
           RETURN
       END;

 



联系我们: 浦城县| 景东| 噶尔县| 喀什市| 洱源县| 望城县| 彰武县| 大姚县| 临洮县| 双鸭山市| 攀枝花市| 北川| 柘荣县| 都江堰市| 竹溪县| 香格里拉县| 元谋县| 永昌县| 新竹县| 高密市| 桐柏县| 东台市| 阳泉市| 从化市| 牙克石市| 扶绥县| 临泽县| 灵石县| 石台县| 皮山县| 苏州市| 平阴县| 罗江县| 苏尼特左旗| 花垣县| 阳江市| 裕民县| 阜城县| 滦平县| 汉中市| 醴陵市|