?? 18b20.lst
字號:
C51 COMPILER V7.06 18B20 11/01/2006 21:29:09 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 18B20
OBJECT MODULE PLACED IN 18b20.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE 18b20.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg51.h>
2
3 sbit DQ=P2^2; //定義通信端口
4 code unsigned char seg7code[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
5 unsigned int sdata=0;//測溫度的整數(shù)部分
6 unsigned char xiaoshu1=0;//小數(shù)第一位
7 unsigned char xiaoshu2=0;//小數(shù)第二位
8 unsigned char xiaoshu=0;// 二位小數(shù)
9
10 void delay1(unsigned int tc) //顯示延時
11 { while(tc!=0)
12 1 {unsigned int i;
13 2 for(i=0;i<100;i++);
14 2 tc--;
15 2 }
16 1 }
17 void delay(unsigned int i) //時間片延時
18 { while(i--);
19 1 }
20 init_DS18b20(void) //初始化
21 { unsigned char x=0;
22 1 DQ=1; //DQ復(fù)位
23 1 delay(8);
24 1 DQ=0; //單片機將DQ拉低
25 1 delay(80);//精確延時大于480um
26 1 DQ=1; //拉高總線
27 1 delay(14);
28 1 x=DQ; //延時后 如果x=0則初始化成功 x=1則初始化失敗
29 1 delay(20);
30 1 }
31 readonechar(void) // 讀一個字節(jié)
32 { unsigned char i=0;
33 1 unsigned char dat=0;
34 1 for(i=8;i>0;i--)
35 1 { DQ=0; //給脈沖信號
36 2 dat>>=1;
37 2 DQ=1;
38 2 if(DQ)
39 2 dat|=0x80;
40 2 delay(4);
41 2 }
42 1 return(dat);
43 1 }
44 writeonechar(unsigned char dat) //寫一個字節(jié)
45 { unsigned char i=0;
46 1 for(i=8;i>0;i--)
47 1 { DQ=0;
48 2 DQ=dat&0x01;
49 2 delay(5);
50 2 DQ=1;
51 2 dat>>=1;
52 2 }
53 1
54 1 }
55 readtemperature(void)
C51 COMPILER V7.06 18B20 11/01/2006 21:29:09 PAGE 2
56 { unsigned char a=0;
57 1 unsigned char b=0;
58 1 init_DS18b20();
59 1 writeonechar(0xCC); //跳過讀序列號
60 1 writeonechar(0x44); //啟動溫度轉(zhuǎn)換
61 1 init_DS18b20();
62 1 writeonechar(0xCC); //
63 1 writeonechar(0xBE); // 讀溫度積存器
64 1 a=readonechar(); //低位
65 1 b=readonechar(); //高位
66 1 sdata=a/16+b*16; //整數(shù)
67 1 xiaoshu1=(a&0x0f)*10/16; //小數(shù)第一位
68 1 xiaoshu2=(a&0x0f)*100/16%10; //小數(shù)第二位
69 1 xiaoshu=xiaoshu1*10+xiaoshu2; //小數(shù)
70 1
71 1 }
72 void led()
73 { P2=P2&0xef;
74 1 P0=seg7code[sdata/10];
75 1 delay1(8);
76 1 P2=P2|0xf0;
77 1 P2=P2&0xdf;
78 1 P0=seg7code[sdata%10]|0x80;
79 1
80 1 delay1(8);
81 1 P2=P2|0xf0;
82 1 P2=P2&0xbf;
83 1 P0=seg7code[xiaoshu1];
84 1
85 1 delay1(8);
86 1 P2=P2|0xf0;
87 1 P2=P2&0x7f;
88 1 P0=seg7code[xiaoshu2];
89 1 delay1(8);
90 1 P2=P2|0xf0;
91 1
92 1
93 1 }
94 void main()
95 { while(1)
96 1 { led();
97 2 readtemperature();
98 2 }
99 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 341 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 2
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 + -