126 lines
4.0 KiB
Plaintext
126 lines
4.0 KiB
Plaintext
C51 COMPILER V9.59.0.0 ONEWIRE 05/02/2024 15:57:34 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 #include "intrins.h"
|
||
9 sbit DQ = P1 ^ 4; // 蜊墓サ郤ソ謨ー謐ョ蜿」
|
||
10 void Delay4us(void) //@12.000MHz
|
||
11 {
|
||
12 1 unsigned char data i;
|
||
13 1
|
||
14 1 _nop_();
|
||
15 1 _nop_();
|
||
16 1 i = 9;
|
||
17 1 while (--i)
|
||
18 1 ;
|
||
19 1 }
|
||
20
|
||
21 //
|
||
22 void Delay_OneWire(unsigned int t)
|
||
23 {
|
||
24 1 unsigned char i;
|
||
25 1 while (t--)
|
||
26 1 {
|
||
27 2 for (i = 0; i < 12; i++)
|
||
28 2 ;
|
||
29 2 }
|
||
30 1 }
|
||
31
|
||
32 //
|
||
33 void Write_DS18B20(unsigned char dat)
|
||
34 {
|
||
35 1 unsigned char i;
|
||
36 1 for (i = 0; i < 8; i++)
|
||
37 1 {
|
||
38 2 DQ = 0;
|
||
39 2 DQ = dat & 0x01;
|
||
40 2 Delay_OneWire(5);
|
||
41 2 DQ = 1;
|
||
42 2 dat >>= 1;
|
||
43 2 }
|
||
44 1 Delay_OneWire(5);
|
||
45 1 }
|
||
46
|
||
47 //
|
||
48 unsigned char Read_DS18B20(void)
|
||
49 {
|
||
50 1 unsigned char i;
|
||
51 1 unsigned char dat;
|
||
52 1
|
||
53 1 for (i = 0; i < 8; i++)
|
||
C51 COMPILER V9.59.0.0 ONEWIRE 05/02/2024 15:57:34 PAGE 2
|
||
|
||
54 1 {
|
||
55 2 DQ = 0;
|
||
56 2 dat >>= 1;
|
||
57 2 DQ = 1;
|
||
58 2 Delay4us();
|
||
59 2 if (DQ)
|
||
60 2 {
|
||
61 3 dat |= 0x80;
|
||
62 3 }
|
||
63 2 Delay_OneWire(5);
|
||
64 2 }
|
||
65 1 return dat;
|
||
66 1 }
|
||
67
|
||
68 //
|
||
69 bit init_ds18b20(void)
|
||
70 {
|
||
71 1 bit initflag = 0;
|
||
72 1
|
||
73 1 DQ = 1;
|
||
74 1 Delay_OneWire(12);
|
||
75 1 DQ = 0;
|
||
76 1 Delay_OneWire(80);
|
||
77 1 DQ = 1;
|
||
78 1 Delay_OneWire(10);
|
||
79 1 initflag = DQ;
|
||
80 1 Delay_OneWire(5);
|
||
81 1
|
||
82 1 return initflag;
|
||
83 1 }
|
||
84
|
||
85 float rd_temperature()
|
||
86 {
|
||
87 1 unsigned char low, high;
|
||
88 1 init_ds18b20();
|
||
89 1 Write_DS18B20(0xcc); // 霍ウ霑⑲OM
|
||
90 1 Write_DS18B20(0x44); // 蜷ッ蜉ィ貂ゥ蠎ヲ霓ャ謐「
|
||
91 1 Delay_OneWire(200); // 遲牙セ<E78999>クゥ蠎ヲ霓ャ謐「
|
||
92 1 init_ds18b20();
|
||
93 1 Write_DS18B20(0xcc); // 霍ウ霑⑲OM
|
||
94 1 Write_DS18B20(0xbe); // 隸サ蜿匁クゥ蠎ヲ蛟シ
|
||
95 1 low = Read_DS18B20();
|
||
96 1 high = Read_DS18B20();
|
||
97 1 return (float)(high << 8 | low) * 0.0625;
|
||
98 1 }
|
||
|
||
|
||
MODULE INFORMATION: STATIC OVERLAYABLE
|
||
CODE SIZE = 212 ----
|
||
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)
|