《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > PIC單片機的BCD碼加法程序

PIC單片機的BCD碼加法程序

2009-01-16
關鍵詞: PIC 源代碼

PIC單片機的BCD碼加法程序

;*******************  Unsigned BCD Addition   ***************
;
;       This routine performs a 2 Digit Unsigned BCD Addition
; It is assumed that the two BCD numbers to be added are in
; locations Num_1 & Num_2. The result is the sum of Num_1+Num_2
; and is stored in location Num_2 and the overflow carry is returned
; in location Num_1
;
;   Performance :
;               Program Memory  :       25
;               Clock Cycles    :       17   ( worst case )
;
;*******************************************************************;
;
Num_1   equ     8       ; Overflow flow carry overwrites Num_1
result  equ     8
;
Num_2   equ     9       ; Num_2 + Num_1 overwrites Num_2
O_flow  equ     9
;
;
 include         "picreg.h"
;
BCDAdd  movf    Num_1,W
 clrf    Num_1           ;clear num_1
 addwf   Num_2,1         ; do binary addition
 btfsc   STATUS,C        ;< 256 then skip
 goto    inc_n1n2        ;else inc all
 movlw   66              ;add 66
 addwf   Num_2,1         ;/
 btfss   STATUS,DC       ;half carry?
 goto    sub_06          ;no then subtract
 btfss   STATUS,C        ;full carry?
 goto    sub_60          ;yes then subtract
inc_n1  incf    Num_1,1         ;inc it
 retlw   0               ;clr w
sub_06  btfss   STATUS,C        ;full carry
 goto    sub_66          ;yes subtract 66
 movlw   6               ;else subtract 6
 goto    sub_com         ;do common
sub_66  movlw   66             
sub_com subwf   Num_2,1                  
 retlw   0
sub_60  movlw   60
 goto    sub_com
inc_n1n2
 movlw   66
 addwf   Num_2,1
 goto    inc_n1
;
;********************************************************************
;               Test Program
;*********************************************************************
main    movlw   99
 movwf   Num_1      ; Set Num_1 = 99 ( max BCD digit )
 movlw   99
 movwf   Num_2      ; Set Num_2 = 99
;
 call    BCDAdd     ; After addition, Num_2 = 98
;                          ;  and Num_1 = 01 ( 99+99 = 198 -> max number )
;
self    goto    self
;
;
 org     1FF
 goto    main
;
 END

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 亚洲宅男天堂在线观看无病毒 | 两个小姨子完整版| 日韩在线播放全免费| 亚洲制服丝袜精品久久| 波多野结衣456| 伊人久久大香线蕉avapp下载 | 在线播放免费播放av片| 一本伊大人香蕉高清在线观看| 无人视频在线观看免费播放影院| 久久天天躁狠狠躁夜夜av| 杨幂精品国产专区91在线| 亚洲国产日韩a在线播放| 欧美肥老太肥506070| 亚洲黄色小说网| 男男gvh肉在线观看免费| 动漫精品动漫一区三区3d| 美女邪恶色动图gig27报| 国产一级又色又爽又黄大片| 香蕉久久夜色精品升级完成| 国产成人精品123区免费视频| 一级一级女人真片| 国产精品毛片一区二区| 91色在线观看| 国产青草视频在线观看| 97久久精品无码一区二区天美| 夜夜偷天天爽夜夜爱| 亚洲美女又黄又爽在线观看| 精品国偷自产在线视频| 又粗又大又猛又爽免费视频| 老司机午夜精品视频在线观看免费| 国产三香港三韩国三级不卡 | 欧美在线视频免费观看| 亚洲欧洲专线一区| 欧美电影一区二区三区| 亚洲欧美久久精品| 欧美精品v国产精品v日韩精品| 亚洲精品无码久久久久秋霞| 波多野结衣av无码久久一区 | 特级毛片a级毛片在线播放www| 做受视频60秒试看 | 足恋玩丝袜脚视频免费网站|