GOGOGO高清完整国语,GOGOGO在线观看免费观看完整版高清,GOGOGO免费高清完整,GOGOGO高清在线观看免费视频,GOGOGO日本高清国语完整,GOGOGO免费高清完整版

技術熱線: 4007-888-234

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

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

個是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;

 



欢迎光临: 图木舒克市| 咸阳市| 临澧县| 耒阳市| 清水县| 九龙城区| 阜新市| 林西县| 东宁县| 北宁市| 土默特右旗| 区。| 日喀则市| 托里县| 涞水县| 大兴区| 泽普县| 安乡县| 调兵山市| 杨浦区| 临泽县| 昌宁县| 滁州市| 北宁市| 南澳县| 肥西县| 图木舒克市| 黎川县| 元氏县| 凯里市| 铅山县| 张北县| 定西市| 泌阳县| 固阳县| 博湖县| 东明县| 肃南| 南安市| 石嘴山市| 庆云县|