📄 程序完成.txt
字号:
MOVLW B'01110101' ;2.3V 2.2998V 86 0C
MOVWF DAIN1
MOVLW B'11000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T28:
;*************************************
MOVLW B'01110000' ;2.2V 2.2021V 87 0C
MOVWF DAIN1
MOVLW B'11000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T29:
;*********************************
MOVLW B'01101011' ;2.1V 2.0996V 88 0C
MOVWF DAIN1
MOVLW B'10000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T30:
;*************************************
MOVLW B'01100110' ;2.0V 2.0020V 89 0C
MOVWF DAIN1
MOVLW B'10000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T31:
;*********************************
MOVLW B'01100001' ;1.9V 1.8994V 90 0C
MOVWF DAIN1
MOVLW B'01000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T32:
;*************************************
MOVLW B'01011100' ;1.8V 1.8018V 91 0C
MOVWF DAIN1
MOVLW B'01000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T33:
;*********************************
MOVLW B'01010111' ;1.7V 1.6992V 92 0C
MOVWF DAIN1
MOVLW B'00000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T34:
;*************************************
MOVLW B'01010010' ;1.6V 1.6016V 93 0C
MOVWF DAIN1
MOVLW B'00000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T35:
;*********************************
MOVLW B'01001100' ;1.5V 1.4990V 94 0C
MOVWF DAIN1
MOVLW B'11000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T36:
;*************************************
MOVLW B'01000111' ;1.4V 1.4014V 95 0C
MOVWF DAIN1
MOVLW B'11000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T37:
;*********************************
MOVLW B'01000010' ;1.3V 1.2988V 96 0C
MOVWF DAIN1
MOVLW B'10000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T38:
;*************************************
MOVLW B'00111101' ;1.2V 1.2012V 97 0C
MOVWF DAIN1
MOVLW B'10000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T39:
;*********************************
MOVLW B'00111000' ;1.1V 1.0986V 98 0C
MOVWF DAIN1
MOVLW B'01000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T40:
;*************************************
MOVLW B'00110011' ;1.0V 1.0010V 99 0C
MOVWF DAIN1
MOVLW B'01000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T41:
;*********************************
MOVLW B'00101110' ;0.9V 0.8984V 100 0C
MOVWF DAIN1
MOVLW B'00000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T42:
;*************************************
MOVLW B'00101001' ;0.8V 0.8008V 101 0C
MOVWF DAIN1
MOVLW B'00000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T43:
;*********************************
MOVLW B'00100011' ;0.7V 0.6982V 102 0C
MOVWF DAIN1
MOVLW B'11000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T44:
;*************************************
MOVLW B'00011110' ;0.6V 0.6006V 103 0C
MOVWF DAIN1
MOVLW B'11000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T45:
;*********************************
MOVLW B'00011001' ;0.5V 0.4980V 104 0C
MOVWF DAIN1
MOVLW B'10000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T46:
;*************************************
MOVLW B'00010100' ;0.4V 0.40034V 105 0C
MOVWF DAIN1
MOVLW B'10000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T47:
;*********************************
MOVLW B'00001111' ;0.3V 0.2979V 106 0C
MOVWF DAIN1
MOVLW B'01000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T48:
;*************************************
MOVLW B'00001010' ;0.2V 0.2002V 107 0C
MOVWF DAIN1
MOVLW B'01000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T49:
;*********************************
MOVLW B'00000101' ;0.1V 0.0977V 108 0C
MOVWF DAIN1
MOVLW B'00000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*************************************
T50: ;0V 0V 109 0C OR HIGHER
;*************************************
MOVLW B'00000000'
MOVWF DAIN1
MOVLW B'00000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************
T51:
;********************************* ;5V 5V 60 0C OR LOWER
MOVLW B'11111111'
MOVWF DAIN1
MOVLW B'11000000'
MOVWF DAIN2
CALL DAC
GOTO START
;*********************************************************************
;
;*********************************************************************
D_ADD:
MOVF HOUL,0 ;ACCB和ACCA低半字节相加
ADDWF QIAHL
BTFSC STATUS,C ;有进位否?
INCF QIAHH ;有,ACCB高字节加1,再加HOUH
MOVF HOUH,0 ;ACCA、ACCB高半字节相加
ADDWF QIAHH
RETURN ;子程序返回
D_SUB:
COMF HOUL ;HOUL取反加1
INCF HOUL
BTFSC STATUS,Z ;低8位有进位吗?
DECF HOUH ;有,HOUH减1,再取反
COMF HOUH ;否则HOUH直接取反
RETURN ;子程序返回
;***********************************************************************
;
;***********************************************************************
D_DIV
CALL SETUP
CLRF ACCCHI
CLRF ACCCLO
DLOOP
BCF STATUS,CARRY
RLF ACCDLO
RLF ACCDHI
RLF ACCCLO
RLF ACCCHI
MOVF ACCAHI,W
SUBWF ACCCHI,W
BTFSS STATUS,2
GOTO NOCHK
MOVF ACCALO,W
SUBWF ACCCLO,W
NOCHK
BTFSS STATUS,CARRY
GOTO NOGO
MOVF ACCALO,W
SUBWF ACCCLO,1
BTFSS STATUS,CARRY
DECF ACCCHI
MOVF ACCAHI,W
SUBWF ACCCHI,1
BSF STATUS,CARRY
NOGO
RLF ACCBLO
RLF ACCBHI
DECFSZ TEMP,1
GOTO DLOOP
RETLW 0
SETUP
MOVLW 10H
MOVWF TEMP
MOVF ACCBHI,W
MOVWF ACCDHI
MOVF ACCBLO,W
MOVWF ACCDLO
CLRF ACCBHI
CLRF ACCBLO
RETLW 0
;***********************************************************************
;**************************************************
;********************************************************************
SET1 MACRO
BSF STATUS,RP0
BSF TRISA,DQ
BCF STATUS,RP0
ENDM
;--------------------------------------------------------------------
SET0 MACRO
BCF STATUS,RP0
BCF PORTA,DQ
BSF STATUS,RP0
BCF TRISA,DQ
BCF STATUS,RP0
ENDM
;--------------------------------------------------------------------
WAIT MACRO TIME
MOVLW (TIME/5)-1
MOVWF TMP0
CALL WAIT5U
ENDM
;*********************************************************************
WAIT5U:
NOP
NOP
DECFSZ TMP0,F
GOTO WAIT5U
RETLW 0
;********************************************************************
DA_RESET:
SET1
CLRF FLAG
SET0
WAIT D'500'
SET1
WAIT D'70'
BTFSS PORTA,DQ
INCF FLAG,1
WAIT D'430'
RETLW 0
;--------------------------------------------------------------------
WRDATA:
MOVWF DATEMP
MOVLW D'8'
MOVWF COUNT
BCF STATUS,C
WRLOOP:
SET0
NOP
NOP
NOP
NOP
NOP
RRF DATEMP,F
BTFSC STATUS,C
BSF PORTA,DQ
WAIT D'60'
SET1
NOP
NOP
DECFSZ COUNT,F
GOTO WRLOOP
RETLW 0
;-----------------------------------
REDATA:
MOVLW D'8'
MOVWF COUNT
RALOOP:
BCF STATUS,C
SET0
NOP
NOP
NOP
NOP
NOP
NOP
SET1
WAIT D'10'
MOVF PORTA,W
ANDLW B'00010000'
ADDLW D'255'
WAIT D'50'
RRF DATEMP,F
DECFSZ COUNT,F
GOTO RALOOP
RETLW 0
;****************************************************
;****************************************************
DAC
BCF STATUS,RP1
BCF STATUS,RP0
CLRF PORTC
BSF STATUS,RP0
MOVLW H'00'
MOVWF TRISC
BCF STATUS,RP0
;*****************************************************
BCF PORTC,1
BSF PORTC,2
NOP
NOP
NOP
BCF PORTC,2
MOVLW 08H
MOVWF COUNT1
MOVF DAIN1,0
MOVWF TDATA
CALL WRDATA2
;****************
MOVLW 04H
MOVWF COUNT1
MOVF DAIN2,0
MOVWF TDATA
CALL WRDATA2
BCF PORTC,1
BSF PORTC,2
RETURN
WRDATA2:
NOP
LOOP:
BCF PORTC,1
RLF TDATA,1
BTFSS STATUS,C
GOTO SET00
GOTO SET11
SET11:
BSF PORTC,0
GOTO OUT
SET00: BCF PORTC,0
OUT:
BSF PORTC,1
DECFSZ COUNT1,1
GOTO LOOP
RETURN
;******************************************************************************
DELAY:
MOVLW 0FFH
MOVWF H'20'
LP0: MOVLW 0FFH
MOVWF 21H
LP1: DECFSZ 21H,F
GOTO LP1
DECFSZ 20H,F
GOTO LP0
RETURN
DELAYY:
LP33:
MOVLW D'10'
MOVWF H'43'
LP22:
MOVLW D'130'
MOVWF H'41'
LP00:
MOVLW 0FFH
MOVWF H'42'
LP11 DECFSZ 42H,F
GOTO LP11
DECFSZ 41H,F
GOTO LP00
DECFSZ 43H,F
GOTO LP22
BSF PORTB,5
DECFSZ 44H,F
GOTO LP33
RETURN
;*********************
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -