📄 18b20cewen.lst
字号:
C51 COMPILER V7.06 18B20CEWEN 11/06/2011 10:23:36 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 18B20CEWEN
OBJECT MODULE PLACED IN 18b20cewen.OBJ
COMPILER INVOKED BY: E:\KEIL\C51\BIN\C51.EXE 18b20cewen.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #define uint unsigned int
3 #define uchar unsigned char
4 sbit DQ=P3^7;
5 sbit smg1=P0^0;
6 sbit smg2=P0^1;
7 sbit smg3=P0^2;
8
9
10 uchar temp;
11 uchar code table[]={
12 0x3f,0x06,0x5b,0x4f,
13 0x66,0x6d,0x7d,0x07,
14 0x7f,0x6f,0x77,0x7c,
15 0x39,0x5e,0x79,0x71};//0到F表格
16 void delay(uint z);
17 void init();
18 void write_byte(uchar dat);
19 uchar read_byte(void);
20 uchar readtemperature(void);//读出温度函数
21 void display(void);
22 void main()
23 {
24 1 while(1)
25 1 {
26 2 temp=readtemperature();
27 2 display();
28 2 }
29 1 }
30
31 void delay(uint z)//延时子程序
32 {
33 1 uint x,y;
34 1 for(x=z;x>0;x--)
35 1 for(y=110;y>0;y--);
36 1 }
37
38 void init()
39 {
40 1 uchar n;
41 1 DQ=1;
42 1 delay(8);
43 1 DQ=0;
44 1 delay(80);
45 1 DQ=1;
46 1 delay(8);
47 1 n=DQ;
48 1 delay(4);
49 1
50 1 }
51
52 void write_byte(uchar dat)//低位在前
53 {
54 1 uchar i;
55 1 for(i=0;i<8;i++)
C51 COMPILER V7.06 18B20CEWEN 11/06/2011 10:23:36 PAGE 2
56 1 {
57 2 DQ=0;
58 2 DQ=dat&0x01;
59 2 delay(4);
60 2 DQ=1;
61 2 dat>>=1;//右移一位
62 2
63 2 }
64 1 delay(4);
65 1 }
66
67 uchar read_byte()
68 {
69 1 uchar i,value;
70 1 for(i=0;i<8;i++)
71 1 {
72 2 DQ=0;
73 2 value>>=1;
74 2 DQ=1;
75 2 if(DQ)
76 2 value=0x80;
77 2 delay(4);
78 2
79 2 }
80 1 return value;
81 1 }
82
83 uchar readtemperature(void)
84 {
85 1 uchar a,b;
86 1 init();
87 1 write_byte(0xcc);//跳过ROM
88 1 write_byte(0x44); //启动温度检测
89 1 delay(300);
90 1
91 1 init();
92 1 write_byte(0xcc);
93 1 write_byte(0xbe);//读取
94 1 a=read_byte();
95 1 b=read_byte();//按顺序读取
96 1 b<<=4;
97 1 b+=(a&0xf0)>>4;//a&0xf0屏蔽第四位
98 1 return b;//除了小数的都在B里
99 1 }
100
101 void display(void)
102 {
103 1 smg3=0;
104 1 smg2=0;
105 1 smg1=0;
106 1 P1=table[temp%10];
107 1 delay(20);
108 1 smg2=0;
109 1 smg1=1;
110 1 P1=table[temp/10];
111 1 delay(20);
112 1 }
113
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 239 ----
C51 COMPILER V7.06 18B20CEWEN 11/06/2011 10:23:36 PAGE 3
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -