📄 +-
字号:
C51 COMPILER V7.20 DS18B20 04/08/2013 23:13:27 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN ds18b20.OBJ
COMPILER INVOKED BY: D:\软件\keil\C51\BIN\C51.EXE ds18b20.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"pinlink.h"
2 #include"delay.h"
3 #include"display.h"
4 #include"includehead.h"
5 bit Init_ds18b20(void)
6 {
7 1 bit flag=1;
8 1 DQ=0;
9 1 delaynus(60);//大于600us
10 1 DQ=1;
11 1 delaynus(2);//20us
12 1 flag=DQ;
13 1 delaynus(25);//250us
14 1 return flag;
15 1
16 1 }
17
18 void write_byte(unchar i)
19 {
20 1 unchar j;
21 1 for(j=0;j<8;j++)
22 1 {
23 2 DQ=0;
24 2 delaynus(1);
25 2 DQ= (bit)(i&0x01);
26 2 delaynus(12);
27 2 DQ=1;
28 2 _nop_();
29 2 _nop_();
30 2 i>>=1;
31 2 }
32 1 DQ=1;
33 1 }
34
35 unchar read_byte(void)
36 {
37 1 unchar j,i;
38 1 for(j=0;j<8;j++)
39 1 {
40 2 DQ=0;
41 2 i>>=1;
42 2 DQ=1;
43 2 delaynus(1);
44 2 if(DQ)
45 2 i=i|0x80;
46 2 delaynus(4);
47 2 //DQ=1;
48 2 delaynus(1);
49 2
50 2 }
51 1 DQ=1;
52 1 return i;
53 1
54 1
55 1
C51 COMPILER V7.20 DS18B20 04/08/2013 23:13:27 PAGE 2
56 1 }
57 unchar ds18b20(void)
58 { unchar temph,templ;
59 1 unchar *bp;//负数标志位
60 1 uchar flag=0;
61 1 bp=&flag;
62 1 l1:Init_ds18b20();
63 1 write_byte(0xcc);
64 1 write_byte(0x44);
65 1 delaynus(700);//每一种操作都要重复下init_ds10820, write_byte(0xcc)
66 1 Init_ds18b20();
67 1 write_byte(0xcc);
68 1 write_byte(0xbe);
69 1 templ=read_byte();
70 1 temph=read_byte();
71 1 if(temph==0xff&&templ==0xff)
72 1 goto l1;
73 1 if(temph>7)//是负数取其补码,在显示的时处理显示'-'
74 1 {
75 2 flag=1;
76 2 templ=~templ+1;
77 2 temph=~temph;
78 2 }
79 1 temph=temph<<4;
80 1 temph=temph+(templ>>4);//这里我只取了整数部分值,小数部分可用查表来作,或者放大基数来作
81 1 templ=(templ&0x0f)*10/16;
82 1 display(temph,bp,templ);
83 1 return temph;
84 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 264 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -