181818.lst
来自「本程序主要内容18b20+s52+uart单点测温详细c51程序」· LST 代码 · 共 154 行
LST
154 行
C51 COMPILER V7.50 181818 05/26/2007 19:09:07 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 181818
OBJECT MODULE PLACED IN 181818.OBJ
COMPILER INVOKED BY: D:\KeilC51\C51\BIN\C51.EXE 181818.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include <intrins.h>
3 sbit DQ=P3^3;
4 unsigned char c[2];
5 unsigned char x,y;
6 displaycode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xC6,0xA1};//0,1,2,3,4,5,6,7,8,
-9
7 unsigned char t[2]={0};
8 sbit P2_1=P2^1;
9 sbit P2_0=P2^0;
10 sbit P2_2=P2^2;
11 sbit P2_3=P2^3;
12 sbit P2_4=P2^4;
13 sbit P2_5=P2^5;
14 void delayms(unsigned int t) //1ms的延时子程序
15 {
16 1 unsigned int i,j;
17 1 for(i=0;i<t;i++)
18 1 for(j=0;j<120;j++) ;
19 1 }
20
21 void delay(unsigned char time)
22 {while(--time);
23 1 }
24 bit ow_reset(void)
25 {
26 1 bit presence;
27 1 DQ=0;
28 1 delay(255);//515us
29 1 DQ=1;
30 1 delay(30);//65us
31 1 presence=DQ;
32 1 delay(100);//205us
33 1 return(presence);
34 1 }
35
36 void write_byte(unsigned char val)
37 {
38 1 unsigned char i;
39 1 for(i=8;i>0;i--)
40 1 {DQ=0;
41 2 delay(2);//9us
42 2 DQ=val&0x01;
43 2 delay(20);//45us
44 2 DQ=1;
45 2 val=val/2;
46 2 }
47 1 }
48
49 unsigned char Read_byte(void)
50 {
51 1 unsigned char i;
52 1 unsigned char value=0;
53 1 for(i=8;i>0;i--)
54 1 {
C51 COMPILER V7.50 181818 05/26/2007 19:09:07 PAGE 2
55 2 value>>=1;
56 2 DQ=0;
57 2 delay(2);//9us
58 2 DQ=1;
59 2 if(DQ) value|=0x80;
60 2 delay(20);//45us
61 2 }
62 1 return(value);
63 1 }
64
65
66 void tem()
67 { if(DQ==0);
68 1 while(ow_reset());
69 1 write_byte(0xcc);
70 1 write_byte(0xbe);
71 1 c[0]=Read_byte();
72 1 c[1]=Read_byte();
73 1 x=c[0];
74 1 y=c[1];
75 1 x=x>>4;
76 1 x=x&0x0f;
77 1 y=y<<4;
78 1 y=y&0xf0;
79 1 x=x|y;
80 1 t[1]=x/10;
81 1 t[0]=x%10;
82 1 SBUF=x;
83 1 while(TI==0);
84 1 TI=0;
85 1 while(ow_reset());
86 1 write_byte(0xcc);
87 1 write_byte(0x44);
88 1 }
89 void display()
90 {
91 1 P2=0xff;
92 1 P2_1=0;
93 1 P0=displaycode[t[1]];
94 1 delayms(1);
95 1 P2_1=1;
96 1 P2_3=0;
97 1 P0=displaycode[t[0]];
98 1 delayms(1);
99 1 P2_3=1;
100 1 }
101 void main(void)
102 {
103 1 TMOD=0x21;
104 1 TH0=0xA1;
105 1 TL0=0x12;
106 1 ET0=1;
107 1 EA=1;
108 1 TH1=0xfd;
109 1 TL1=0xfd;
110 1 SCON=0x50;
111 1 TR1=1;
112 1 while(ow_reset());
113 1 write_byte(0xcc);
114 1 write_byte(0x44);
115 1 TR0=1;
116 1 while(1);
C51 COMPILER V7.50 181818 05/26/2007 19:09:07 PAGE 3
117 1 }
118 void t0(void) interrupt 1 using 0
119 { TR0=0;
120 1 TH0=0xA1;
121 1 TL0=0x12;
122 1 tem();
123 1 display();
124 1 TR0=1;
125 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 337 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?