?? ds18b20.lst
字號:
C51 COMPILER V7.06 DS18B20 12/29/2010 21:18:41 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE DS18B20
OBJECT MODULE PLACED IN ds18b20.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ds18b20.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "reg52.h"
2 #include "delay.h"
3 #include "intrins.h"
4 sbit dq=P1^4;
5 void rest()
6 {
7 1 dq=0;
8 1 delay_n10us(60);
9 1 dq=1;
10 1 delay_n10us(60);
11 1 }
12
13 void write1()
14 {
15 1 dq=0;
16 1 _nop_();_nop_();
17 1 _nop_();_nop_();
18 1 dq=1;
19 1 delay_n10us(7);
20 1 }
21
22 void write0()
23 {
24 1 dq=0;
25 1 delay_n10us(8);
26 1 dq=1;
27 1 }
28
29 bit read()
30 {
31 1 bit temp;
32 1 dq=0;
33 1 _nop_();_nop_();
34 1 _nop_();
35 1 dq=1;_nop_();
36 1 if(dq)temp=1;
37 1 else temp=0;
38 1 delay_n10us(8);
39 1 return temp;
40 1 }
41
42 void write_18b20_data(unsigned char date)
43 {
44 1 unsigned char m;
45 1 dq=1;
46 1 for(m=0;m<8;m++)
47 1 {
48 2 if(date&0x01)write1();
49 2 else write0();
50 2 date=date>>1;
51 2 }
52 1 }
53
54 unsigned char read_18b20_data()
55 {
C51 COMPILER V7.06 DS18B20 12/29/2010 21:18:41 PAGE 2
56 1 unsigned char m;
57 1 unsigned char date=0;
58 1 dq=1;
59 1 for(m=0;m<8;m++)
60 1 {
61 2 date=date>>1;
62 2 if(read())date=date|0x80;
63 2 }
64 1 return date;
65 1 }
66
67 void ini_18b20()
68 {
69 1 rest();
70 1 write_18b20_data(0xcc); //跳過ROM匹配
71 1 write_18b20_data(0x4e); //發寫寄存器指令
72 1 write_18b20_data(0x7d); //寫高溫報警125
73 1 write_18b20_data(0xc9); //寫低溫報警-55
74 1 write_18b20_data(0x00); //寫轉換模式10位模式,100m
75 1 }
76 unsigned char read_tempuature()
77 {
78 1 unsigned char htem,ltem,tempuature=0;
79 1 rest();
80 1 write_18b20_data(0xcc); //跳過ROM匹配
81 1 write_18b20_data(0x44); //發送轉換指令
82 1 delay_ms(150);
83 1 rest();
84 1 write_18b20_data(0xcc); //跳過ROM匹配
85 1 write_18b20_data(0xbe); //發送讀RAM指令
86 1 ltem=read_18b20_data(); //讀溫度低位
87 1 htem=read_18b20_data(); //讀間諜高位
88 1 rest();
89 1 htem=htem<<5;
90 1 ltem=ltem>>3;
91 1 tempuature=tempuature|htem;
92 1 tempuature=tempuature|ltem;
93 1 return tempuature;
94 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 236 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
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 + -