|
發表於 2010-3-30 21:23:56
|
顯示全部樓層
以下這段參考看看,不過是使用組合語言寫的.
之前作一個電壓偵測時從AD接收到轉換用的
用C的好處是方便可攜,但程式一大效能就變很差.
用組語效能好程式快,但寫起來辛苦多了,看各人使用吧
; BIN2BCD : 輸入:hex_abc 輸出:a_bIT,B_BIT,c_bit 影饗:R5 -
;輸入16進制轉成百十個3個位數輸出-
;輸入hex_abc 輸出a_bit百位 b_bit十位 c_bit個位-
BIN2BCD: ;
mov hex_abc,A
;MOV HEX_ABC,#0FH
MOV R5,#8
CLR A
MOV b_bit,A
MOV a_bit,A
BLOOP: MOV A,hex_abc ; RLC hex_abc
RLC A
MOV hex_abc,A
MOV A,b_bit ; A <-- RLC R3
ADDC A,b_bit
DA A ; R3 <-- A的BCD碼
MOV b_bit,A
MOV A,a_bit ; A <-- RLC R4
ADDC A,a_bit
DA A ; R4 <-- A的BCD碼
MOV a_bit,A
DJNZ R5,BLOOP
bcdtobcd:
mov a,b_bit
mov b,#10H ;16進制高位地位分离
div ab
mov b_bit,a ;十位在a
mov c_bit,b ;個位在b
;JMP LIST_VOL
ret |
|