PIC单片机的BIN码转BCD码

嵌入式设计应用

133人已加入

描述

PIC单片机的BIN码转BCD码

;
;********************************************************************
;                  Binary To BCD Conversion Routine
;      This routine converts a 16 Bit binary Number to a 5 Digit
; BCD Number. This routine is useful since PIC16C55 & PIC16C57
; have  two 8 bit ports and one 4 bit port ( total of 5 BCD digits)
;
;       The 16 bit binary number is input in locations H_byte and
; L_byte with the high byte in H_byte.
;       The 5 digit BCD number is returned in R0, R1 and R2 with R0
; containing the MSD in its right most nibble.
;
;   Performance :
;               Program Memory  :       35
;               Clock Cycles    :       885
;
;*******************************************************************;
;
count  equ      16
temp   equ      17
;
H_byte  equ     10
L_byte  equ     11
R0      equ     12              ; RAM Assignments
R1      equ     13
R2      equ     14
;
 include         "picreg.h"
;
B2_BCD  bcf     STATUS,0                ; clear the carry bit
 movlw   .16
 movwf   count
 clrf    R0
 clrf    R1
 clrf    R2
loop16  rlf     L_byte
 rlf     H_byte
 rlf     R2
 rlf     R1
 rlf     R0
;
 decfsz  count
 goto    adjDEC
 RETLW   0
;
adjDEC  movlw   R2
 movwf   FSR
 call    adjBCD
;
 movlw   R1
 movwf   FSR
 call    adjBCD
;
 movlw   R0
 movwf   FSR
 call    adjBCD
;
 goto    loop16
;
adjBCD  movlw   3
 addwf   0,W
 movwf   temp
 btfsc   temp,3          ; test if result > 7
 movwf   0
 movlw   30
 addwf   0,W
 movwf   temp
 btfsc   temp,7          ; test if result > 7
 movwf   0               ; save as MSD
 RETLW   0
;
;********************************************************************
;               Test Program
;*********************************************************************
main    movlw   0FF
 movwf   H_byte
 movwf   L_byte          ; The 16 bit binary number = FFFF
 call    B2_BCD          ; After conversion the Decimal Number
;                               ; in R0,R1,R2 = 06,55,35
;
self    goto    self
;
 org     1FF
 goto    main
;
 END

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • BCD

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分