📄 freqlow.lst
字号:
C51 COMPILER V7.06 FREQLOW 02/07/2004 11:33:45 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE FREQLOW
OBJECT MODULE PLACED IN freqlow.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE freqlow.c OPTIMIZE(6,SPEED) BROWSE INTVECTOR(0X8000) DEBUG OBJECTEXTEND
stmt level source
1 #include "reg52.h"
2 #include "Zlg7290.h" //Zlg7290库
3 #include "viic_c51.h" //iic库
4
5 unsigned char scount;
6
7 void timer0_int() interrupt 1
8 {
9 1 TR0=0; //关闭定时器
10 1 TH0=0x4C; //重装定时器
11 1 TL0=0x19;
12 1 TF0=0; //清除溢出标志
13 1 scount--;
14 1 if(scount>0) //到1s了吗?
15 1 TR0=1; //没到,开定时器
16 1 else
17 1 TR1=0; //到了,停止T1的计数
18 1 }
19
20 main()
21 {
22 1 unsigned char a[5];
23 1 unsigned char i,resh,resl;
24 1 unsigned long int freq;
25 1 TMOD=0xD1; //定时器0工作在定时方式1,定时器1工作在计数方式1
26 1 TH0=0x4C; //定时50ms
27 1 TL0=0x19;
28 1 TH1=0; //计数值清0
29 1 TL1=0;
30 1 scount=20; //定时1s
31 1 ET0=1; //开定时器0中断
32 1 EA=1; //开总中断
33 1 TR0=1; //启动定时器和计数器
34 1 TR1=1;
35 1
36 1 for (i=0;i<5;++i)
37 1 a[i]=0;
38 1 ZLG7290_SendBuf(a,5); //在LED上显示5位0。
39 1 while(1)
40 1 {
41 2 if(!scount) //1s时间到
42 2 {
43 3
44 3 resh=TH1; //取出计数值
45 3 resl=TL1;
46 3 TH1=0; //计数值清零
47 3 TL1=0;
48 3 TH0=0x4C; //重装定时器0
49 3 TL0=0x19;
50 3 scount=20; //定时1S
51 3 TR0=1; //启动定时器和计数器
52 3 TR1=1;
53 3 freq=resh*256+resl; //计算频率值
54 3 a[0]=freq%10; //将各位分离显示
55 3 a[1]=(freq%100)/10;
C51 COMPILER V7.06 FREQLOW 02/07/2004 11:33:45 PAGE 2
56 3 a[2]=(freq/100)%10;
57 3 a[3]=(freq/100)/10%10;
58 3 a[4]=freq/10000;
59 3 ZLG7290_SendBuf(a,5); //送ZLG7290显示
60 3 }
61 2 }
62 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 286 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 11
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 + -