📄 ds18b20lll.lst
字号:
C51 COMPILER V7.06 DS18B20LLL 11/01/2007 15:36:36 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DS18B20LLL
OBJECT MODULE PLACED IN .\ds18b20lll.obj
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE ..\..\..\DS18B20程序\ds18b20lll.c BROWSE DEBUG OBJECTEXTEND P
-RINT(.\ds18b20lll.lst) OBJECT(.\ds18b20lll.obj)
stmt level source
1 #include <reg1210.h>
2 //#include<reg51.h>
3 #include <intrins.h>
4 #include<stdio.h>
5 #include<stdlib.h>
6 #include<math.h>
7
8 extern void autobaud(void);
9 #define CLR_RI (RI=0)
10 #define CLR_TI (TI=0)
11
12 sbit TMDAT=P2^0;
13
14 /*----------------------------------------------------
15 * 整型转换成字符型子程序
16 *----------------------------------------------------*/
17 unsigned inttochar(unsigned int int1)
18 {
19 1 unsigned char ch1;
20 1 switch(int1)
21 1 {
22 2 case(0):ch1='0';break;
23 2 case(1):ch1='1';break;
24 2 case(2):ch1='2';break;
25 2 case(3):ch1='3';break;
26 2 case(4):ch1='4';break;
27 2 case(5):ch1='5';break;
28 2 case(6):ch1='6';break;
29 2 case(7):ch1='7';break;
30 2 case(8):ch1='8';break;
31 2 case(9):ch1='9';break;
32 2 default:break;
33 2 }
34 1 return(ch1);
35 1 }
36 /*----------------------------------------------------
37 * 整型转换成浮点型子程序
38 *----------------------------------------------------*/
39 float inttofloat(unsigned int int1)
40 {
41 1 float ch1;
42 1 switch(int1)
43 1 {
44 2 case(0):ch1=0;break;
45 2 case(1):ch1=1;break;
46 2 case(2):ch1=2;break;
47 2 case(3):ch1=3;break;
48 2 case(4):ch1=4;break;
49 2 case(5):ch1=5;break;
50 2 case(6):ch1=6;break;
51 2 case(7):ch1=7;break;
52 2 case(8):ch1=8;break;
53 2 case(9):ch1=9;break;
54 2 default:break;
C51 COMPILER V7.06 DS18B20LLL 11/01/2007 15:36:36 PAGE 2
55 2 }
56 1 return(ch1);
57 1 }
58 /*----------------------------------------------------
59 * delay N count c里的一个while语句相当于汇编里的一个DJNZ语句,即两个机器周期
60 *----------------------------------------------------*/
61 void Delay_Count (unsigned char Count ) //延时时间为:(Count*2+5)*0.362 us
62 {
63 1 while(--Count);
64 1 }
65
66 /*----------------------------------------------------
67 * HEX->BCD查表程序,整数部分
68 *----------------------------------------------------*/
69 unsigned char hextobcd(unsigned char tab)
70 {
71 1 unsigned int tab1;
72 1 switch(tab)
73 1 {
74 2 case(0x00): tab1=0x000; break;
75 2 case(0x01): tab1=0x001; break;
76 2 case(0x02): tab1=0x002; break;
77 2 case(0x03): tab1=0x003; break;
78 2 case(0x04): tab1=0x004; break;
79 2 case(0x05): tab1=0x005; break;
80 2 case(0x06): tab1=0x006; break;
81 2 case(0x07): tab1=0x007; break;
82 2 case(0x08): tab1=0x008; break;
83 2 case(0x09): tab1=0x009; break;
84 2 case(0x0A): tab1=0x0A; break;
85 2 case(0x0B): tab1=0x0B; break;
86 2 case(0x0C): tab1=0x0C; break;
87 2 case(0x0D): tab1=0x0D; break;
88 2 case(0x0E): tab1=0x0E; break;
89 2 case(0x0F): tab1=0x0F; break;
90 2 case(0x10): tab1=0x010; break;
91 2 case(0x11): tab1=0x011; break;
92 2 case(0x12): tab1=0x012; break;
93 2 case(0x13): tab1=0x013; break;
94 2 case(0x14): tab1=0x014; break;
95 2 case(0x15): tab1=0x015; break;
96 2 case(0x16): tab1=0x016; break;
97 2 case(0x17): tab1=0x017; break;
98 2 case(0x18): tab1=0x018; break;
99 2 case(0x19): tab1=0x019; break;
100 2 case(0x1A): tab1=0x01A; break;
101 2 case(0x1B): tab1=0x01B; break;
102 2 case(0x1C): tab1=0x01C; break;
103 2 case(0x1D): tab1=0x01D; break;
104 2 case(0x1E): tab1=0x01E; break;
105 2 case(0x1F): tab1=0x01F; break;
106 2 case(0x20): tab1=0x020; break;
107 2 case(0x21): tab1=0x021; break;
108 2 case(0x22): tab1=0x022; break;
109 2 case(0x23): tab1=0x023; break;
110 2 case(0x24): tab1=0x024; break;
111 2 case(0x25): tab1=0x025; break;
112 2 case(0x26): tab1=0x026; break;
113 2 case(0x27): tab1=0x027; break;
114 2 case(0x28): tab1=0x028; break;
115 2
116 2 default: tab1=0x00;break;
C51 COMPILER V7.06 DS18B20LLL 11/01/2007 15:36:36 PAGE 3
117 2 }
118 1 return(tab1);
119 1 }
120 /*----------------------------------------------------
121 * HEX->BCD查表程序,小数部分
122 *----------------------------------------------------*/
123 unsigned char hextobcd1(unsigned char tab)
124 {
125 1 unsigned int tab1;
126 1 switch(tab)
127 1 {
128 2 case(0x00): tab1=0x000; break;
129 2 case(0x01): tab1=0x001; break;
130 2 case(0x02): tab1=0x001; break;
131 2 case(0x03): tab1=0x002; break;
132 2 case(0x04): tab1=0x003; break;
133 2 case(0x05): tab1=0x003; break;
134 2 case(0x06): tab1=0x004; break;
135 2 case(0x07): tab1=0x004; break;
136 2 case(0x08): tab1=0x005; break;
137 2 case(0x09): tab1=0x006; break;
138 2 case(0x0A): tab1=0x006; break;
139 2 case(0x0B): tab1=0x007; break;
140 2 case(0x0C): tab1=0x008; break;
141 2 case(0x0D): tab1=0x008; break;
142 2 case(0x0E): tab1=0x009; break;
143 2 case(0x0F): tab1=0x009; break;
144 2
145 2 default: tab1=0x00;break;
146 2 }
147 1 return(tab1);
148 1 }
149
150 /*----------------------------------------------------
151 * start Reset Pulse
152 ----------------------------------------------------*/
153 void tmreset(void)
154 {
155 1 TMDAT=0;
156 1 Delay_Count(255);
157 1 Delay_Count(255);
158 1 Delay_Count(255);
159 1 Delay_Count(255);
160 1 TMDAT=1;
161 1 Delay_Count(70);
162 1 while(TMDAT);
163 1 // printf("已调用完判忙函数3\r\n");
164 1 while(~TMDAT);
165 1 // printf("已调用完判忙函数2\r\n");
166 1 Delay_Count(255);
167 1
168 1 }
169
170
171 /*----------------------------------------------------
172 * start Reset Pulse
173 ----------------------------------------------------/
174 void tmreset()
175 {
176
177 // P0=0xfe;
178
C51 COMPILER V7.06 DS18B20LLL 11/01/2007 15:36:36 PAGE 4
179 // FLAG1=0;
180 TMDAT=1;
181 Delay_Count(1); //2.5us
182 TMDAT=0;
183 Delay_Count(250); //505us
184 Delay_Count(250); //505us
185 Delay_Count(250); //505us
186 TMDAT=1;
187 Delay_Count(28); //61us
188 Delay_Count(28); //61us
189 Delay_Count(28); //61us
190 while(TMDAT);
191
192 // printf("初始化成功\n");
193 while(~TMDAT);
194 //printf("初始化成功1\n");
195 Delay_Count(110); //225us
196 Delay_Count(110); //225us
197 Delay_Count(110); //225us
198
199 }
200
201 /*----------------------------------------------------
202 * Read a bit from 1820
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -