;***********************************************************************
;二进制转BCD码
;***********************************************************************
_BCD CLRF SHI ;保存地址清零
CLRF GE
MOVF BIN_L,F ;组合码自己给自己赋值,测试是否为0
SKPNZ ;不为0则跳到下一步
RETLW 00H
SHI_ MOVLW D'10'
SUBWF BIN_L,W ;BIN_L减10,结果存到W寄存器
BTFSS STATUS,C ;执行减法后,如果无借位
GOTO GE_
MOVWF BIN_L
INCF SHI
GOTO SHI_
GE_ MOVF BIN_L,W
MOVWF GE
RETLW 00H
;=======================================================================
;***********************************************************************
;延时200ms
;***********************************************************************
DELAY_MAX
MOVLW 0FFH
MOVWF Y1
MOVLW 0FFH
MOVWF Y2
DECFSZ Y2
GOTO $-1
DECFSZ Y1
GOTO $-5
RETLW 00H
;=======================================================================
;***********************************************************************
;延时6ms
;***********************************************************************
DELAY
MOVLW 03FH
MOVWF Y1
MOVLW 020H
MOVWF Y2
DECFSZ Y2
GOTO $-1
DECFSZ Y1
GOTO $-5
RETLW 00H
;=======================================================================
;***********************************************************************
;延时750us子程序
;***********************************************************************
DELAY_750US
MOVLW 09H
MOVWF Y1
MOVLW 01AH
MOVWF Y2
DECFSZ Y2
GOTO $-1
DECFSZ Y1
GOTO $-5
RETLW 00H
;=======================================================================
;***********************************************************************
;查表子程序,用于显示段码数字
;数码管为共阳数码管
;***********************************************************************
TABLE
ADDWF PCL,F
RETLW 0C0H ;"0"
RETLW 0F9H ;"1"
RETLW 0A4H ;"2"
RETLW 0B0H ;"3"
RETLW 99H ;"4"
RETLW 92H ;"5"
RETLW 82H ;"6"
RETLW 0F8H ;"7"
RETLW 80H ;"8"
RETLW 90H ;"9"
;=======================================================================
本文关键字:暂无联系方式ARM单片机,单片机-工控设备 - ARM单片机