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

📄 tmp100温度传感器的程序.txt

📁 TMP100数字温度传感器读取源码,可以直接使用,很好的代码
💻 TXT
字号:
IIC_data            EQU 8B8H
IIC_data_L          EQU 8BAH 
IIC_data_H          EQU 8BCH 
IIC_count           EQU 8BEH 
IIC_count1          EQU 8C0H 

SET_IICDATA_O       MACRO  
                    BIS.B #BIT3,&P1OUT   ;P1.3   
                    ENDM  
CLK_IICDATA_O       MACRO  
                    BIC.B #BIT3,&P1OUT   ;P1.3   
                    ENDM  
SET_IICCLK          MACRO  
                    BIS.B #BIT4,&P1OUT   ;P1.4   
                    ENDM  
CLK_IICCLK          MACRO  
                    BIC.B #BIT4,&P1OUT   ;P1.4   
                    ENDM 


-----------------------------------------------

IIC_StarT          SET_IICDATA_O 
                   NOP
                   NOP
                   SET_IICCLK 
                   NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   CLK_IICDATA_O
    	 NOP
  	 NOP
  	 NOP
  	 NOP
 	 NOP
  	 CLK_IICCLK
      	 NOP
    	 RET
-------------------------------------------
IIC_STOP 	 CLK_IICDATA_O
	 NOP
            	 NOP
            	 SET_IICCLK 
            	 NOP
                   NOP
                   NOP
                   NOP
                   NOP
                   SET_IICDATA_O 
                   NOP
  	 NOP
  	 NOP
  	 NOP
 	 NOP
  	 CLK_IICCLK
      	 NOP
    	 RET

------------------------------------------
IIC_WRITE	 MOV.B  #08H,&IIC_COUNT
	 SET_IICCLK              
           	 NOP
IIC_SEND           rlA.B  &IIC_data
           	 jc  IIC1
                   CLK_IICDATA_O                      
           	 jmp    IIC1_1
IIC1       	 SET_IICDATA_O 
IIC1_1     	 SET_IICCLK    
             	 nop
           	 nop
           	 NOP
           	 NOP
           	 NOP
           	 CLK_IICCLK
           	 NOP
           	 NOP
           	 dec.b  &IIC_COUNT
           	 cmp    #0h,count
           	 jnz    write
           	 SET_IICDATA_O 
           	 RET
IIC_ACKN           SET_IICCLK
ACK_WAIT	 BIT.B  #BIT3,P1IN
      	 JNZ    ACK_WAIT
      	 CLK_IICCLK
      	 RET
---------------------------------
IIC_READ           MOV.B  #08H,&IIC_COUNT
 	 CLR &IIC_DATA                
IIC_RX	 SET_IICCLK
	 BIT.B  BIT3,P1IN
	 RLC.B  &IIC_DATA
  	 CLK_IICCLK
      	 DEC.B  &IIC_COUNT
      	 JNZ    IIC_RX
IIC_ACKN1          SET_IICCLK
                   NOP
	 NOP
ACK_WAIT1	 BIT.B  #BIT3,P1IN
      	 JNZ    ACK_WAIT1
      	 CLK_IICCLK
      	 RET

IIC_ALARM	 CMP    #3200H,&IIC_DATA
                   JC     IIC_HIGT
                   CMP    #0040H,&IIC_DATA
                   JNC    IIC_LOW
                   JMP    IIC_LOW
IIC_HIGT           MOV    #5555H,&IIC_DATA      
                   JMP    IIC_END
IIC_LOW            MOV    #1111H,&IIC_DATA                                    
IIC_END            RET
mov.b #00001000,&IIC_data    ;WRITE  HIGHT SPEED   
                   call  #IIC_StarT 
                   CALL  #IIC_WRITE
	 mov.b #00000001,&IIC_data    ;WRITE  P1=0 P0=1
	 CALL  #IIC_WRITE             ;    
                   mov.b #01101000,&IIC_data    ;SD=0   shutdown  
	 CALL  #IIC_WRITE        
                   mov.b #00000010,&IIC_data    ;WRITE  P1=1 P0=0   LOW TEMP
                   CALL  #IIC_WRITE 
                   mov.b #00H,&IIC_data         ;WRITE P1=1 P0=0   LOW TEMP=0.25C
                   CALL  #IIC_WRITE 
                   mov.b #04H,&IIC_data         ;WRITE P1=1 P0=0   LOW TEMP=0.25C
                   CALL  #IIC_WRITE 
                   mov.b #00000011,&IIC_data    ;WRITE P1=1 P0=1   HIGHT TEMP
                   CALL  #IIC_WRITE 
                   mov.b #32H,&IIC_data         ;WRITE P1=1 P0=1   HIGHT BYTE TEMP=50C 
                   CALL  #IIC_WRITE 
                   mov.b #00H,&IIC_data         ;WRITE P1=1 P0=1   LOW BYTE TEMP=50C 
                   CALL  #IIC_WRITE 
                   CALL  #IIC_STOP

                   call  #IICStarT 
                   mov.b #10010000,&IIC_data     ; FIRST WRITE TO READ TEMP 
                   CALL  #IIC_WRITE
                   mov.b #00000000,&IIC_data     ; READ TEMP  P1=0 P0=0 
                   CALL  #IIC_WRITE
                   mov.b #10010001,&&IIC_data     ; BEGIN TO READ TEMP 
                   CALL  #IIC_WRITE
                   CALL  #IIC_READ           ;READ 
                   CALL  #IIC_READ
                   RRA   &IIC_DATA
                   RRA   &IIC_DATA
                   RRA   &IIC_DATA
                   CALL  #IIC_STOP
                   CALL  #IIC_ALARM          ;ALARM


⌨️ 快捷键说明

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