人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術熱線: 4007-888-234
設計開發(fā)

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

開發(fā)工具

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

技術支持

從全面的產(chǎn)品導入到強大技術支援服務 全程貼心伴隨服務,創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

10位AD轉(zhuǎn)換成三位BCD碼的程序

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

個是10AD的轉(zhuǎn)換程序;
;入口參數(shù)是原二進數(shù),ADRESH,ADRESL,
;出口參數(shù):轉(zhuǎn)換完成數(shù)是存放在,RLT,SOUH,SOU,
;程序默認的是SELECT AN0
;相當于二字節(jié)二進制轉(zhuǎn)換成3字節(jié)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口為數(shù)字口
    MOVWF   ADCON1               ;
    BANK0                        ;選擇體零
    MOVLW    B'01000001'         ;選擇FOSC/8,允許ADC工作,但還沒有開始轉(zhuǎn)換
    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********************
;本程序?qū)崿F(xiàn)雙字節(jié)二進制數(shù)轉(zhuǎn)化為3字節(jié)壓縮BCD碼。
;入口參數(shù):原二進制數(shù)在SOUH:SOU中。
;出口參數(shù):結果在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     ;調(diào)整RLT
            MOVLW       SOUH
            MOVWF       FSR
            CALL        ADJBCD1     ;調(diào)整RLTH
            MOVLW       RLT
            MOVWF       FSR
            CALL        ADJBCD1     ;調(diào)整TEMP1
            GOTO        LOOPC1
;********************調(diào)整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;

 



万源市| 隆安县| 云安县| 湾仔区| 抚松县| 阜南县| 华阴市| 抚松县| 微博| 汉阴县| 多伦县| 溆浦县| 木里| 法库县| 新宁县| 泾阳县| 东海县| 广汉市| 陵水| 苍梧县| 蓬安县| 双鸭山市| 白玉县| 历史| 南丰县| 新丰县| 五寨县| 寿光市| 炉霍县| 富锦市| 揭东县| 台中市| 淄博市| 汉沽区| 三明市| 额敏县| 宜州市| 长治县| 湖南省| 汉沽区| 南京市|