📄 b20.lst
字号:
C51 COMPILER V6.10 B20 11/27/2007 15:20:37 PAGE 1
C51 COMPILER V6.10, COMPILATION OF MODULE B20
OBJECT MODULE PLACED IN F:\b20\b20.OBJ
COMPILER INVOKED BY: C:\lope\kc51\bin\C51.exe F:\b20\b20.c SMALL OT(0,SIZE) SB OR DB OE
stmt level source
1 #include <reg52.h>
2
3
4 sbit P00=P0^0;
5 sbit P01=P0^1;
6 sbit SCL=P0^2;
7 sbit SDA=P0^3;
8 sbit DQ=P0^4; //DS18B20 DQ线
9
10 sbit P10=P1^0;
11 sbit P11=P1^1;
12 sbit P12=P1^2;
13
14 bit temp;
15 unsigned int a;
16 unsigned int tempL,tempH,temp_sign,temperature;
17
18
19 //初始化函数
20 void init()
21 {
22 1 P0=0xff;//读前先给置1
23 1 P1=0xff;
24 1 P00=0; //电机断电
25 1 P01=0;
26 1 P10=0; //关掉LED
27 1 }
28
29 //延时函数10ms
30 void mdelay(unsigned char DelayTime)
31 {
32 1 unsigned int n;
33 1 n=0;
34 1 while(n < DelayTime)
35 1 {
36 2 n++;
37 2 }
38 1 return;
39 1 }
40
41 /*----------------------
42 函数:DS18B20初始化子函数
43 ----------------------*/
44 init_DS18B20()
45 {
46 1 unsigned char x=0;
47 1 DQ=1;
48 1 mdelay(8);
49 1 DQ=0;
50 1 mdelay(90);
51 1 DQ=1;
52 1 mdelay(5);
53 1 x=DQ;
54 1 while(x);
55 1 mdelay(15);
C51 COMPILER V6.10 B20 11/27/2007 15:20:37 PAGE 2
56 1 }
57
58 //read byte
59 unsigned int read_byte()
60 {
61 1 unsigned int i=0;
62 1 unsigned char dat=0;
63 1 for(i=8;i>0;i--)
64 1 {
65 2 DQ=0;
66 2 dat>>=1;
67 2 DQ=1; //主机数据线从高到低,在拉高产生读信号
68 2 if(DQ)
69 2 {
70 3 dat|=0x80;
71 3 }
72 2 mdelay(5);
73 2 }
74 1 return(dat);
75 1 }
76
77 //write byte
78 write_byte(unsigned int dat)
79 {
80 1 unsigned int i=0;
81 1 for(i=0;i<8;i++)
82 1 {
83 2 DQ=0; //数据线从高到低,产生写始信号
84 2 DQ=dat&0x01;
85 2 mdelay(6);
86 2 DQ=1;
87 2 dat>>=1;
88 2 }
89 1 mdelay(5);
90 1 }
91
92 /*----------------------------------
93 函数功能: DS18B20 read temperature
94 ----------------------------------*/
95 read_temperature()
96 {
97 1
98 1 init_DS18B20();
99 1 write_byte(0xcc);
100 1 write_byte(0x44);
101 1
102 1 mdelay(200);
103 1 while(!DQ);
104 1
105 1 init_DS18B20();
106 1 write_byte(0xcc);
107 1 write_byte(0xbe);
108 1
109 1 tempL=read_byte();
110 1 tempH=read_byte();
111 1 temp_sign=tempH&0xf8;
112 1 tempL>>=4;
113 1 tempH<<=4;
114 1 temperature=tempH|tempL;
115 1 if(temp_sign==0xf8)
116 1 {
117 2 temperature=(~temperature)+0x01;
C51 COMPILER V6.10 B20 11/27/2007 15:20:37 PAGE 3
118 2 }
119 1 mdelay(200);
120 1 return(temperature);
121 1 }
122
123 //16 conversion 10 (error)
124 unsigned int conversion(unsigned int a)
125 {
126 1 unsigned int dat;
127 1 switch(a)
128 1 {
129 2 case 0:dat = 0x00;break;
130 2 case 1:dat = 0x01;break;
131 2 case 2:dat = 0x02;break;
132 2 case 3:dat = 0x03;break;
133 2 case 4:dat = 0x04;break;
134 2 case 5:dat = 0x05;break;
135 2 case 6:dat = 0x06;break;
136 2 case 7:dat = 0x07;break;
137 2 case 8:dat = 0x08;break;
138 2 case 9:dat = 0x09;break;
139 2 case 0x0a: dat =0x10;break;
140 2 case 0x0b: dat =0x11;break;
141 2 case 0x0c: dat =0x12;break;
142 2 case 0x0d: dat =0x13;break;
143 2 case 0x0e: dat =0x14;break;
144 2 case 0x0f: dat =0x15;break;
145 2 }
146 1 return(dat);
147 1 }
148
149 //two 16 进制
150 unsigned int con(unsigned int dat)
151 {
152 1 unsigned int m,n;
153 1 n=conversion(dat&0x0f);
154 1 m=(dat>>4)&0x0f;
155 1 m=conversion(m);
156 1 m=m*16;
157 1 n=m+n;
158 1 return(n);
159 1 }
160 void main(void)
161 {
162 1 init();
163 1 a=read_temperature();
164 1 ACC=a;
165 1
166 1 }
C51 COMPILER V6.10 B20 11/27/2007 15:20:37 PAGE 4
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
ACC. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00E0H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
ET2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ADH 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
PT2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BDH 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
T2EX . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
T2 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
TF2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CFH 1
C51 COMPILER V6.10 B20 11/27/2007 15:20:37 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
EXF2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CEH 1
RCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CDH 1
TCLK . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CCH 1
EXEN2. . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CBH 1
TR2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00CAH 1
C_T2 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C9H 1
CP_RL2 . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00C8H 1
P00. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0080H 1
P01. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0081H 1
SCL. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0082H 1
SDA. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0083H 1
DQ . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0084H 1
P10. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0090H 1
P11. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0091H 1
P12. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0092H 1
temp . . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
a. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0000H 2
tempL. . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0002H 2
tempH. . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0004H 2
temp_sign. . . . . . . . . . . . . . . PUBLIC DATA U_INT 0006H 2
temperature. . . . . . . . . . . . . . PUBLIC DATA U_INT 0008H 2
init . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_mdelay. . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
DelayTime. . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
n. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0001H 2
init_DS18B20 . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
x. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
read_byte. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0000H 2
dat. . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0002H 1
_write_byte. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
dat. . . . . . . . . . . . . . . . . AUTO DATA U_INT 0000H 2
i. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0002H 2
read_temperature . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
_conversion. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
a. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0000H 2
dat. . . . . . . . . . . . . . . . . AUTO DATA U_INT 0002H 2
_con . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
dat. . . . . . . . . . . . . . . . . AUTO DATA U_INT 0000H 2
m. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0002H 2
n. . . . . . . . . . . . . . . . . . AUTO DATA U_INT 0004H 2
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 677 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 31 ----
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 + -