📄 18b20.lst
字号:
C51 COMPILER V8.02 18B20 11/11/2008 22:44:43 PAGE 1
C51 COMPILER V8.02, 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<reg52.h>
2 #include" lcd.h "
3 #include" 18b20.h "
4
5 sbit DQ = P2^7;
6 //uchar TT_Flag=0; //温度正负区分标志位
7 //float TT;
8 extern bit Flag;
9
10 void delay_18B20(unsigned int i)
11 {
12 1 while(i--);
13 1 }
14
15 //初始化函数
16 Init_DS18B20(void)
17 {
18 1 unsigned char x=0;
19 1 DQ = 1; //DQ复位
20 1 delay_18B20(8); //稍做延时
21 1 DQ = 0; //单片机将DQ拉低
22 1 delay_18B20(80); //精确延时 大于 480us
23 1 DQ = 1; //拉高总线
24 1 delay_18B20(14);
25 1 x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败
26 1 delay_18B20(20);
27 1 }
28
29
30 //读一个字节
31 ReadOneChar(void)
32 {
33 1 unsigned char i=0;
34 1 unsigned char dat = 0;
35 1 for (i=8;i>0;i--)
36 1 {
37 2 DQ = 0; // 给脉冲信号
38 2 dat>>=1;
39 2 DQ = 1; // 给脉冲信号
40 2 if(DQ)
41 2 dat|=0x80;
42 2 delay_18B20(4);
43 2 }
44 1 return(dat);
45 1 }
46
47 //写一个字节
48 WriteOneChar(unsigned char dat)
49 {
50 1 unsigned char i=0;
51 1 for (i=8; i>0; i--)
52 1 {
53 2 DQ = 0;
54 2 DQ = dat&0x01;
55 2 delay_18B20(5);
C51 COMPILER V8.02 18B20 11/11/2008 22:44:43 PAGE 2
56 2 DQ = 1;
57 2 dat>>=1;
58 2 }
59 1 }
60
61 //读取温度
62 ReadTemperature(void)
63 {
64 1
65 1 unsigned char a,b;//c,d;
66 1 unsigned char TT; //温度
67 1 unsigned char TT_Flag=0;
68 1 //unsigned char s,g,f,d,r,e,h;
69 1 if( Flag)
70 1 {
71 2
72 2 Init_DS18B20();
73 2 WriteOneChar(0xCC); // 跳过读序号列号的操作
74 2 WriteOneChar(0x44); // 启动温度转换
75 2 Init_DS18B20();
76 2 WriteOneChar(0xCC); //跳过读序号列号的操作
77 2 WriteOneChar(0xBE); //读取温度寄存器
78 2 a = ReadOneChar();
79 2 b = ReadOneChar();
80 2 ///*
81 2 TT_Flag=b&0xf8;
82 2 b=(b&0x07)<<4;
83 2 a=(a&0xf0)>>4;
84 2 TT=b|a;
85 2 }
86 1 return TT;
87 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 166 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -