?? endall.lst
字號:
C51 COMPILER V7.06 ENDALL 01/09/2008 23:50:13 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ENDALL
OBJECT MODULE PLACED IN endall.OBJ
COMPILER INVOKED BY: D:\Xp\KEIL\C51\BIN\C51.EXE endall.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg51.h>
2
3
4 unsigned char dispcode[]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E}
-;
5 unsigned char L0=0;
6 unsigned char L1=0;
7 unsigned char L2=0;
8 unsigned char L3=0;
9 unsigned char T0count=0;
10 bit flag=0;
11
12 /*************************************
13 程序及中斷初始化
14 ************************************/
15 void mcu_int(void)
16 {
17 1 TMOD=0x1D; //T1為16位計時器模式,T0為16位計數器模式
18 1
19 1 TH1=0x3C;
20 1 TL1=0xB0; //初值,產生50ms中斷
21 1 TH0=0x00;
22 1 TL0=0x00; //計數初值
23 1
24 1 EA=1; //開放所有中斷
25 1 ET1=1; //允許T1中斷
26 1 ET0=1; //允許T0中斷
27 1
28 1 TR0=1;
29 1 TR1=1; //開始定時/計數
30 1 }
31
32 void delay(int j)
33 {
34 1 while (j!=0)
35 1 {
36 2 unsigned char i;
37 2 for(i=100;i>0;i--);
38 2 j--;
39 2 }
40 1
41 1 }
42 /***********************************
43 數碼管顯示
44 ***********************************/
45 void show(void)
46 {
47 1 P2=0x01;P0=dispcode[L0]; //L1為個位顯示數字0x01,0x02,0x04,0x08
48 1 delay(1);
49 1 P2=0x02;P0=dispcode[L1];
50 1 delay(1);
51 1 P2=0x04;P0=dispcode[L2];
52 1 delay(1);
53 1 P2=0x08;P0=dispcode[L3];
54 1 delay(1);
C51 COMPILER V7.06 ENDALL 01/09/2008 23:50:13 PAGE 2
55 1 }
56
57
58 /*****************************
59 對計得的數進行處理,返回FX及顯示關鍵字LX
60 ****************************/
61 unsigned long int FX;
62 void process()
63 {
64 1 FX=T0count*65536+TH0*256+TL0;
65 1
66 1 if(FX>3500&&FX<=8000) //以下兩個 if語句 為修正所測頻率
67 1 {
68 2 FX=FX-1;
69 2 }
70 1
71 1 if(FX>8000&&FX<=12000)
72 1 {
73 2 FX=FX-1.3;
74 2 }
75 1 if(FX>9999)
76 1 FX=FX/1000;
77 1 L0=(FX%10)/1; //L1為個位顯示的數字值//
78 1 L1=(FX%100)/10; //L2為十位顯示的數字值//
79 1 L2=(FX%1000)/100; //L3為百位顯示的數字值//
80 1 L3=(FX%10000)/1000; //L4為千位顯示的數字值//
81 1
82 1 }
83 main()
84 {
85 1 mcu_int();
86 1 while(1)
87 1 {
88 2
89 2 if(flag==1)
90 2 {
91 3 process();
92 3 TH0=0x00;
93 3 TL0=0x00;
94 3 flag=0;
95 3 }
96 2 show();
97 2 /*
98 2 P2=0x01;P0=dispcode[10];
99 2 delay(2);
100 2 P2=0x02;P0=dispcode[11];
101 2 delay(2);
102 2 P2=0x04;P0=dispcode[12];
103 2 delay(2);
104 2 P2=0x08;P0=dispcode[13];
105 2 delay(2);
106 2 */
107 2 }
108 1 }
109
110 void Timer0() interrupt 1 using 0
111 {
112 1 TH0=0x00;
113 1 TL0=0x00;
114 1 T0count++;
115 1 }
116 unsigned char Time_50ms;
C51 COMPILER V7.06 ENDALL 01/09/2008 23:50:13 PAGE 3
117 void Timer1() interrupt 3 using 1
118 {
119 1 TH1=0x3C;
120 1 TL1=0xB0;
121 1 Time_50ms++;
122 1 if(Time_50ms==20)
123 1 {
124 2 Time_50ms=0;
125 2 flag=1;
126 2 // P2=0x01;P0=dispcode[10];
127 2 }
128 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 524 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 26 1
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -