toutestfini.asm
来自「单线温度传感器ds1820」· 汇编 代码 · 共 876 行 · 第 1/2 页
ASM
876 行
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
bsf RS_LCD
movlw b'01000010' ;b
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'9'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X81
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'01001111' ;o
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'9'
CALL WAIT_5us
BCF RS_LCD
MOVLW 0X82 ;CHOISIR L'ADDRESS
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
bsf RS_LCD
MOVLW B'01001110' ;n
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'9'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X83
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
movlw b'01001010';j
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X84
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'01001111'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X85
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'01010101'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X86
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'01010010'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
return
;=============================================
display_temp
;CHOISIR ADDRESS DE DDRAM
BCF RS_LCD
MOVLW 0X80
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
bsf RS_LCD
MOVF REG_1,0 ;ECRIR 'SIGN'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'9'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X81
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'00110000'
ADDWF REG_2,0 ;ECRIR 'PREMIER CHIFRE'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'9'
CALL WAIT_5us
BCF RS_LCD
MOVLW 0X82 ;CHOISIR L'ADDRESS
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
bsf RS_LCD
MOVLW B'00110000'
ADDWF REG_3,0 ;ECRIR 'DEUXIEME CHIFRE'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'9'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X83
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVF REG_4,0 ;ECRIR '.'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X84
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'00000000'
ADDWF REG_5,0 ;ECRIR '5'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X85
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'11011111'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X86
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'01000011'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
return
;=============================================
go_sleep
BCF RS_LCD
bsf E_LCD
MOVLW B'00000001' ;DISPLAY clear
MOVWF PORTB
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'2'
CALL WAIT_1ms
bcf VDD_LCD
;clrf PORTA
;clrf PORTB
sleep
;============================================
AFFICHE_ERROR
BCF RS_LCD
bsf E_LCD
MOVLW B'00000001' ;DISPLAY clear
MOVWF PORTB
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'2'
CALL WAIT_1ms
btfsc DS1820_SHORTED
CALL AFFICHE_E0
btfsc DS1820_SHORTED
call wait_1s
BTFSC DS1820_NO_DEVICE
CALL AFFICHE_E1
BTFSC DS1820_NO_DEVICE
call wait_1s
return
;===========================================
AFFICHE_E0
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X80
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'01000101'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X81
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'00110000'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
return
;======================================
AFFICHE_E1
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X83
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'01000101'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BCF RS_LCD ;CHOISIR ADDRESS DE DDRAM
MOVLW 0X84
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
MOVLW D'8'
CALL WAIT_5us
BSF RS_LCD
MOVLW B'00110001'
MOVWF PORTB
bsf E_LCD
MOVLW D'3'
CALL WAIT_5us
bcf E_LCD
return
;======================================
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?