📄 18b20程序段.lst
字号:
C51 COMPILER V6.10 18B20_蘝蚨_ 11/23/2007 12:22:00 PAGE 1
C51 COMPILER V6.10, COMPILATION OF MODULE 18B20_蘝蚨_
OBJECT MODULE PLACED IN .\18b20程序段.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE .\18b20程序段.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 // #include <AT89X52.H>
2
3 #include <REG52.H>
4 #include <INTRINS.h>
5 unsigned char displaybuf[4]={0,0,0,0};
6 unsigned char readdata[2];
7 sbit DQ=P2^6; //选P3.7口与DS18B20的数字信号输出端DQ相连
8 bit resetpulse(void) //DS18B20初始化实现对DS18B20的复位
9 { bit pre;
10 1 unsigned char i;
11 1 DQ=0; //发出复位脉冲,将数据线下拉480μS-960μS
12 1 for(i=220;i>0;i--); //(改!!!!!!!!!!!!!!!!!!!!)
13 1 DQ=1; //DS18B20等待15μS-60μS
14 1 for(i=60;i>0;i--);
15 1 pre=DQ;
16 1 for(i=150;i>0;i--);
17 1 return(pre); // DS18B20返回60μS-240μS存在低脉冲,判断是否准备好接受或发送数据
18 1 }
19
20 void writecommandtods18b20(unsigned char command) //写时序
21 {
22 1 unsigned char i;
23 1 unsigned char j;
24 1
25 1 for(i=0;i<8;i++)
26 1 {
27 2 if((command & 0x01)==0) //写0时序
28 2 {
29 3 DQ=0; //拉低单总线至少60μS,保证DS18B20在15μS-45μS时可以正确地采样I/O总线上的低电平
30 3 for(j=35;j>0;j--);
31 3 DQ=1;
32 3 }
33 2 else //写1时序
34 2 {
35 3 DQ=0; //拉低单总线后,在15us之内就得释放
36 3 for(j=2;j>0;j--);
37 3 DQ=1;
38 3 for(j=33;j>0;j--);
39 3 }
40 2 command=_cror_(command,1);
41 2 }
42 1 }
43
44 unsigned char readdatafromds18b20(void) //读时序
45 {
46 1 unsigned char i;
47 1 unsigned char j;
48 1 unsigned char temp;
49 1
50 1 temp=0;
51 1 for(i=0;i<8;i++)
52 1 {
53 2 temp=_cror_(temp,1);
54 2 DQ=0; //单总线拉低后,读时序开始
55 2 _nop_();
C51 COMPILER V6.10 18B20_蘝蚨_ 11/23/2007 12:22:00 PAGE 2
56 2 _nop_();
57 2 DQ=1; //停止将数据线拉低,以读取数据
58 2 for(j=10;j>0;j--);
59 2 if(DQ==1)
60 2 {
61 3 temp=temp | 0x80;
62 3 }
63 2 else
64 2 {
65 3 temp=temp | 0x00;
66 3 }
67 2 for(j=20;j>0;j--); ////////////////////(改!!!!!!!!!!!!)
68 2 }
69 1 return(temp);
70 1 }
71
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 114 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -