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

📄 ds18b20.asm

📁 基于TMS320LF2407A变频器源程序
💻 ASM
字号:
*************************************************
*FILE: Ds18b20.ASM
*日期:2005年9月28日*		
*************************************************		
****************18B20串口通信******************** 

         .def    DS_18B20

************************************************            
         .include "lf2407a.H"  
************************************************
         .bss    DS_DARW,1   
         .bss    DS_COUNT,1
         .bss    TMPT_W,1
         .bss    TMPT_N,1
         .bss    TMPT_R,1
         .bss    TMPT_CT,1
         .bss    TMPT_ZH,1
         .bss    TMPT1,1
         .bss    TMPT2,1
         .bss    TMPT3,1   
         .bss    TMPT4,1
         .bss    TMPT5,1
         .bss    CRCTEMP,1 
         .bss    TMPE0,1 
         .bss    TMPE1,1
         .bss    TMPE2,1
         .bss    TMPE3,1   
         .bss    TMPE4,1
         .bss    TMPE5,1
         .bss    TMPE6,1
         .bss    TMPE7,1
         .bss    TMPE8,1   
         .bss    TMPE9,1
         .bss    TMPE10,1                         
************************************************                 
         .text     
*************************************************                  

DS_18B20: 
            LDP     #5  
            LACL    DS_DARW
            BCND    SUB_COUNT,GT  
            LACC    DS_COUNT,1
            ADD     #REST_X
            BACC 
REST_X:            
            B       REST_0                 ;REST_COUNT=0
            B       REST_1                 ;REST_COUNT=1
            B       REST_2                 ;REST_COUNT=2
            B       REST_3                 ;REST_COUNT=3 
            B       REST_4 
            B       REST_5 
            B       REST_6 
            B       REST_7 
            B       REST_8 
            B       REST_9 
            B       REST_10 
            B       REST_11 
            B       REST_12 
            B       REST_13    
            B       REST_14   
            B       REST_15 
            B       REST_16 
            B       REST_17 
            B       REST_18    
            B       REST_19   
            B       REST_20 
            B       REST_21 
            B       REST_22 
            B       REST_23    
            B       REST_24    
            B       REST_25 
            B       REST_26 
            B       REST_27 
            B       REST_28 
SUB_COUNT: 
            LDP     #5
            LACL    DS_DARW
            SUB     #1
            SACL    DS_DARW
END:            
            RET                         
REST_0:            
            SBIT1	PFDATDIR,B9_MSK 		;SET OUT 
            SBIT1	PFDATDIR,B1_MSK	    	;PF1=1  
            NOP
            NOP
         	SBIT0	PFDATDIR,B1_MSK	    	;PF1=0            
            LDP     #5
            SPLK    #1,DS_COUNT
            SPLK    #45,DS_DARW              ;#80
            RET
REST_1:     
         	SBIT0	PFDATDIR,B9_MSK 		;SET IN
         	SBIT1	PFDATDIR,B1_MSK		    ;PF1=1   
            LDP     #5
            SPLK    #2,DS_COUNT
            SPLK    #5,DS_DARW                ;#10
            RET       
            
REST_2:
         	LDP     #225
            BIT     PFDATDIR,15-1
            BCND    REST_2_0,NTC 
            LDP     #5 
            SPLK    #65000,DS_DARW 
            SPLK    #0,DS_COUNT  
            LDP     #7
            SPLK    #99,DAT6             
         	RET
REST_2_0:
            LDP     #5 
            SPLK    #3,DS_COUNT
            SPLK    #45,DS_DARW               ;#50
            RET                   
REST_3:     
            LDP     #5
            LACL    TMPT_CT
            BCND    REST_3_0,NEQ
            SPLK    #4,DS_COUNT   
            SPLK    #044CCH,TMPT_W
            SPLK    #16,TMPT_N  
            SBIT1	PFDATDIR,B9_MSK		    ;设置IOPF1为输出口  
         	SBIT1	PFDATDIR,B1_MSK 		;PF1=1 
            RET 
REST_3_0            
            LDP     #5
            SPLK    #6,DS_COUNT 
            RET              
REST_4:     
            SBIT1	PFDATDIR,B1_MSK 		;PF1=1 

            SBIT0	PFDATDIR,B1_MSK 		;PF1=0   

            LDP     #5
         	LACC	TMPT_W
         	SFR
         	SACL	TMPT_W                   ;
         	BCND	REST_4_0,C     
         	SBIT0	PFDATDIR,B1_MSK 		;PF1=0 
         	B		REST_4_1
REST_4_0:      
        	SBIT1	PFDATDIR,B1_MSK 		;PF1=1  
REST_4_1:
            LDP     #5  
            LACC	TMPT_N
            SUB     #1
            SACL    TMPT_N
            BCND    REST_4_2,GT
            SPLK    #5,DS_COUNT 
            SPLK    #1,TMPT_CT  
            SPLK    #6,DS_DARW 
            RET
REST_4_2:   
            LDP     #5 
            SPLK    #6,DS_DARW              ;#3
            SPLK    #12,DS_COUNT            
            SPLK    #4,TMPT_ZH  
            RET
REST_5:     
            SBIT1	PFDATDIR,B1_MSK		    ;PF6=1
            LDP     #5       
            SPLK    #14,DS_COUNT  
            SPLK    #25000,DS_DARW  
            RET               
REST_6:     
            LDP     #5 
            SPLK    #7,DS_COUNT   
            SPLK    #0BECCH,TMPT_W
            SPLK    #16,TMPT_N    
            SPLK    #5,TMPE0
            SBIT1	PFDATDIR,B9_MSK		    ;设置IOPF1为输出口  
         	SBIT1	PFDATDIR,B1_MSK 		;PF1=1  
         	LAR     AR3,#TMPT1
            RET                   
REST_7:     
            SBIT1	PFDATDIR,B1_MSK 		;PF1=1 
            SBIT0	PFDATDIR,B1_MSK 		;PF1=0   

            LDP     #5
         	LACC	TMPT_W
         	SFR
         	SACL	TMPT_W                   ;
         	BCND	REST_7_0,C     
         	SBIT0	PFDATDIR,B1_MSK 		;PF1=0 
         	B		REST_7_1
REST_7_0:      
        	SBIT1	PFDATDIR,B1_MSK 		;PF1=1  
REST_7_1:
            LDP     #5  
            LACC	TMPT_N
            SUB     #1
            SACL    TMPT_N
            BCND    REST_7_2,GT
            SPLK    #6,DS_DARW 
            SPLK    #12,DS_COUNT 
            SPLK    #8,TMPT_ZH 
            RET   
REST_7_2:    
            LDP     #5 
            SPLK    #6,DS_DARW                ;#3  
            SPLK    #12,DS_COUNT            
            SPLK    #7,TMPT_ZH 
            RET 
REST_8: 
            SBIT0	PFDATDIR,B1_MSK 		;PF1=0 
              
            LDP     #5
            SPLK    #10,DS_COUNT
            SPLK    #0,TMPT_R
            SPLK    #16,TMPT_N
            SBIT0	PFDATDIR,B9_MSK 		;SET IN 
            SBIT1	PFDATDIR,B1_MSK 		;PF1=1   
            RET  
REST_9:     
            LDP     #5
         	LACC	TMPT_R
         	SFR
         	SACL	TMPT_R
            SPLK    #10,DS_COUNT 
            SBIT0	PFDATDIR,B9_MSK 		;SET IN 
            SBIT1	PFDATDIR,B1_MSK 		;PF1=1   
            RET
REST_10:     
            LDP		#225
         	LACC	PFDATDIR,14                  
         	AND	    #08000H 
         	LDP     #5
         	OR		TMPT_R                          
         	SACL	TMPT_R      
            SPLK    #11,DS_COUNT  
            LACL    TMPT_N
            SUB     #1
            SACL    TMPT_N
            SPLK    #6,DS_DARW   
         	SBIT1	PFDATDIR,B9_MSK 	    ;OUT
         	SBIT1	PFDATDIR,B1_MSK 		;PF1=1                            	
            RET
REST_11:    
            LDP     #5
            LACL    TMPT_N
            BCND    REST_11_0,GT 
            LACL    TMPE0
            SUB     #1
            SACL    TMPE0 
            BCND    REST_11_1,GT
            SPLK    #13,DS_COUNT 
            LACL    TMPT1
            SACL    DATT4L  
            LACL    TMPT_R 
            MAR     *,AR3
            SACL    *                         
            RET
REST_11_0:
            LDP     #5
            SPLK    #9,DS_COUNT
            SBIT0	PFDATDIR,B1_MSK         ;PF1=0
            RET 
REST_11_1:
            LDP     #5      
            LACL    TMPT_R 
            MAR     *,AR3
            SACL    *+              
            SPLK    #8,DS_COUNT
            SBIT0	PFDATDIR,B1_MSK         ;PF1=0
            RET             
REST_12:    
            LDP     #5  
            LACL    TMPT_ZH
            SACL    DS_COUNT
            SBIT1	PFDATDIR,B1_MSK 		;PF1=1            
            RET 
REST_13:                                    ;REST_COUNT=13
            LDP     #5 
            SPLK    #15,DS_COUNT 
            RET  
REST_14:                                    ;REST_COUNT=13
            LDP     #5 
            LACL    #0
            SACL    DS_COUNT
            SPLK    #50000,DS_DARW 
            RET             

REST_15:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT
            ZAC
            LACC    TMPT1,8 
            SACH    TMPE2
            LACL    TMPT1
            AND     #0FFH
            SACL    TMPE1
            RET   
REST_16:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            ZAC
            LACC    TMPT2,8 
            SACH    TMPE4
            LACL    TMPT2
            AND     #0FFH
            SACL    TMPE3 
            RET   
REST_17:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            ZAC
            LACC    TMPT3,8 
            SACH    TMPE6
            LACL    TMPT3
            AND     #0FFH
            SACL    TMPE5 
            RET
REST_18:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT             
            ZAC
            LACC    TMPT4,8 
            SACH    TMPE8
            LACL    TMPT4
            AND     #0FFH
            SACL    TMPE7 
            
            LACL    TMPT5
            AND     #0FFH
            SACL    TMPE9                
            RET
REST_19:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    #0
            XOR     TMPE1
            SACL    CRCTEMP
            LACC    #DS1820_CRC
            ADD     CRCTEMP
            TBLR    TMPE10  
            RET
REST_20:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    TMPE2
            XOR     TMPE10
            SACL    CRCTEMP
            LACC    #DS1820_CRC
            ADD     CRCTEMP
            TBLR    TMPE10 
            RET
REST_21:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    TMPE3
            XOR     TMPE10
            SACL    CRCTEMP 
            LACC    #DS1820_CRC
            ADD     CRCTEMP
            TBLR    TMPE10
            RET 
REST_22:
            LDP     #5 
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    TMPE4
            XOR     TMPE10
            SACL    CRCTEMP 
            LACC    #DS1820_CRC
            ADD     CRCTEMP
            TBLR    TMPE10 
            RET
REST_23:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    TMPE5
            XOR     TMPE10
            SACL    CRCTEMP 
            LACC    #DS1820_CRC
            ADD     CRCTEMP
            TBLR    TMPE10
            RET
REST_24:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    TMPE6
            XOR     TMPE10
            SACL    CRCTEMP 
            LACC    #DS1820_CRC
            ADD     CRCTEMP
            TBLR    TMPE10
            RET
REST_25:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    TMPE7
            XOR     TMPE10
            SACL    CRCTEMP 
            LACC    #DS1820_CRC
            ADD     CRCTEMP
            TBLR    TMPE10
            RET
REST_26:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    TMPE8
            XOR     TMPE10
            SACL    CRCTEMP 
            LACC    #DS1820_CRC
            ADD     CRCTEMP
            TBLR    TMPE10              
            RET
REST_27:
            LDP     #5  
            LACL    DS_COUNT
            ADD     #1
            SACL    DS_COUNT            
            LACL    TMPE9
            XOR     TMPE10
            SACL    CRCTEMP 
            LACL    CRCTEMP
            BCND    CRC_END,NEQ 
            SPLK    #6688,TMPE10
            RET 
CRC_END:   
            SPLK    #0,TMPE10 
            RET 

********************************************
 
*********************************************   

REST_28:              
            LDP     #5  
            SPLK    #0,DS_COUNT                  
            LACL    TMPE10
            BCND    rd2,EQ 
            SPLK    #0,TMPT_CT
            LACL    DATT4L 
            and     #0f800h
            bcnd    rd0,eq 
            SPLK    #1,SETFU
            lacc    DATT4L
            cmpl
            add     #1  
            sacl    DATT4L  
            B       rd1
rd0:        SPLK    #0,SETFU    
rd1:        
            LACC    DATT4L,12
            LDP     #7   
            SACH    DAT6   
rd2:        
            RET 
***********************************************************             
                                   
*********************************************************************************
DS1820_CRC:
         .word    0, 94,188,226, 97, 63,221,131,194,156,126, 32,163,253, 31, 65 
         .word  157,195, 33,127,252,162, 64, 30, 95,  1,227,189, 62, 96,130,220
         .word   35,125,159,193, 66, 28,254,160,225,191, 93,  3,128,222, 60, 98
         .word  190,224,  2, 92,223,129, 99, 61,124, 34,192,158, 29, 67,161,255 
         .word   70, 24,250,164, 39,121,155,197,132,218, 56,102,229,187, 89,  7
         .word  219,133,103, 57,186,228,  6, 88, 25, 71,165,251,120, 38,196,154
         .word  101, 59,217,135,  4, 90,184,230,167,249, 27, 69,198,152,122, 36
         .word  248,166, 68, 26,153,199, 37,123,58 ,100,134,216, 91,  5,231,185
         .word  140,210, 48,110,237,179, 81, 15, 78, 16,242,172, 47,113,147,205 
         .word   17, 79,173,243,112, 46,204,146,211,141,111, 49,178,236, 14, 80
         .word  175,241, 19, 77,206,144,114, 44,109, 51,209,143, 12, 82,176,238
         .word   50,108,142,208, 83, 13,239,177,240,174, 76, 18,145,207, 45,115 
         .word  202,148,118, 40,171,245, 23, 73,  8, 86,180,234,105, 55,213,139
         .word   87,  9,235,181, 54,104,138,212,149,203, 41,119,244,170, 72, 22
         .word  233,183, 85, 11,136,214, 52,106, 43,117,151,201, 74, 20,246,168
         .word  116, 42,200,150, 21, 75,169,247,182,232, 10, 84,215,137,107, 53  
                         
*********************************************************************************
         .end

⌨️ 快捷键说明

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