📄 text1.lst
字号:
155 2 sendwave=0xff;
156 2 else
157 2 sendwave=0x00;
158 2 break;
159 2 }
160 1 if(counter==81)
161 1 counter=1;
162 1 if(counter==40||counter==80)
163 1 {
164 2 fre=20*step;
165 2 led[0]=aaa;
166 2 led[1]=fre/100;
167 2 led[2]=(fre%100)/10;
168 2 led[3]=fre%10;
169 2
170 2 leddisp();
171 2 }
172 1 if(counter1==1001)
173 1 counter1=1;
174 1 if(counter1==1000)
175 1 readkey();
176 1
177 1 //counter=counter+1;
178 1 }
C51 COMPILER V7.50 TEXT1 01/28/2008 13:08:16 PAGE 4
179
180
181 void main(void)
182 {
183 1
184 1 TMOD = 0x01; //
185 1 TH0 = 0xff; //定时器中断时间间隔 0.1ms
186 1 TL0 = 0x38;
187 1 TCON = 0x10;
188 1 ET0 = 1;
189 1 EA = 1;
190 1
191 1
192 1
193 1 while(1)
194 1 {
195 2 if(getkey==1)
196 2 {
197 3 getkey=0;
198 3 switch(keynum)
199 3
200 3 { case 0:
201 4 init_condition();
202 4 break;
203 4 case 1:
204 4 {
205 5 aaa=aaa+1;
206 5 if(aaa==3)
207 5 aaa=0;
208 5 }
209 4 break;
210 4 case 2:
211 4 {
212 5 step=step+1;
213 5 if(step==51)
214 5 step=1;
215 5 }
216 4 break;
217 4 }
218 3 }
219 2
220 2 }
221 1 }
222
223 /***************************************************
224 键盘扫描函数
225 原型: void readkey(void);
226 功能: 当获得有效按键时,令getkey=1,keynum为按键值
227
228 ****************************************************/
229 void readkey(void)
230 {
231 1 if(!(key1==1&&key2==1&&key3==1))
232 1 {
233 2
234 2 if(key1==0)
235 2 keynum=0;
236 2 else if(key2==0)
237 2 keynum=1;
238 2 else
239 2 keynum=2;
240 2 getkey=1;
C51 COMPILER V7.50 TEXT1 01/28/2008 13:08:16 PAGE 5
241 2 }
242 1
243 1
244 1
245 1 }
246
247 /***************************************************
248 数码管显示函数
249 原型: void leddisp(void);
250 功能: 每次调用轮流显示一位数码管
251
252 ****************************************************/
253 void leddisp(void)
254 {
255 1 switch(lednum) //选择需要显示的数码位
256 1 {
257 2 case 0:
258 2 sltld=0xfd; //11111101b
259 2 display=segtab[led[0]]+128;
260 2
261 2 break;
262 2 case 1:
263 2 sltld=0xfb; //11111011b
264 2 display=segtab[led[1]];
265 2 break;
266 2 case 2:
267 2 sltld=0xf7;//11110111b
268 2 display=segtab[led[2]];
269 2 break;
270 2 case 3:
271 2 sltld=0xef; //11101111b
272 2 display=segtab[led[3]] ;
273 2
274 2 break;
275 2 }
276 1
277 1 if(lednum == 0) //更新需要现实的数码位
278 1 {
279 2 lednum = 3;
280 2 }
281 1 else
282 1 {
283 2 lednum = lednum-1;
284 2 }
285 1 }
286 void init_condition(void)
287 {
288 1 aaa=0;
289 1 step=1;
290 1 temp=0;
291 1 }
292
293
294
295
296
297
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 470 ----
CONSTANT SIZE = 1018 ----
C51 COMPILER V7.50 TEXT1 01/28/2008 13:08:16 PAGE 6
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 17 ----
IDATA SIZE = ---- ----
BIT SIZE = 2 ----
EDATA SIZE = ---- ----
HDATA SIZE = ---- ----
XDATA CONST SIZE = ---- ----
FAR CONST SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -