專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命
提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享
從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!
個(gè)是10AD的轉(zhuǎn)換程序;
;入口參數(shù)是原二進(jìn)數(shù),ADRESH,ADRESL,
;出口參數(shù):轉(zhuǎn)換完成數(shù)是存放在,RLT,SOUH,SOU中,
;程序默認(rèn)的是SELECT AN0口
;相當(dāng)于二字節(jié)二進(jìn)制轉(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' ;左對(duì)齊方式,標(biāo)準(zhǔn),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é)二進(jìn)制數(shù)轉(zhuǎn)化為3字節(jié)壓縮BCD碼。
;入口參數(shù):原二進(jìn)制數(shù)在SOUH:SOU中。
;出口參數(shù):結(jié)果在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 ;整個(gè)子程序結(jié)束
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 ;結(jié)果大于7,
MOVWF INDF ;則存起來
MOVLW 30H
ADDWF INDF,W ;高四位加3
MOVWF TEMP1
BTFSC TEMP1,7 ;結(jié)果大于7,
MOVWF INDF ;則存起來
RETURN
END;