📄 one-wire.lst
字号:
193 1 }
194 /*******************************************************************************
195 *** 函 数 名: extern void DS18B20_MemCmd(int8u memCmd)
196 *** 功能描述: DS18B20Memory 操作命令;
197 *** 全局变量: NO !
198 *** 输 入: NO !
199 *** 输 出: NO !
200 *** 创 建 人:huangtiexiong 日期:2006-11-28
201 *** 修 改 人: 日期:2006-11-28
202 *** 函数说明: 仅写了ConvertT(0x44) 和0xBE命令;
203 0x44:Convert T; 0xbe:Read Scratch-pad;
204 /******************************************************************************/
205 extern void DS18B20_MemCmd(int8u memCmd)
206 {
207 1 switch(memCmd)
208 1 {
209 2 case 0x44: //Start to Convert temperature;
210 2 OneWire_WriteByte(0x44);
211 2 NOP();
212 2 DS18B20_Busy();
213 2 Delay_Xms(250); //延时750ms;
214 2 Delay_Xms(250);
215 2 Delay_Xms(250);
216 2 break;
217 2
218 2 case 0xbe: //Read scratchpad;
219 2 OneWire_WriteByte(0xbe);
220 2 break;
221 2
222 2 default:
223 2 break;
224 2 }
225 1 }
226 /*******************************************************************************
227 *** 函 数 名: extern void DS18B20_ReadDat(int8u len,int8u *buf)
228 *** 功能描述: 读取DS18B20内部的Scratchpad内容;
229 *** 全局变量: NO !
230 *** 输 入: len:将要读取的数据长度;
231 *** 输 出: buf:数据缓存;
232 *** 创 建 人:huangtiexiong 日期:2006-11-28
233 *** 修 改 人: 日期:2006-11-28
234 *** 函数说明:
235 /******************************************************************************/
236 extern void DS18B20_ReadDat(int8u len,int8u *buf)
237 {
238 1 int8u i;
239 1 for(i=0;i<len;i++)
240 1 {
241 2 buf[i] = OneWire_ReadByte();
C51 COMPILER V8.05a ONE_WIRE 10/07/2008 19:46:55 PAGE 5
242 2 }
243 1 OneWire_Rst();
244 1 OneWire_Idle();
245 1 }
246 /*******************************************************************************
247 *** 函 数 名: extern void DS18B20_Busy(void)
248 *** 功能描述: 内部模数转换中,忙
249 *** 全局变量: NO !
250 *** 输 入: NO !
251 *** 输 出: NO !
252 *** 创 建 人:huangtiexiong 日期:2006-11-28
253 *** 修 改 人: 日期:2006-11-28
254 *** 函数说明:
255 /******************************************************************************/
256 extern void DS18B20_Busy(void)
257 {
258 1 OneWire_Idle();
259 1 }
260
261
262 /*******************************************************************************
263 **** End Of File
264 *******************************************************************************/
C51 COMPILER V8.05a ONE_WIRE 10/07/2008 19:46:55 PAGE 6
ASSEMBLY LISTING OF GENERATED OBJECT CODE
; FUNCTION OneWire_Init (BEGIN)
; SOURCE LINE # 38
; SOURCE LINE # 39
; SOURCE LINE # 40
0000 D2A7 SETB DQ
; SOURCE LINE # 41
0002 00 NOP
0003 00 NOP
; SOURCE LINE # 42
0004 C2A7 CLR DQ
; SOURCE LINE # 43
0006 7F7D MOV R7,#07DH
0008 120000 E LCALL _Delay_Xus
; SOURCE LINE # 44
000B 7F7D MOV R7,#07DH
000D 120000 E LCALL _Delay_Xus
; SOURCE LINE # 46
0010 D2A7 SETB DQ
; SOURCE LINE # 47
0012 7F0F MOV R7,#0FH
0014 120000 E LCALL _Delay_Xus
0017 ?C0001:
; SOURCE LINE # 49
0017 30A704 JNB DQ,?C0002
; SOURCE LINE # 50
; SOURCE LINE # 51
001A 00 NOP
001B 00 NOP
; SOURCE LINE # 52
001C 80F9 SJMP ?C0001
001E ?C0002:
; SOURCE LINE # 53
001E 7F3C MOV R7,#03CH
0020 120000 E LCALL _Delay_Xus
; SOURCE LINE # 54
0023 D2A7 SETB DQ
; SOURCE LINE # 55
0025 22 RET
; FUNCTION OneWire_Init (END)
; FUNCTION OneWire_Rst (BEGIN)
; SOURCE LINE # 66
; SOURCE LINE # 67
; SOURCE LINE # 68
0000 C2A7 CLR DQ
; SOURCE LINE # 69
0002 7F7D MOV R7,#07DH
0004 120000 E LCALL _Delay_Xus
; SOURCE LINE # 70
0007 C2A7 CLR DQ
; SOURCE LINE # 71
0009 7F7D MOV R7,#07DH
000B 020000 E LJMP _Delay_Xus
; FUNCTION OneWire_Rst (END)
; FUNCTION _OneWire_WriteByte (BEGIN)
; SOURCE LINE # 83
0000 8F00 R MOV cmd,R7
; SOURCE LINE # 84
C51 COMPILER V8.05a ONE_WIRE 10/07/2008 19:46:55 PAGE 7
; SOURCE LINE # 86
0002 E4 CLR A
0003 F500 R MOV i,A
0005 ?C0005:
; SOURCE LINE # 87
; SOURCE LINE # 88
0005 E500 R MOV A,cmd
0007 30E00C JNB ACC.0,?C0008
; SOURCE LINE # 89
; SOURCE LINE # 90
000A C2A7 CLR DQ
; SOURCE LINE # 91
000C 00 NOP
000D 00 NOP
; SOURCE LINE # 92
000E 00 NOP
000F 00 NOP
; SOURCE LINE # 93
0010 00 NOP
0011 00 NOP
; SOURCE LINE # 94
0012 D2A7 SETB DQ
; SOURCE LINE # 95
0014 8008 SJMP ?C0009
0016 ?C0008:
; SOURCE LINE # 97
; SOURCE LINE # 98
0016 C2A7 CLR DQ
; SOURCE LINE # 99
0018 00 NOP
0019 00 NOP
; SOURCE LINE # 100
001A 00 NOP
001B 00 NOP
; SOURCE LINE # 101
001C 00 NOP
001D 00 NOP
; SOURCE LINE # 103
001E ?C0009:
; SOURCE LINE # 104
001E 7F1E MOV R7,#01EH
0020 120000 E LCALL _Delay_Xus
; SOURCE LINE # 105
0023 D2A7 SETB DQ
; SOURCE LINE # 106
0025 00 NOP
0026 00 NOP
; SOURCE LINE # 107
0027 E500 R MOV A,cmd
0029 C3 CLR C
002A 13 RRC A
002B F500 R MOV cmd,A
; SOURCE LINE # 108
002D 0500 R INC i
002F E500 R MOV A,i
0031 C3 CLR C
0032 9408 SUBB A,#08H
0034 40CF JC ?C0005
; SOURCE LINE # 109
0036 ?C0010:
0036 22 RET
; FUNCTION _OneWire_WriteByte (END)
C51 COMPILER V8.05a ONE_WIRE 10/07/2008 19:46:55 PAGE 8
; FUNCTION OneWire_ReadByte (BEGIN)
; SOURCE LINE # 120
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -