📄 18b20.lst
字号:
C51 COMPILER V8.17 18B20 02/22/2009 16:39:38 PAGE 1
C51 COMPILER V8.17, COMPILATION OF MODULE 18B20
OBJECT MODULE PLACED IN 18b20.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 18b20.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at89x52.h>
2 #include <intrins.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 bit ready;
6 sbit Q=P2^7;
7 void delay_t (uint tt)
8 {
9 1 while (tt--);
10 1 }
11 //复位18B20
12 void init_18b20 (void)
13 {
14 1 Q=1;
15 1 _nop_ ();
16 1 Q=0;
17 1 delay_t (160);
18 1 Q=1;
19 1 delay_t (9);
20 1 ready=Q;
21 1 delay_t (100);
22 1
23 1 }
24 //写入BYTE到18B20
25 void w_18b20 (uchar dat)
26 {
27 1 unsigned char i;
28 1 for(i=8;i;i--)
29 1 {
30 2 Q=0;
31 2 Q=dat&0x01;
32 2 delay_t(5); //延时61us(在I/O线由高电平变为低电平之后DS1820在15us~60us之间对 I/O 线采样)
33 2 Q=1;
34 2 dat>>=1;
35 2 }
36 1 }
37 //读入数据
38 uchar r_18b20 (void)
39 {
40 1 unsigned char i,dat=0;
41 1 for(i=8;i;i--)
42 1 {
43 2 Q=0;
44 2 dat>>=1;
45 2 Q=1;
46 2 if(Q)
47 2 dat|=0x80;
48 2 delay_t(5);
49 2 }
50 1 return dat;
51 1 }
52 get_18b20 (void)
53 {
54 1 uint Low,Hight,a;
55 1 float T;
C51 COMPILER V8.17 18B20 02/22/2009 16:39:38 PAGE 2
56 1 init_18b20 ();
57 1 w_18b20 (0xcc);
58 1 w_18b20 (0x44);
59 1 delay_t (120);
60 1 init_18b20 ();
61 1 w_18b20 (0xcc);
62 1 w_18b20 (0xbe);
63 1 Low=r_18b20 ();
64 1 Hight=r_18b20 ();
65 1 a=Hight;
66 1 a=a<<8;
67 1 T=(a|Low)*0.0625*100;
68 1 return T;
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 171 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 2
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 + -