📄 frequency.lst
字号:
196 1 lcd_wrdata(46); //送小数点
197 1
198 1 for(i=0;i<6;i++) //送小数位
199 1 {b[i]=b[i]+0X30;
200 2 lcd_wrdata(b[i]);
201 2 }
202 1 }
203 //*********************************************************//
204 // 定时器0中断 //
205 //*********************************************************//
206 void timer0() interrupt 1
207 {
208 1 n0+=1;
209 1 }
210 //*********************************************************//
211 // 定时器1中断 //
212 //*********************************************************//
213 void timer1() interrupt 3
214 {if(flag0==1)
215 1 { n6+=1;
216 2 if(n6==50)
217 2 {TR0=0;TR1=0;
218 3 flag0=0;
219 3 }
220 2 }
221 1
222 1 else if(flag1==1)
223 1 {n4+=1;
224 2 flag1=0;
225 2 }
226 1
227 1 else
228 1 n2+=1;
229 1 }
230
231 //*********************************************************//
232 // 主函数 //
233 //*********************************************************//
234 void main()
235 {
236 1 IE=0XBF; //中断全开
237 1 IP=0X08; //定时器1优先级最高
238 1 P1=0; //关控制位
239 1
240 1 for(;;)
241 1 {
C51 COMPILER V7.06 FREQUENCY 07/31/2007 13:31:02 PAGE 5
242 2 P1=0;
243 2 state=0;
244 2 flag0=0;flag1=0;
245 2 n0=0;n2=0;n4=0;n6=0;
246 2 do{
247 3 key();
248 3 }while(state==0);
249 2
250 2
251 2 if(state!=3)
252 2 {flag0=1;
253 3 TMOD=0X26; //T0工作在计数器方式2下,T1工作在定时器方式2下
254 3 TH1=0X05; //产生8MS*50的阀门,未算
255 3 TL1=0XF5;
256 3 TH0=0;
257 3 TL0=0;
258 3 TR1=1;
259 3 TR0=1;
260 3 do{}while(flag1==1);
261 3
262 3 n1=n0*8192+TL0;
263 3
264 3
265 3 TMOD=0XA0; //T1做定时器测高电平宽度,由INT1控制
266 3 TH1=0;
267 3 TL1=0;
268 3 TR1=1;
269 3 if(n1<=1) //送控制信号
270 3 P1=0X40;
271 3 else if(n1<=1000)
272 3 P1=0X20;
273 3 else
274 3 P1=0X10;
275 3 cmd=P1;
276 3 } //否则为测脉宽方式
277 2
278 2 else
279 2 {TMOD=0XA0; //T1做定时器测高电平宽度,由INT1控制
280 3 TH1=0;
281 3 TL1=0;
282 3 TR1=1;
283 3 P1=0X80;
284 3 }
285 2
286 2 do{}while(INT1==1);
287 2
288 2 n3=n2*8192+TL0;
289 2
290 2
291 2 if(state==4) //在占空比下,先测周期,再测脉宽
292 2 {flag1=1;
293 3 TMOD=0XA0;
294 3 TH1=0;
295 3 TL1=0;
296 3 TR1=1;
297 3
298 3 P1=0X80;
299 3
300 3 do{}while(INT1==1);
301 3 flag1=0;
302 3
303 3 n5=n4*8192+TL0;
C51 COMPILER V7.06 FREQUENCY 07/31/2007 13:31:02 PAGE 6
304 3 }
305 2
306 2
307 2 data_process();
308 2
309 2 zhuan_huan();
310 2
311 2 lcd();
312 2 }
313 1 }
314
C51 COMPILER V7.06 FREQUENCY 07/31/2007 13:31:02 PAGE 7
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
lcdbus . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
data_process . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
tcy. . . . . . . . . . . . . . . . . AUTO DATA FLOAT 0000H 4
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
IE . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A8H 1
_lcd_string. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
strpoint . . . . . . . . . . . . . . AUTO DATA PTR 0000H 3
i. . . . . . . . . . . . . . . . . . * REG * DATA INT 0004H 2
size_t . . . . . . . . . . . . . . . . TYPEDEF ----- U_INT ----- 2
_lcd_wrcmd . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
lcdcmd . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
IP . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B8H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
n0 . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0000H 2
n1 . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0002H 2
n2 . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0004H 2
n3 . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0006H 2
n4 . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 0008H 2
n5 . . . . . . . . . . . . . . . . . . PUBLIC DATA U_INT 000AH 2
state. . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 000CH 1
n6 . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 000DH 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
lcd. . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
cmd. . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 000EH 1
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
TCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0088H 1
zhuan_huan . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
dc . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0094H 1
key. . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
key. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
lcd_init . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
flag0. . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0000H 1
TH0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008CH 1
flag1. . . . . . . . . . . . . . . . . PUBLIC DATA BIT 0001H 1
TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1
TL0. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008AH 1
TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1
timer0 . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
timer1 . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
cs . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0096H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
lcd_checkbusy. . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
lcdstate . . . . . . . . . . . . . . * REG * DATA INT 0006H 2
a. . . . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 000FH 2
b. . . . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0011H 6
T2CON. . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00C8H 1
rw . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0095H 1
soft_nop . . . . . . . . . . . . . . . PUBLIC CODE PROC 0006H -----
_delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
n. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
s. . . . . . . . . . . . . . . . . . . PUBLIC DATA FLOAT 0017H 4
C51 COMPILER V7.06 FREQUENCY 07/31/2007 13:31:02 PAGE 8
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
PSW. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00D0H 1
_lcd_wrdata. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
lcddata. . . . . . . . . . . . . . . * REG * DATA CHAR 0006H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 2221 ----
CONSTANT SIZE = 57 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 27 7
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -