51_LanQiaoBei/2025/User/Listings/onewire.lst

131 lines
4.2 KiB
Plaintext
Raw Normal View History

2025-04-22 17:34:15 +08:00
C51 COMPILER V9.60.7.0 ONEWIRE 04/15/2025 20:33:28 PAGE 1
C51 COMPILER V9.60.7.0, COMPILATION OF MODULE ONEWIRE
OBJECT MODULE PLACED IN .\Objects\onewire.obj
COMPILER INVOKED BY: C:\Users\ZBright\AppData\Local\Keil_v5\C51\BIN\C51.EXE ..\Driver\onewire.c OPTIMIZE(8,SPEED) BROWSE
- INCDIR(..\Driver) DEBUG OBJECTEXTEND PRINT(.\Listings\onewire.lst) OBJECT(.\Objects\onewire.obj)
line level source
1 /* # 单总线代码片段说明
2 1. 本文件夹中提供的驱动代码供参赛选手完成程序设计参考。
3 2. 参赛选手可以自行编写相关代码或以该代码为基础根据所选单片机类型、<E59E8B><E38081>
-<2D>行速度和试题
4 中对单片机时钟频率的要求,进行代码调试和修改。
5 */
6
7 #include <onewire.h>
8
9 sbit DQ = P1^4;
10
11 //
12 void Delay_OneWire(unsigned int t)
13 {
14 1 unsigned char i;
15 1 while(t--){
16 2 for(i=0;i<12;i++);
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.60.7.0 ONEWIRE 04/15/2025 20:33:28 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 Tempr_Read()
73 {
74 1 unsigned char low;
75 1 unsigned char high;
76 1
77 1 init_ds18b20();
78 1 Write_DS18B20(0xcc);
79 1 Write_DS18B20(0x44);
80 1 Delay_OneWire(200);
81 1
82 1 init_ds18b20();
83 1 Write_DS18B20(0xcc);
84 1 Write_DS18B20(0xbe);
85 1
86 1 low = Read_DS18B20();
87 1 high = Read_DS18B20();
88 1
89 1 return ((high << 8) | low) /16.0;
90 1
91 1 }
92
93
94
95
96
97
98
99
100
101
102
103
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 180 ----
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)