;******************************** BCD ********************************
LOOP1
CALL DISP ;调用显示子程序
MOVLW 8
MOVWF COUNTER ;循环左移计数器置8
CLRF BUFFER ;清除缓冲器
MOVF DIGIT,W
MOVWF BUFFER1
LOOP2
RLF BUFFER1,1 ;二进制数转换成BCD码(以便显示)
RLF BUFFER,1
DECFSZ COUNTER,1 ;左移8次
GOTO ADJUST ;
MOVFW BUFFER
MOVWF DISPBUF ;是否有进位(即已达100),如已计数到100则
GOTO ADC
;GOTO MAIN
ADJUST
MOVLW 3 ;二进制转BCD的调整
ADDWF BUFFER,W ;每次移位后都检查低四位LSD+3是否大于7
MOVWF SUM
BTFSC SUM,3
MOVWF BUFFER
MOVLW 30H
ADDWF BUFFER,W ;如果是则再加3,否则不加。
MOVWF SUM
BTFSC SUM,7
MOVWF BUFFER ;接着再将高四位MSD作相同处理
GOTO LOOP2
;******************************** 显示程序 ***************************
DISP
CLRF HB
MOVLW 0C8H ; 送入199至W,
SUBWF DIGIT,W ; F-W
BTFSC STATUS,C ; 检测C是否出现借位
GOTO HB200 ; F>199,百位数显示2
MOVLW 64H ; F<199,再送99至W
SUBWF DIGIT,W ; F-W
BTFSC STATUS,C ; 检测C是否出现借位
GOTO HB100 ; 199>F>99,百位数显示1
GOTO DISP10 ; F<99,百位不显示
HB200 MOVLW 2H
MOVWF HB ;百位显示数移入寄存器
GOTO DISP100
HB100 MOVLW 1H
MOVWF HB ;百位显示数移入寄存器
DISP100 MOVLW 0FFH ;显示百位
本文关键字:暂无联系方式PIC单片机,单片机-工控设备 - PIC单片机
上一篇:PIC选型简单介绍