📄 transmit_data.lst
字号:
A51 MACRO ASSEMBLER TRANSMIT_DATA 06/13/2005 14:41:58 PAGE 1
MACRO ASSEMBLER A51 V7.00a
OBJECT MODULE PLACED IN transmit_data.OBJ
ASSEMBLER INVOKED BY: C:\PROGRA~1\KEILC5~1\C51\BIN\A51.EXE transmit_data.asm DB
LOC OBJ LINE SOURCE
1 NAME RW18B20
2
0096 3 DQ BIT P1.6
4
5 ?PR?OWReadBit?RW1820 SEGMENT CODE
6 ?PR?_OWWriteBit?RW1820 SEGMENT CODE
7 ?PR?OWReadByte?RW1820 SEGMENT CODE
8 ?PR?_OWWriteByte?RW1820 SEGMENT CODE
9 ?PR?OWReset?RW1820 SEGMENT CODE
10
11 PUBLIC OWReadBit,OWReadByte,_OWWriteBit,_OWWriteByte,OWReset
12
13 ;-------------------------------------------
---- 14 RSEG ?PR?OWReset?RW1820
0000 15 OWReset:
0000 C2AF 16 CLR EA ;初始化18B20子程序
0002 7401 17 MOV A,#01H
0004 C296 18 L0: CLR DQ
0006 7AC8 19 MOV R2,#200 ;18B20总线为低电平复为
0008 C296 20 L1: CLR DQ
000A DAFC 21 DJNZ R2,L1 ;总线保持低电平400us /480us
000C D296 22 SETB DQ
000E 7A1E 23 MOV R2,#30
0010 DAFE 24 L4: DJNZ R2,L4 ;释放18B20总线保持60us/70us
0012 C3 25 CLR C
0013 7296 26 ORL C,DQ
0015 400B 27 JC L3
0017 E4 28 CLR A
0018 7A50 29 MOV R2,#80
001A 7296 30 L5: ORL C,DQ ;/410us
001C 4004 31 JC L3
001E DAFA 32 DJNZ R2,L5
0020 7401 33 MOV A,#01H
0022 7AF0 34 L3: MOV R2,#240
0024 DAFE 35 L2: DJNZ R2,L2
0026 FF 36 MOV R7,A ;返回复位值,1 NO Presence,0 Slave Device P
resence
0027 22 37 RET
38
39
40 ;-------------------------------------------
---- 41 RSEG ?PR?OWReadBit?RW1820
0000 42 OWReadBit:
0000 C2AF 43 CLR EA
0002 E4 44 RB1:CLR A
0003 C296 45 CLR DQ ;延迟2us/6us
0005 7A04 46 MOV R2,#4
0007 00 47 NOP
0008 D296 48 SETB DQ
000A DAFE 49 RB2:DJNZ R2,RB2 ;保持8us/9us开始采样
000C A296 50 MOV C,DQ
000E 13 51 RRC A
000F 7A1E 52 MOV R2,#30
0011 DAFE 53 RB3:DJNZ R2,RB3 ;保持60us /55us后释放总线
0013 5480 54 ANL A,#80H
0015 23 55 RL A
0016 FF 56 MOV R7,A
0017 22 57 RET
A51 MACRO ASSEMBLER TRANSMIT_DATA 06/13/2005 14:41:58 PAGE 2
58 ;-------------------------------------------
---- 59 RSEG ?PR?_OWWriteBit?RW1820
0000 60 _OWWriteBit:
0000 EF 61 MOV A,R7
0001 C2AF 62 CLR EA ;将ACC中8bit示菟统
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -