📄 practise.lst
字号:
C51 COMPILER V6.12 PRACTISE 04/29/2009 13:12:57 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE PRACTISE
OBJECT MODULE PLACED IN .\practise.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE .\practise.c DEBUG OBJECTEXTEND
stmt level source
1 #include<reg52.h>
2 #include<intrins.h>
3
4 #define uchar unsigned char
5 #define uint unsigned int
6
7 sbit feng=P2^3;
8 sbit dq=P2^2;
9 sbit led=P1^0;
10 sbit dula=P2^6;
11 sbit wela=P2^7;
12
13 uchar L_temper;
14 uchar H_temper;
15
16 uint C_temper;
17
18 uchar code table[]={
19 0x3f,0x06,0x5b,0x4f,
20 0x66,0x6d,0x7d,0x07,
21 0x7f,0x6f,0x77,0x7c,
22 0x39,0x5e,0x79,0x71
23 };
24
25 uchar code table2[]={
26 0xfe,0xfd,0xfb,0xf7,0xef,0xdf
27 };
28
29 /******************延时***************************/
30
31 void delay_us()
32 {
33 1 _nop_();
34 1 }
35
36 void delay_ms(uint z)
37 {
38 1 uint ii,jj;
39 1 for(ii=z;ii>0;ii--)
40 1 for(jj=110;jj>0;jj--);
41 1 }
42
43 /****************复位与存在***********************/
44
45 void reset()
46 {
47 1 dq=1;
48 1 delay_us(5);
*** ERROR C267 IN LINE 48 OF .\PRACTISE.C: 'delay_us': requires ANSI-style prototype
49 1 dq=0;
50 1 delay_us(600);
51 1 dq=1;
52 1 delay_us(30);
53 1 }
54
C51 COMPILER V6.12 PRACTISE 04/29/2009 13:12:57 PAGE 2
55 void exist()
56 {
57 1 uchar ii=20;
58 1 while(dq==0||ii<0) ii--;
59 1 delay_us(500);
60 1 dq=1;
61 1 }
62
63 /*************************************************/
64 bit read_bit()
65 {
66 1 bit bb;
67 1
68 1 dq=0;
69 1 delay_us(2);
70 1 dq=1;
71 1 delay_us(5);
72 1 bb=dq;
73 1 delay_us(60);
74 1
75 1 return bb;
76 1 }
77
78 /*************************************************/
79
80 //读字节
81 uchar read_byte()
82 {
83 1 uchar byte=0x00;
84 1 uchar ii=0,jj;
85 1 bit temp;
86 1 //uchar tt=0x01;
87 1
88 1 while(ii < 8)
89 1 {
90 2 delay_us(2);
91 2 temp=read_bit();
92 2 byte=(byte>>1)|(temp<<7);
*** ERROR C193 IN LINE 92 OF .\PRACTISE.C: '<<': bad operand type
93 2 ++ii;
94 2 /*
95 2 delay_us(2);
96 2 temp=read_bit();
97 2 byte=byte+temp&tt;
98 2 tt<<1;
99 2 */
100 2 }
101 1
102 1 return(byte);
103 1 }
104
105 //写入字节
106 void write_byte(uchar xx)
107 {
108 1 bit bb;
109 1 uchar test=0x01;//*********************************这里可能有问题?
110 1 uchar date=xx;
111 1 uchar ii=0;
112 1
113 1 while(ii < 8)
114 1 {
115 2 bb=test&date;
C51 COMPILER V6.12 PRACTISE 04/29/2009 13:12:57 PAGE 3
116 2 if(bb)
117 2 {
118 3 dq=0;
119 3 delay_us(5);
120 3 dq=1;
121 3 delay_us(15);
122 3 }
123 2 else
124 2 {
125 3 dq=0;
126 3 delay_us(100);
127 3 dq=1;
128 3 delay_us(2);
129 3 }
130 2 ++ii;
131 2 }
132 1
133 1 }
134
135 /**********************温度************************/
136
137 void convert_temper()
138 {
139 1 reset();
140 1 exist();
141 1 write_byte(0xCC);
142 1 write_byte(0x44);
143 1 }
144
145 void read_temper()
146 {
147 1 uchar LSB_temper=0x00;
148 1 uchar MSB_temper=0x00;
149 1
150 1 reset();
151 1 exist();
152 1 write_byte(0xCC);
153 1 write_byte(0xBE);
154 1 LSB_temper=read_byte();
155 1 MSB_temper=read_byte();
156 1
157 1 C_temper=MSB_temper;
158 1 C_temper=(C_temper<<8)|LSB_temper;
159 1 C_temper=C_temper*0.0625*10+0.5;
160 1
161 1 return C_temper;
162 1 }
163
164 /******************响应******************************/
165
166 void display_temper()
167 {
168 1 uchar aa,bb,cc;
169 1
170 1 aa=C_temper/100;
171 1 bb=C_temper%10/10;
172 1 cc=C_temper/10;
173 1
174 1 wela=1;
175 1 P0=table2[0];
176 1 wela=0;
177 1 delay_ms(2);
C51 COMPILER V6.12 PRACTISE 04/29/2009 13:12:57 PAGE 4
178 1
179 1 dula=1;
180 1 P0=table[cc];
181 1 dula=0;
182 1 delay_ms(2);
183 1
184 1 wela=1;
185 1 P0=table2[1];
186 1 wela=0;
187 1 delay_ms(2);
188 1
189 1 dula=1;
190 1 P0=table[bb+0x80];
191 1 dula=0;
192 1 delay_ms(2);
193 1
194 1 wela=1;
195 1 P0=table2[2];
196 1 wela=0;
197 1 delay_ms(2);
198 1
199 1 dula=1;
200 1 P0=table[aa];
201 1 dula=0;
202 1 delay_ms(2);
203 1
204 1 }
205
206 void init1()
207 {
208 1
209 1 }
210
211
212
213
214
215 void main()
216 {
217 1 feng=1;
218 1 }
219
C51 COMPILATION COMPLETE. 0 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -