📄 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 + -