📄 ds18b20.lst
字号:
C51 COMPILER V7.50 DS18B20 01/02/2009 14:29:39 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN ds18b20.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ds18b20.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 #include "stdio.h"
3 #include "intrins.h"
4 #include "math.h"
5
6 #define uchar unsigned char
7 #define uint unsigned int
8
9 sbit DQ=P3^5;
10
11 //主函数中的变量定义
12 /*********************************************************/
13 //18b20的驱动程序
14 //延时程序
15 void delay1820(uint i)
16 {
17 1 while(i--);
18 1 }
19 //18B20初始化程序
20 void initial1820()
21 {
22 1 /* DQ=1;
23 1 delay1820(8);
24 1 DQ=0;
25 1 delay1820(80);
26 1 DQ=1;
27 1 delay1820(10);*/
28 1 char presence=1;
29 1 while(presence)
30 1 {
31 2 while(presence)
32 2 {
33 3 DQ=1;
34 3 delay1820(50);
35 3 DQ=0;
36 3 delay1820(50);
37 3 DQ=1;
38 3 delay1820(6);
39 3 presence=DQ;
40 3 }
41 2 delay1820(45);
42 2 presence=~DQ;
43 2 }
44 1 DQ=1;
45 1 }
46 //读一个字节
47 uchar rchar()
48 {
49 1 uchar i;
50 1 uchar value=0;
51 1 for(i=8;i>0;i--)
52 1 {
53 2 DQ=1;_nop_();_nop_();
54 2 value>>=1;
55 2 DQ=0;
C51 COMPILER V7.50 DS18B20 01/02/2009 14:29:39 PAGE 2
56 2 _nop_();_nop_();_nop_();_nop_();
57 2 DQ=1;_nop_();_nop_();_nop_();_nop_();
58 2 if(DQ)value|=0x80;
59 2 delay1820(6);
60 2 }
61 1 DQ=1;
62 1 return(value);
63 1
64 1 }
65 //写一个字节
66 void wchar(uchar val)
67 {
68 1 uchar i;
69 1 for(i=8;i>0;i--)
70 1 {
71 2 DQ=1;_nop_();_nop_();
72 2 DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();
73 2 DQ=val&0x01;
74 2 delay1820(6);
75 2 val=val/2;
76 2 }
77 1 DQ=1;
78 1 delay1820(1);
79 1 }
80 //读取温度
81 unsigned char rtemp()
82 {
83 1 uchar a=0;
84 1 uchar b=0;
85 1 uchar t=0;
86 1 initial1820();
87 1 wchar(0xCC);
88 1 wchar(0x44);
89 1
90 1 delay1820(200);
91 1 initial1820();
92 1 wchar(0xCC);
93 1 wchar(0xBE);
94 1 a=rchar();
95 1 b=rchar();
96 1
97 1 initial1820();
98 1 wchar(0xCC);
99 1 wchar(0x44);
100 1
101 1 b<<=4;
102 1 b+=(a&0xF0)>>4;
103 1 t=b;
104 1 return(t);
105 1 }
106
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 212 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILER V7.50 DS18B20 01/02/2009 14:29:39 PAGE 3
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -