⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 温度值处理模块.txt

📁 ds1820不带数据校验的数据采集程序,已通过编译
💻 TXT
字号:
;***********************************************************************
;工作内存及常数定义
;***********************************************************************
DATAL      DATA 26H
DATAH      DATA 27H
DATAA      DATA 70H
DATAB      DATA 71H
DATAC      DATA 72H
DATAD      DATA 73H
TEMPHC     DATA 28H
TEMPLC     DATA 29H
DATAHEAD   EQU  36H
;***********************************************************************
;引脚定义
;***********************************************************************
TEMPDIN    BIT P3.0
SDDIN      BIT P3.1
SDCS       BIT P3.2
SDCLOCK    BIT P3.3
TSDISTING  BIT P3.4
;***********************************************************************
;中断向量区
;***********************************************************************
ORG 0000H
LJMP START
;***********************************************************************
;系统初始化
;***********************************************************************
        ORG 100H
START:  SETB TSDISTING
        MOV R0,#20H
        MOV R1,#60H
CLSMEM: MOV @R0,#00H
        INC R0
	DJNZ R1,CLSMEM


;***********************************************************************
;主程序
;***********************************************************************
MAIN:   
        LCALL PROCESSTEMP
        LCALL DISPBCD
        LCALL DISPLAY
        LJMP  MAIN
        NOP
        NOP
        NOP
        LJMP START	
	
 ;***********************************************************

		
		
		
		
		
		
		
		
 PROCESSTEMP: MOV  DATAH,#08H
              MOV  DATAL,#91H
              MOV    A,DATAH
              ANL    A,#80H
	      JZ     TEMPC11
        	CLR    C
	      MOV    A,DATAL
	        CPL    A
       		ADD    A,#01H
		MOV    DATAL,A
		MOV    A,DATAH
		CPL    A
		ADDC   A,#00H
		MOV    DATAH,A
		MOV    TEMPHC,#0b0H
		
                SJMP   TEMPC11

TEMPC11:      MOV    A,TEMPHC
                SWAP   A
				MOV    TEMPHC,A
				MOV    A,DATAL
				ANL    A,#0FH
				MOV    DPTR,#TEMPDOTTAB
				MOVC   A,@A+DPTR
				MOV    TEMPLC,A



				MOV    A,DATAL
				ANL    A,#0F0H
				SWAP   A
				MOV    DATAL,A
				MOV    A,DATAH
				ANL    A,#07H
				SWAP   A
				ORL    A,DATAL
				LCALL  HEX2BCD1
				MOV    DATAL,A
				ANL    A,#0F0H
				
				ORL    A,TEMPHC
				SWAP    A
				MOV    TEMPHC,A
				MOV    A,DATAL
				ANL    A,#0FH
				SWAP   A
				ORL    A,TEMPLC
				MOV    TEMPLC,A
				MOV    A,R7
				JZ     TEMPC12
				ANL    A,#0FH
				SWAP   A
				MOV    R7,A
				MOV    A,TEMPHC
				ANL    A,#0FH
				ORL    A,R7
				MOV    TEMPHC,A
TEMPC12:        RET

;***********************************************************************
;小数部分码表
;***********************************************************************
TEMPDOTTAB:    DB   00H,01H,01H,02H,03H,03H,04H,04H,05H,06H
               DB   06H,07H,08H,08H,09H,09H

;***********************************************************************
;显示区BCD码温度值刷新子程序
;***********************************************************************

DISPBCD:        MOV	   A,TEMPLC
                ANL    A,#0FH
				MOV    70H,A
				MOV    A,TEMPLC
				SWAP   A
				ANL    A,#0FH
				MOV    71H,A
				MOV    A,TEMPHC
				ANL    A,#0FH
				MOV    72H,A
				MOV    A,TEMPHC
				SWAP   A
				ANL    A,#0FH
				MOV    73H,A
                        	
				

                                RET
;***********************************************************************

	  DISPLAY:        CPL    TSDISTING
                MOV    R1,#70H
                MOV	   R5,#0FEH
PLAY:           MOV    P0,#0FFH
                MOV    A,R5
				MOV    P2,A
				MOV    A,@R1
				MOV    DPTR,#TAB
				MOVC   A,@A+DPTR
				MOV    P0,A
				MOV    A,R5
				JB     ACC.1,LOOP5
				CLR    P0.7
LOOP5:          LCALL  DL1MS
                INC    R1
				MOV    A,R5
				JNB    ACC.3,ENDOUT
				RL     A
				MOV    R5,A
				AJMP   PLAY

ENDOUT:            RET
				

TAB:            DB     0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H,0BFH


DL1MS:          MOV    R6,#14H
       
DL1:            DJNZ   R7,DL2
              
DL2:            DJNZ   R6,DL1
                RET

;***********************************************************************
;单字节十六进制转换为BCD
;***********************************************************************
HEX2BCD1:       MOV    B,#64H
                DIV    AB
				MOV    R7,A
				MOV    A,#0AH
				XCH    A,B
				DIV    AB
				SWAP   A
				ORL    A,B
				RET



;***********************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -