📄 uvb_sensor.asm
字号:
RLF ACCBLO
RLF ACCBLO
CLRF N
BO_NEXTT
MOVLW B'10111001'
CALL OUTMI
CALL OUTSI
MOVF DD,W
CALL OUTSI
CALL BO
CALL OUTSD
INCF N,F
MOVLW B'10111000'
CALL OUTMI
CALL OUTSI
MOVF DD,W
CALL OUTSI
CALL BO
CALL OUTSD
INCF N,F
MOVLW B'10111011'
CALL OUTMI
CALL OUTSI
MOVF DD,W
CALL OUTSI
CALL BO
CALL OUTSD
INCF N,F
MOVLW B'10111010'
CALL OUTMI
CALL OUTSI
MOVF DD,W
CALL OUTSI
CALL BO
CALL OUTSD
;波形
BTFSC FLAGE1,0
GOTO NNNNN
CALL TIME2MS
NNNNN
MOVLW 0AFH
CALL OUTMI
CALL OUTSI
INCF DD,F
DECF FSR,F
DECFSZ COUNT,F
GOTO X2
MOVLW .16
MOVWF XIAO
XIAO1
MOVLW B'10111000'
CALL OUTMI
CALL OUTSI
MOVF XIAO,W
CALL OUTMI
MOVLW 00H
CALL OUTMD
DECFSZ XIAO,F
GOTO XIAO1
MOVLW .19
MOVWF GE
MOVLW .8
MOVWF SHI
XIAO2
MOVLW B'10111000'
CALL OUTMI
CALL OUTSI
MOVF GE,W
CALL OUTMI
MOVLW 00H
CALL OUTMD
INCF GE,F
DECFSZ SHI,F
GOTO XIAO2
MOVLW .16
MOVWF XIAO
XIAO3
MOVLW B'10111001'
CALL OUTMI
CALL OUTSI
MOVF XIAO,W
CALL OUTMI
MOVLW 00H
CALL OUTMD
DECFSZ XIAO,F
GOTO XIAO3
MOVLW .19
MOVWF GE
MOVLW .8
MOVWF SHI
XIAO4
MOVLW B'10111001'
CALL OUTMI
CALL OUTSI
MOVF GE,W
CALL OUTMI
MOVLW 00H
CALL OUTMD
INCF GE,F
DECFSZ SHI,F
GOTO XIAO4
BTFSC FLAGE1,0
GOTO AD_3503
GOTO ADDDDDD
POWER_BUZHU
BSF PORTB,4
KONG
NOP
; GOTO NOP ?????????????????????????????????????
;******************子程序0***********************************
TIME1MS
MOVLW .15
MOVWF TEMPL
TIEM1MSNN
MOVLW .5
MOVWF TEMPH
TIEM1MSN
DECFSZ TEMPH,F
GOTO TIEM1MSN
DECFSZ TEMPL,F
GOTO TIEM1MSNN
RETURN
TIME0MS
MOVLW .50
MOVWF TEMPL
TIEM0MSNN
MOVLW .5
MOVWF TEMPH
TIEM0MSN
DECFSZ TEMPH,F
GOTO TIEM0MSN
DECFSZ TEMPL,F
GOTO TIEM0MSNN
RETURN
TIME2MS
MOVLW .255
MOVWF TEMPL
TIEM2MSNN
MOVLW .15
MOVWF TEMPH
TIEM2MSN
DECFSZ TEMPH,F
GOTO TIEM2MSN
DECFSZ TEMPL,F
GOTO TIEM2MSNN
RETURN
TIMETEL
MOVF ACCBLO,W
MOVWF TMR00
TIMETELL
MOVLW .32
MOVWF TEMPL
TIEM22
MOVLW .15
MOVWF TEMPH
TIEM222
DECFSZ TEMPH,F
GOTO TIEM222
DECFSZ TEMPL,F
GOTO TIEM22
DECFSZ TMR00,F
GOTO TIMETELL
RETURN
;减法
SUB
CLRF TEMP
MOVLW 01H
SUBWF ACCBHI,W
BTFSC STATUS,DC
INCF TEMP,F
RETURN
SUB2
CLRF TEMP
MOVLW 02H
SUBWF ACCBHI,W
BTFSC STATUS,DC
INCF TEMP,F
RETURN
;******************子程序1***********************************
;乘法子程序
D_MPYS
CALL SETUP
MLOOP
RRF ACCDHI
RRF ACCDLO
BTFSC STATUS,C
CALL D_ADD
RRF ACCBHI
RRF ACCBLO
RRF ACCCHI
RRF ACCCLO
DECFSZ TEMP
GOTO MLOOP
RETLW 0
;加法子程序
D_ADD
MOVF ACCALO,W
ADDWF ACCBLO,F
BTFSC STATUS,C
INCF ACCBHI
MOVF ACCAHI,W
ADDWF ACCBHI,F
RETLW 0
SETUP
MOVLW .16
MOVWF TEMP
MOVF ACCBHI,W
MOVWF ACCDHI
MOVF ACCBLO,W
MOVWF ACCDLO
CLRF ACCBHI
CLRF ACCBLO
RETLW 0
;******************子程序2***********************************
;除法程序
D_DIVS
CALL SETUP
CLRF ACCCHI
CLRF ACCCLO
DLOOP
BCF STATUS,C
RLF ACCDLO
RLF ACCDHI
RLF ACCCLO
RLF ACCCHI
MOVF ACCAHI,W
SUBWF ACCCHI,W
BTFSS STATUS,Z
GOTO NOCHK
MOVF ACCALO,W
SUBWF ACCCLO,W
NOCHK
BTFSS STATUS,C
GOTO NOGO
MOVF ACCALO,W
SUBWF ACCCLO,F
BTFSS STATUS,C
DECF ACCCHI,F
MOVF ACCAHI,W
SUBWF ACCCHI,F
BSF STATUS,C
NOGO
RLF ACCBLO
RLF ACCBHI
DECFSZ TEMP
GOTO DLOOP
RETLW 0
;******************子程序3***********************************
;二进制变十进制
TO10
MOVLW .100
MOVWF ACCALO
CLRF ACCAHI
CALL D_DIVS
MOVF ACCBLO,W
MOVWF SHI
MOVF ACCCHI,W
MOVWF ACCBHI
MOVF ACCCLO,W
MOVWF ACCBLO
MOVLW .10
MOVWF ACCALO
CLRF ACCAHI
CALL D_DIVS
MOVF ACCBLO,W
MOVWF GE
MOVF ACCCLO,W
MOVWF XIAO
RETURN
;*******************子程序4**********************************
DELAY
LOOP0
MOVLW .75
MOVWF M
LOOP1
MOVLW .132
MOVWF N
LOOP2
DECFSZ N,F
GOTO LOOP2
DECFSZ M,F
GOTO LOOP1
RETURN
DELAY2S
MOVLW .15
MOVWF SHI
LOOP00
MOVLW .255
MOVWF M
LOOP11
MOVLW .255
MOVWF N
LOOP22
DECFSZ N,F
GOTO LOOP22
DECFSZ M,F
GOTO LOOP11
DECFSZ SHI,F
GOTO LOOP00
RETURN
;*******************子程序5**********************************
;液晶
;初始化
INTITM
MOVLW 0E2H
CALL OUTMI
CALL OUTSI
MOVLW 0AEH
CALL OUTMI
CALL OUTSI
MOVLW 0A4H
CALL OUTMI
CALL OUTSI
MOVLW 0A9H
CALL OUTMI
CALL OUTSI
MOVLW 0A0H
CALL OUTMI
CALL OUTSI
MOVLW 0EEH
CALL OUTMI
CALL OUTSI
MOVLW 00H
CALL OUTMI
CALL OUTSI
MOVLW 0C0H
CALL OUTMI
CALL OUTSI
MOVLW 0AFH
CALL OUTMI
CALL OUTSI
RETURN
;命令和数据输出
OUTMI
BANKSEL PORTB
BSF PORTB,2
BSF PORTB,2
BCF PORTB,0
BCF PORTB,0
MOVWF PORTC
MOVWF PORTC
BCF PORTB,2
BCF PORTB,2
RETURN
OUTMD
BANKSEL PORTB
BSF PORTB,2
BSF PORTB,2
BSF PORTB,0
BSF PORTB,0
MOVWF PORTC
MOVWF PORTC
BCF PORTB,2
BCF PORTB,2
RETURN
OUTSI
BANKSEL PORTB
BCF PORTB,0
BCF PORTB,0
BSF PORTB,1
BSF PORTB,1
MOVWF PORTC
MOVWF PORTC
BCF PORTB,1
BCF PORTB,1
RETURN
OUTSD
BANKSEL PORTB
BSF PORTB,0
BSF PORTB,0
BSF PORTB,1
BSF PORTB,1
MOVWF PORTC
MOVWF PORTC
BCF PORTB,1
BCF PORTB,1
RETURN
;***********************子程序6*****************************
WORD_NEXT_M
MOVF M_TEMP,W
MOVWF M
CALL WORD
CALL OUTMD
DECFSZ N,F
GOTO WORD_NEXT_M
RETURN
WORD_NEXT_S
MOVF M_TEMP,W
MOVWF M
CALL WORD
CALL OUTSD
DECFSZ N,F
GOTO WORD_NEXT_S
RETURN
;**********************子程序7******************************
BI
CLRF FLAGE
MOVF TL2,W
SUBWF TL1,F
BTFSC STATUS,C
GOTO BI1
INCF TH2,F
BI1
MOVF TH2,W
SUBWF TH1,F
BTFSC STATUS,C
GOTO BI2
MOVLW 01H
MOVWF FLAGE
BI2
RETURN
;***********************子程序******************************
SUB1
COMF ACCALO
INCF ACCALO
BTFSC STATUS,Z
DECF ACCAHI
COMF ACCAHI
RETLW 0
;***********************子程序8***************************
WORD_NEXT_W_M
MOVF M_TEMP,W
MOVWF M
CALL WORD_W
CALL OUTMD
DECFSZ N,F
GOTO WORD_NEXT_W_M
RETURN
WORD_NEXT_W_S
MOVF M_TEMP,W
MOVWF M
CALL WORD_W
CALL OUTSD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -