📄 ds18b20c.lst
字号:
C51 COMPILER V7.20 DS18B20C 04/01/2005 12:39:16 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE DS18B20C
OBJECT MODULE PLACED IN ds18b20c.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE ds18b20c.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************************************************************
2 YB-51-B DS18B20数字温度模块的演示程序(函数模块)
3 来源: 郑州远博科技 王兴民
4 0371-66949037 0371-67256036 13949105551
5 (需要参看DS18B20的原理和时序,见配套光盘)
6 ***************************************************************************/
7
8 #include <config.h>
9 #define DQ18B20 P2_6 //DS18B20接口定义
10
11 /*****************************************************************************
12 ds18b20 的各个功能函数
13 ******************************************************************************/
14 /*****************************************************************************
15 写18b20
16 ******************************************************************************/
17 void Write_18b20(Uchar ddata) {
18 1 Uchar i;
19 1 for(i=0;i<8;i++)
20 1 {
21 2 DQ18B20 =0;
22 2 Delayus(1); //延时18us
23 2 DQ18B20 =(bit)(ddata&0x01);
24 2 ddata=ddata>>1;
25 2 Delayus(6); //延时68us
26 2 DQ18B20 =1;
27 2 }
28 1 }
29 /*******************************************************************************
30 读18b20
31 ********************************************************************************/
32 Uchar Read_18b20(void) {
33 1 Uchar i,temp;
34 1 for(i=0;i<8;i++)
35 1 {
36 2 temp=temp>>1;
37 2 DQ18B20 =0;
38 2 DQ18B20 =1;
39 2 Delayus(0);
40 2 if(DQ18B20 ==0)
41 2 {
42 3 temp=temp&0x7f;
43 3 }
44 2 else
45 2 {
46 3 temp=temp|0x80;
47 3 }
48 2 Delayus(5); //延时58us
49 2 DQ18B20 =1;
50 2 }
51 1 return temp;
52 1 }
53
54 /*********************************************************************************
55 18b20初始化
C51 COMPILER V7.20 DS18B20C 04/01/2005 12:39:16 PAGE 2
56 **********************************************************************************/
57 void Init_18b20(void) {
58 1 DQ18B20 =0;
59 1 Delayus(50); //延时508us
60 1 DQ18B20 =1;
61 1 Delayus(10); //延时108us
62 1 while(!DQ18B20 ) ;
63 1 DQ18B20 =1;
64 1
65 1 }
66 /**************************************************************************************
67 跳过函数
68 ***************************************************************************************/
69 void Skip(void) {
70 1 Write_18b20(0xcc);
71 1 }
72
73 /**************************************************************************************
74 转换函数
75 ***************************************************************************************/
76 void Convert(void) {
77 1 Write_18b20(0x44);
78 1 }
79
80 /**************************************************************************************
81 read_scrat
82 ***************************************************************************************/
83 void Read_scrat(void) {
84 1 Write_18b20(0xbe);
85 1 }
86 /*************************************************************************************
87
88 **************************************************************************************/
89
90
91
92
93
94
95
96
97
98
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 123 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -