📄 zbb.lst
字号:
C51 COMPILER V7.06 ZBB 11/14/2007 14:09:26 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE ZBB
OBJECT MODULE PLACED IN zbb.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE zbb.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1
2 #include "AT892051.H"
3
4 #define B0 P1_7
5 #define B1 P1_6
6 #define B2 P1_5
7 #define B3 P1_4
8 #define B4 P1_3
9 #define B5 P1_2
10 #define B6 P1_1
11 #define B7 P1_0
12
13 #define DOG P3_0
14
15 #define W1 P3_3
16 #define W2 P3_4
17 #define W3 P3_5
18 #define W4 P3_1
19
20 #define RUN P3_7
21
22 #define uchar unsigned char
23 #define uint unsigned int
24 /****************************/
25 uint data timeCount=0;
26 uchar data sampCount=0; //采集计数
27
28 uchar data countFlag=0x55; //计数起始标志
29 long data zjData=0; //频率计算中间变量
30
31 uint data tempData=0;
32 long data endData=0; //最终显示数据//频率计算结果
33 uchar data disbuffer[4]={5,0,0,0};
34 uint data feqBuf[20]; //20个采样数据取平均值
35 uchar data allCount=0;
36 //uint data allBuf[3]; //3次平均值
37 uchar data ShowFlag;
38 //LED显示字符编码,按照0~9的顺序。
39 uchar data ledNo[10]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09};
40 void init();
41
42 //========================================
43 void Int0(void) interrupt 0 using 1
44 {
45 1 if(ShowFlag == 0x55)
46 1 {
47 2 countFlag=~countFlag;
48 2 if(countFlag == 0xaa)
49 2 {
50 3 TL0=0x00;
51 3 TH0=0x00;
52 3 }
53 2 else
54 2 {
55 3 tempData=TH0;
C51 COMPILER V7.06 ZBB 11/14/2007 14:09:26 PAGE 2
56 3 tempData=(tempData<<8)+TL0;
57 3 ShowFlag=0x66;
58 3 }
59 2 }
60 1 }
61
62 //========================================
63 /***********************************
64 定时器0
65 1ms
66 ************************************/
67 /*void TIME_0(void) interrupt 1 using 1
68 {
69 TL0=0X66;
70 TH0=0XFC;
71 timeCount++;
72 }*/
73
74 void main()
75 {
76 1 uint iii;
77 1 uchar i=0;
78 1 init();
79 1
80 1 ShowFlag=0x55;
81 1
82 1 while(1)
83 1 {
84 2 DOG=!DOG;
85 2 if(ShowFlag == 0x66)
86 2 {
87 3 if ((tempData <= 30000) && (tempData >= 15400))
88 3 {
89 4 zjData=100000000/tempData;
90 4 allCount++;
91 4 feqBuf[sampCount]=zjData;
92 4 sampCount++;
93 4 ShowFlag=0x55;
94 4 if (sampCount >= 20)
95 4 {
96 5 sampCount=0;
97 5 endData=0;
98 5 for (iii=0;iii<20;iii++)
99 5 {
100 6 endData+=feqBuf[iii];
101 6 }
102 5 endData=endData/20+3;
103 5 if (allCount >= 150)
104 5 {
105 6 allCount=0;
106 6 disbuffer[0]=endData/1000;
107 6 endData=endData%1000;
108 6 disbuffer[1]=endData/100;
109 6 endData=endData%100;
110 6 disbuffer[2]=endData/10;
111 6 disbuffer[3]=endData%10;
112 6 }
113 5 }
114 4 }
115 3 else
116 3 {
117 4 ShowFlag=0x55;
C51 COMPILER V7.06 ZBB 11/14/2007 14:09:26 PAGE 3
118 4 countFlag=0x55;
119 4 }
120 3 }
121 2
122 2 if (timeCount >= 100)
123 2 {
124 3 timeCount = 0;
125 3 RUN=!RUN;
126 3 }
127 2 P1=0x0;
128 2 W1=1;
129 2 W2=0;
130 2 W3=0;
131 2 W4=0;
132 2 P1=ledNo[disbuffer[0]];
133 2 for (iii=0;iii<400;iii++);
134 2
135 2 P1=0x0;
136 2 W1=0;
137 2 W2=1;
138 2 W3=0;
139 2 W4=0;
140 2 P1=ledNo[disbuffer[1]]&0xfe;
141 2 for (iii=0;iii<400;iii++);
142 2
143 2 P1=0x0;
144 2 W1=0;
145 2 W2=0;
146 2 W3=1;
147 2 W4=0;
148 2 P1=ledNo[disbuffer[2]];
149 2 for (iii=0;iii<400;iii++);
150 2
151 2 P1=0x0;
152 2 W1=0;
153 2 W2=0;
154 2 W3=0;
155 2 W4=1;
156 2 P1=ledNo[disbuffer[3]];
157 2 for (iii=0;iii<400;iii++);
158 2 W1=0;
159 2 W2=0;
160 2 W3=0;
161 2 W4=0;
162 2 if ((ShowFlag != 0x55) && (ShowFlag != 0x66))
163 2 {
164 3 ShowFlag=0x55;
165 3 }
166 2 if ((countFlag != 0x55) && (countFlag != 0xaa))
167 2 {
168 3 countFlag=0x55;
169 3 }
170 2 timeCount++;
171 2 }
172 1 }
173 /*******************************************************************************************/
174 //接收读卡数据
175 /*******************************************************************************************/
176
177 /*******************************************************************************************/
178 //读卡
179 /*******************************************************************************************/
C51 COMPILER V7.06 ZBB 11/14/2007 14:09:26 PAGE 4
180
181
182 /*******************************************************************************************/
183 //单片机初始化
184 /*******************************************************************************************/
185 void init()
186 {
187 1 EA = 0;
188 1 TMOD= 0x11; //T0 定时器方式1
189 1
190 1 //TH0 = 0xfc;
191 1 //TL0 = 0x66; //1毫秒定时*/
192 1 //TH0 = 0x0;
193 1 //TL0 = 0x0; //定时*/
194 1
195 1 ET0 = 1; //定时器0中断允许
196 1 TR0 = 1; // 设定时器0开始计数
197 1 //ET1 = 1; //定时器1中断允许
198 1 //TR1 = 1; // 设定时器1开始计数
199 1
200 1 IT0 = 1; //外部中断0下降沿触发
201 1 EX0 = 1; //外部中断0允许
202 1
203 1 //ES = 1;
204 1 EA = 1;
205 1 }
206
207 //===========================
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 658 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 70 3
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 + -