?? ds1820.lst
C51 COMPILER V8.01 DS1820 10/03/2008 08:28:27 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE DS1820
OBJECT MODULE PLACED IN DS1820.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE DS1820.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <data.h>
2
3 /*---內(nèi)部函數(shù)定義區(qū)---*/
4 void Init_DS18B20(); //DS18B20復(fù)位函數(shù)
5 uchar ReadOneChar(); //DS18B20字節(jié)讀函數(shù)
6 void WriteOneChar(uchar dat); //DS18B20字節(jié)寫函數(shù)
7 void delay_18B20(uint i); //DS18B20延時函數(shù)
8 /*---內(nèi)部函數(shù)定義區(qū)---*/
9
10 /***********ds18b20延遲子函數(shù)(晶振24MHz )*******/
11
12 void delay_18B20(unsigned int i)
13 {
14 1 while(i--);
15 1 }
16
17 /**********ds18b20初始化函數(shù)**********************/
18
19 void Init_DS18B20(void)
20 {
21 1 unsigned char x=0;
22 1 DQ = 1; //DQ復(fù)位
23 1 delay_18B20(16); //稍做延時
24 1 DQ = 0; //單片機將DQ拉低
25 1 delay_18B20(160); //精確延時 大于 480us
26 1 DQ = 1; //拉高總線
27 1 delay_18B20(28);
28 1 x=DQ; //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
29 1 delay_18B20(40);
30 1 }
31
32 /***********ds18b20讀一個字節(jié)**************/
33
34 unsigned char ReadOneChar(void)
35 {
36 1 uchar i=0;
37 1 uchar dat = 0;
38 1 for (i=8;i>0;i--)
39 1 {
40 2 DQ = 0; // 給脈沖信號
41 2 dat>>=1;
42 2 _nop_();
43 2 _nop_();
44 2 _nop_();
45 2 _nop_();
46 2 DQ = 1; // 給脈沖信號
47 2 _nop_();
48 2 if(DQ)
49 2 dat|=0x80;
50 2 delay_18B20(12);
51 2 }
52 1 return(dat);
53 1 }
54
55 /*************ds18b20寫一個字節(jié)****************/
C51 COMPILER V8.01 DS1820 10/03/2008 08:28:27 PAGE 2
56
57 void WriteOneChar(uchar dat)
58 {
59 1 unsigned char i=0;
60 1 for (i=8; i>0; i--)
61 1 {
62 2 DQ = 0;
63 2 _nop_();
64 2 DQ = dat&0x01;
65 2 delay_18B20(14);
66 2 DQ = 1;
67 2 dat>>=1;
68 2 }
69 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 109 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -