113 lines
3.6 KiB
Plaintext
113 lines
3.6 KiB
Plaintext
C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 1
|
||
|
||
|
||
C51 COMPILER V9.59.0.0, COMPILATION OF MODULE ONEWIRE
|
||
OBJECT MODULE PLACED IN .\Objects\onewire.obj
|
||
COMPILER INVOKED BY: D:\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE INCDIR(..\Driver) DEBUG OBJ
|
||
-ECTEXTEND PRINT(.\Listings\onewire.lst) TABS(2) OBJECT(.\Objects\onewire.obj)
|
||
|
||
line level source
|
||
|
||
1 /* # 蜊墓サ郤ソ莉」遐∫援谿オ隸エ譏<EFBDB4>
|
||
2 1. 譛ャ譁<EFBDAC>サカ螟ケ荳ュ謠蝉セ帷噪鬩ア蜉ィ莉」遐∽セ帛盾襍幃画焔螳梧<E89EB3>遞句コ剰ョセ隶。蜿り<E3828A><EFBFBD>
|
||
3 2. 蜿りオ幃画焔蜿ッ莉・閾ェ陦檎シ門<EFBDBC>逶ク蜈ウ莉」遐∵<E98190>莉・隸・莉」遐∽クコ蝓コ遑<E98191>梧<EFBFBD>ケ謐ョ謇騾牙黒迚<E9BB92>惻邀サ蝙九∬ソ
|
||
-占。碁溷コヲ蜥瑚ッ暮「<E69AAE>
|
||
4 荳ュ蟇ケ蜊慕援譛コ譌カ髓滄「醍紫逧<E7B4AB>ヲ∵アゑシ瑚ソ幄。御サ」遐∬ー<E288AC>ッ募柱菫ョ謾ケ縲<EFBDB9>
|
||
5 */
|
||
6 #include "onewire.h"
|
||
7 #include "REG52.H"
|
||
8 sbit DQ = P1 ^ 4; // 蜊墓サ郤ソ謨ー謐ョ蜿」
|
||
9 //
|
||
10 void Delay_OneWire(unsigned int t)
|
||
11 {
|
||
12 1 unsigned char i;
|
||
13 1 while (t--)
|
||
14 1 {
|
||
15 2 for (i = 0; i < 12; i++)
|
||
16 2 ;
|
||
17 2 }
|
||
18 1 }
|
||
19
|
||
20 //
|
||
21 void Write_DS18B20(unsigned char dat)
|
||
22 {
|
||
23 1 unsigned char i;
|
||
24 1 for (i = 0; i < 8; i++)
|
||
25 1 {
|
||
26 2 DQ = 0;
|
||
27 2 DQ = dat & 0x01;
|
||
28 2 Delay_OneWire(5);
|
||
29 2 DQ = 1;
|
||
30 2 dat >>= 1;
|
||
31 2 }
|
||
32 1 Delay_OneWire(5);
|
||
33 1 }
|
||
34
|
||
35 //
|
||
36 unsigned char Read_DS18B20(void)
|
||
37 {
|
||
38 1 unsigned char i;
|
||
39 1 unsigned char dat;
|
||
40 1
|
||
41 1 for (i = 0; i < 8; i++)
|
||
42 1 {
|
||
43 2 DQ = 0;
|
||
44 2 dat >>= 1;
|
||
45 2 DQ = 1;
|
||
46 2 if (DQ)
|
||
47 2 {
|
||
48 3 dat |= 0x80;
|
||
49 3 }
|
||
50 2 Delay_OneWire(5);
|
||
51 2 }
|
||
52 1 return dat;
|
||
53 1 }
|
||
C51 COMPILER V9.59.0.0 ONEWIRE 02/24/2024 21:37:53 PAGE 2
|
||
|
||
54
|
||
55 //
|
||
56 bit init_ds18b20(void)
|
||
57 {
|
||
58 1 bit initflag = 0;
|
||
59 1
|
||
60 1 DQ = 1;
|
||
61 1 Delay_OneWire(12);
|
||
62 1 DQ = 0;
|
||
63 1 Delay_OneWire(80);
|
||
64 1 DQ = 1;
|
||
65 1 Delay_OneWire(10);
|
||
66 1 initflag = DQ;
|
||
67 1 Delay_OneWire(5);
|
||
68 1
|
||
69 1 return initflag;
|
||
70 1 }
|
||
71
|
||
72 float rd_temperature()
|
||
73 {
|
||
74 1 unsigned char low, high;
|
||
75 1 init_ds18b20();
|
||
76 1 Write_DS18B20(0xcc); // 霍ウ霑⑲OM
|
||
77 1 Write_DS18B20(0x44); // 蜷ッ蜉ィ貂ゥ蠎ヲ霓ャ謐「
|
||
78 1
|
||
79 1 init_ds18b20();
|
||
80 1 Write_DS18B20(0xcc); // 霍ウ霑⑲OM
|
||
81 1 Write_DS18B20(0xbe); // 隸サ蜿匁クゥ蠎ヲ蛟シ
|
||
82 1 low = Read_DS18B20();
|
||
83 1 high = Read_DS18B20();
|
||
84 1 return (float)(high << 8 | low) * 0.0625;
|
||
85 1 }
|
||
|
||
|
||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||
CODE SIZE = 195 ----
|
||
CONSTANT SIZE = ---- ----
|
||
XDATA SIZE = ---- ----
|
||
PDATA SIZE = ---- ----
|
||
DATA SIZE = ---- ----
|
||
IDATA SIZE = ---- ----
|
||
BIT SIZE = ---- 1
|
||
END OF MODULE INFORMATION.
|
||
|
||
|
||
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
|