📄 t1main.lst
字号:
236 2 break;
237 2 }
238 1 }
239
240 //-----------------------------------------------
241 void DownKeyProc(void)
C51 COMPILER V6.02 T1MAIN 09/11/2005 06:36:51 PAGE 5
242 {
243 1 switch(DisStatus){
244 2 case Working_DS:
245 2 if( frequency_AD9835 <= 1000 )
246 2 frequency_AD9835 = 1000;
247 2 else
248 2 frequency_AD9835 -= 100;
249 2 testAD9875(frequency_AD9835);
250 2 break;
251 2 case SetupFrequency:
252 2 if( frequencyBCDCode[shiftBit]>0 )
253 2 frequencyBCDCode[shiftBit]--;
254 2 else
255 2 frequencyBCDCode[shiftBit]=9;
256 2
257 2 break;
258 2 case PSKFrequency:
259 2 break;
260 2 case ASKFrequency:
261 2 break;
262 2 default:
263 2 break;
264 2 }
265 1 }
266
267 //-------------------------------------------------------------------------------------
268 //Yes键处理函数
269 void YesKeyProc(void)
270 {
271 1 switch(DisStatus){
272 2 case Working_DS:
273 2 break;
274 2 case SetupFrequency:
275 2 updateFrequency();
276 2 break;
277 2 case PSKFrequency:
278 2
279 2 break;
280 2 case ASKFrequency:
281 2 break;
282 2 default:
283 2 break;
284 2 }
285 1 }
286
287
288 // process psk wave
289
290
291
292 //--------------------------------------------
293
294
295 //--------------按键处理函数------------------
296 void KeyProc(void)
297 {
298 1 switch(KeyCode)
299 1 {
300 2 case Status_KEYCODE:
301 2 StatusKeyProc();
302 2 break;
303 2 case Shiftleft_KEYCODE:
C51 COMPILER V6.02 T1MAIN 09/11/2005 06:36:51 PAGE 6
304 2 ShiftKeyleftProc();
305 2 break;
306 2 case Shiftright_KEYCODE:
307 2 ShiftKeyrightProc();
308 2 break;
309 2 case Up_KEYCODE:
310 2 UpKeyProc();
311 2 break;
312 2 case Down_KEYCODE:
313 2 DownKeyProc();
314 2 break;
315 2 case Yes_KEYCODE:
316 2 YesKeyProc();
317 2 break;
318 2
319 2 default:
320 2 break;
321 2 }
322 1 }
323
324 //-------------------------------------------------------------------------------------------
325
326 //start:0~7,
327 //end:0~7, and start<=end
328 void ZeroProcess(unsigned char start, unsigned char end)
329 {
330 1 unsigned char i;
331 1 for( i=start;i<=end;i++ ){
332 2 if( ReturnLedBufData(i)==0 )
333 2 SetupHideBit(i, 1);
334 2 else
335 2 break;
336 2 }
337 1 }
338
339 void LongTypeVarToDisBuf(unsigned long *pLong)
340 {
341 1 KeilLongToBcd((unsigned char *)pLong, &(BcdBuf[0]));
342 1 //unsigned char SetupDisBuffer(unsigned char DisBit, unsigned char Dp, unsigned char Data, unsigned ch
-ar transMode);
343 1 //注意:long型值的最高位在BcdBuf[0]中,由于只有8为数码管,故没有显示.
344 1 SetupDisBuffer(0, 0, BcdBuf[1]>>4, 0);
345 1 SetupDisBuffer(1, 0, BcdBuf[1]&0x0f, 0);
346 1 SetupDisBuffer(2, 0, BcdBuf[2]>>4, 0);
347 1 SetupDisBuffer(3, 0, BcdBuf[2]&0x0f, 0);
348 1 SetupDisBuffer(4, 0, BcdBuf[3]>>4, 0);
349 1 SetupDisBuffer(5, 0, BcdBuf[3]&0x0f, 0);
350 1 SetupDisBuffer(6, 0, BcdBuf[4]>>4, 0);
351 1 SetupDisBuffer(7, 0, BcdBuf[4]&0x0f, 0);
352 1 }
353
354 //----------------------------------------
355 void UpdateDisplay(void)
356 {
357 1 unsigned char i;
358 1 GoOutAllLED();
359 1 SetupHideBit(0xFF, 0);
360 1 SetupFlashBit(0xFF, 0);
361 1
362 1 switch(DisStatus){
363 2 case Working_DS:
364 2 LongTypeVarToDisBuf(&frequency_AD9835);
C51 COMPILER V6.02 T1MAIN 09/11/2005 06:36:51 PAGE 7
365 2 ZeroProcess(0, 6);
366 2 break;
367 2 case SetupFrequency:
368 2 for( i=0; i<6; i++ ){
369 3 SetupDisBuffer(i, 0, frequencyBCDCode[i], 0);
370 3 SetupFlashBit(shiftBit, 1);
371 3 }
372 2 for( i=6; i<8; i++ ){
373 3 SetupDisBuffer(i, 0, frequencyBCDCode[i], 0);
374 3
375 3 }
376 2 break;
377 2 case PSKFrequency:
378 2 SetupDisBuffer( 0, 0, 0x0E, 0);
379 2 SetupDisBuffer( 1, 0, 5, 0);
380 2 break;
381 2 case ASKFrequency:
382 2 SetupDisBuffer( 0, 0, 0x0A, 1);
383 2 SetupDisBuffer( 1, 0, 5, 0);
384 2 break;
385 2 default:
386 2 break;
387 2 }
388 1 Display();
389 1 }
390 //-------------------------------------------------------------------------------------
391 //系统初始化函
392 void Sys_Init(void)
393 { int i;
394 1 EA=0;
395 1 IE=0x00; /* inhibit all interrupt */
396 1 IP=0x00; /* ; */
397 1 TCON=0x00;
398 1 SCON=0x00;
399 1
400 1 TMOD = 0x12;//Timer 1 is used for TIME
401 1 //Mode 1 (16bit),C/T=0(TIME),Gate=0
402 1 TCON = 0x00;
403 1 TH1 = 0xf8;
404 1 TL1 = 0x30;
405 1 TR1 = 0;
406 1 ET1 = 1;
407 1 // timer0 100us
408 1 TH0 = 56;
409 1 TL0 = 56;
410 1 TR0 = 0;
411 1 ET0 = 0;
412 1 //Initial显示和按键初始化
413 1 //KeyTimer = 200;
414 1 KeyCode = 0xF0;
415 1 KeyMark = 0;
416 1 DisStatus = Working_DS;
417 1
418 1 //外中断0:int0
419 1 IT1=0;//Pulse
420 1 EX1=1;
421 1
422 1 InitialDisplayControl();
423 1 for( i=0;i<1000;i++ ){
424 2 FeedDog();
425 2 }
426 1
C51 COMPILER V6.02 T1MAIN 09/11/2005 06:36:51 PAGE 8
427 1 Display();
428 1 TR1=1;
429 1 EA = 1;
430 1
431 1 frequency_AD9835 = 1000000;
432 1 }
433 void KeyScan(void){
434 1 if(KeyMark){
435 2 KeyCode = Read7279KeyCode();
436 2 KeyProc();
437 2 KeyTimer = 0;
438 2 KeyMark = 0;
439 2 }
440 1 if( KeyTimer>=60 ){
441 2 EX1 = 1;
442 2 }
443 1 }
444
445 void main(void)
446 {
447 1 fselect = 0;
448 1 PSEL0 = 0;
449 1 PSEL1 = 0;
450 1 Sys_Init();
451 1 testAD9875(frequency_AD9835);
452 1
453 1 while( 1 )
454 1 {
455 2 FeedDog();
456 2 KeyScan();
457 2
458 2 UpdateDisplay();
459 2 }
460 1 }
461
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1169 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 10 8
IDATA SIZE = 17 ----
BIT SIZE = 5 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -