📄 18b20.lst
字号:
C51 COMPILER V7.09 18B20 02/11/2009 12:02:17 PAGE 1
C51 COMPILER V7.09, 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 #define uint unsigned int
3 #define uchar unsigned char
4
5 sbit ds=P2^2;
6 uint temp,temp1;
7 float f_temp;
8 bit flag_b;
9 void delay(uint z)
10 {
11 1 uint x,y;
12 1 for(x=z;x>0;x--)
13 1 for(y=110;y>0;y--);
14 1 }
15 void dsreset(void)
16 {
17 1 uint i;
18 1 ds=0;
19 1 i=103;
20 1 while(i>0)i--;
21 1 ds=1;
22 1 i=4;
23 1 while(i>0)i--;
24 1 }
25
26 bit tempreadbit()
27 {
28 1 uint i;
29 1 bit dat;
30 1 ds=0;
31 1 i++;
32 1 ds=1;
33 1 i++;
34 1 i++;
35 1 dat=ds;
36 1 i=8;
37 1 while(i>0)i--;
38 1 return(dat);
39 1 }
40 uchar tempread()
41 {
42 1 uchar i,j,dat;
43 1 dat=0;
44 1 for(i=1;i<=8;i++)
45 1 {
46 2 j=tempreadbit();
47 2 dat=(j<<7)|(dat>>1);
48 2 }
49 1 return(dat);
50 1 }
51 void tempwritebyte(uchar dat)
52 {
53 1 uint i;
54 1 uchar j;
55 1 bit testb;
C51 COMPILER V7.09 18B20 02/11/2009 12:02:17 PAGE 2
56 1 for(j=1;j<=8;j++)
57 1 {
58 2 testb=dat&0x01;
59 2 dat=dat>>1;
60 2 if(testb)
61 2 {
62 3 ds=0;
63 3 i++;
64 3 i++;
65 3 ds=1;
66 3 i=8;
67 3 while(i>0)i--;
68 3 }
69 2 else
70 2 {
71 3 ds=0;
72 3 i=8;
73 3 while(i>0)i--;
74 3 ds=1;
75 3 i++;
76 3 i++;
77 3 }
78 2 }
79 1 }
80 /*void read_rom()
81 {
82 uchar n;
83 dsreset();
84 delay(1);
85 tempwritebyte(0x33);
86 for(n=0;n<8;n++)
87 {
88 rom[n]=tempread();
89 }
90 }*/
91 void tempchange()
92 {
93 1 dsreset();
94 1 delay(1);
95 1 tempwritebyte(0xcc);
96 1 tempwritebyte(0x44);
97 1 }
98 uint get_temp()
99 {
100 1 uchar a,b,i;
101 1 dsreset();
102 1 delay(1);
103 1 tempwritebyte(0xcc);
104 1 tempwritebyte(0xbe);
105 1 a=tempread();
106 1 b=tempread();
107 1
108 1 i=b;
109 1 i=i>>4;
110 1 if(i==0)
111 1 {
112 2 flag_b=1;
113 2 temp=b;
114 2 temp<<=8;
115 2 temp=temp|a;
116 2 f_temp=temp*0.0625;
117 2 temp=f_temp*10+0.5;
C51 COMPILER V7.09 18B20 02/11/2009 12:02:17 PAGE 3
118 2 }
119 1 else
120 1 {
121 2 flag_b=0;
122 2 a=~a;
123 2 a=a+1;
124 2 b=~b;
125 2 b=b+1;
126 2 temp=b;
127 2 temp<<=8;
128 2 temp=temp|a;
129 2 f_temp=temp*0.0625;
130 2 temp=f_temp*10+0.5;
131 2 }
132 1
133 1 f_temp=f_temp+0.5;
134 1 return temp;
135 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 368 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 2
IDATA SIZE = ---- ----
BIT SIZE = 1 2
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -