?? datafax.lst
字號:
498 5 Flag_KB_Enable=true;
499 5 break;
500 5 case KB_RECIEVE:
501 5 SYS_Status=SYS_RECIEVEING_STATE;
502 5 Recieve_File_Display();
503 5 Do_Recieve_File();
504 5 Flag_KB_Enable=true;
505 5 break;
506 5 case KB_MENU:
507 5 SYS_Status=SYS_MENU_STATE;
508 5 LCD_Clear();
509 5 Menu_Display();
510 5 Flag_KB_Enable=true;
511 5 break;
512 5 default:
513 5 break;
514 5 }
515 4 }
516 3
517 3 break;
518 3 case SYS_RECIEVEING_STATE:
519 3 case SYS_SEND_FINISHED_STATE:
520 3 case SYS_RECIEVE_FINISHED_STATE:
521 3 case SYS_ERROR_STATE:
522 3 if(Key_Down.Active)
523 3 {
524 4 Key_Down.Active=false;
525 4 if(Key_Down.Byte_data==KB_EXIT)
526 4 {
527 5 Flag_KB_Enable=true;
528 5 Do_Cancel();
529 5 }
530 4 Flag_KB_Enable=true;
531 4 }
532 3 break;
533 3 default:
534 3 break;
535 3 }
536 2 }
537 1
538 1 }
*** WARNING C280 IN LINE 75 OF DATAFAX.C: 'temp': unreferenced local variable
539
540
541
542 //----------------------------------
543 //功能:硬件初始化
544 //----------------------------------
545 void Init_hw(void)
546 {
547 1
548 1 EA=0;
549 1 ET0=0;
550 1 TR0=0;
C51 COMPILER V7.09 DATAFAX 03/22/2005 01:42:11 PAGE 10
551 1
552 1
553 1 // configure timer 0
554 1 TMOD =0x01;
555 1
556 1 // timer values
557 1
558 1
559 1 TH0=TH0_DATA;
560 1 TL0=TL0_DATA;
561 1
562 1 ET0=1;
563 1 TR0=1;
564 1
565 1 }
566 //----------------------------------
567 //功能:串口初始化
568 //----------------------------------
569 void UART_Init()
570 {
571 1
572 1 SCON = 0x53;
573 1 PCON = 0x80 | PCON;
574 1 T2CON=0x30;
575 1 //RCAP2H=0xFF; // 57600 @ 24MHz: 24000000/(32*(65536-(RCAP2H,RCAP2L)))
576 1 //RCAP2L=0xF3;
577 1 RCAP2H=0xFF; // 38400 @ 24MHz: 24000000/(32*(65536-(RCAP2H,RCAP2L)))
578 1 RCAP2L=0xEC;
579 1 TI=0;
580 1 RI=0;
581 1 TR2=1;
582 1 ES = 1;
583 1 Set_SPI_Slave;
584 1 SPCFG=0x00;
585 1 mspibusy=0;
586 1 }
587
588 //----------------------------------
589 //功能:ms級延時 (注: 延時不準,受CPU主頻影響)
590 //----------------------------------
591 void Delayms(int n)
592 {
593 1 int j;
594 1 while(n>0)
595 1 {
596 2 for(j=0;j<680;j++);
597 2 n--;
598 2 }
599 1 }
600
601 //---------------------------------------
602 //100us 中斷函數(定時中斷)
603 //---------------------------------------
604 void timer0_int(void) interrupt 1 using 2
605 {
606 1 EA=0;
607 1 TH0=TH0_DATA;
608 1 TL0=TL0_DATA;
609 1 Delay_Cnt++;
610 1 Flag_1ms=true;
611 1 // SPI_SS=~SPI_SS;
612 1 Cnt_Long_1ms++;
C51 COMPILER V7.09 DATAFAX 03/22/2005 01:42:11 PAGE 11
613 1 EA=1;
614 1 }
615 //--------KEY DOWN EVENT-----------
616 // 捕獲按鍵
617 //--------------------------------
618 void Capture_KEY_Event()
619 {
620 1 if (!Key_Press){
621 2 Key_No=SCAN_KB();
622 2 if (Key_No!=0) {
623 3 Key_Press=true;
624 3 Buzzer_time=100;
625 3 if(Flag_Buzzer) Buzzer_On;
626 3 }
627 2 }
628 1 else
629 1 {
630 2 if (SCAN_KB()==0x00)
631 2 { Key_Press=false;
632 3 Key_Down.Active=true;
633 3 Flag_KB_Enable=false;
634 3 Key_Down.Byte_data=Key_No;
635 3 LED_ShowOn(0xff);
636 3 }
637 2 }
638 1 if (Buzzer_time==0) Buzzer_Off;
639 1 else Buzzer_time--;
640 1 }
641 //--------Get Messages------------
642 // 獲取MODEM發送來的連接信息
643 //--------------------------------
644 void MODEM_Monitor()
645 {
646 1 byte tempstr[64];
647 1 byte i=0;
648 1 byte temp;
649 1 switch(MODEM_Status)
650 1 {
651 2 case MODEM_DISCONNECTED_STATE:
652 2 Get_Modem_Msg();
653 2 break;
654 2 case MODEM_RINGING_STATE:
655 2 Get_Modem_Msg();
656 2 break;
657 2 case MODEM_DIALING_STATE:
658 2 Get_Modem_Msg();
659 2 break;
660 2 case MODEM_CONNECTED_STATE:
661 2 //Get_Modem_Msg();
662 2 break;
663 2 case MODEM_INIT_STATE:
664 2 case MODEM_IDLE_STATE:
665 2 break;
666 2 }
667 1 }
*** WARNING C280 IN LINE 646 OF DATAFAX.C: 'tempstr': unreferenced local variable
*** WARNING C280 IN LINE 648 OF DATAFAX.C: 'temp': unreferenced local variable
668
669 //------------Answer Calling----------
670 // 應答呼叫
671 //------------------------------------
672 void Answer_Call()
C51 COMPILER V7.09 DATAFAX 03/22/2005 01:42:11 PAGE 12
673 {
674 1 Sys_Ring.Active=false;
675 1 Com_Send("ATA\r\n"); //發送MODEM AT 應答指令
676 1 }
677
678 //----------Com Send a byte-----------------------
679 // 從串口發送一個字節
680 //-----------------------------------------------
681 void Com_Send_Byte(byte c)
682 {
683 1 TI=0;
684 1 COM_TI=true;
685 1 SBUF=c;
686 1 while (COM_TI);
687 1 // Delayms(1);
688 1 }
689 //---------------------------------------------
690 // 串口發送字符串函數
691 //--------------------------------------------
692 void Com_Send(byte *tempstr)
693 {
694 1 TI=0;
695 1 while(*tempstr!=0)
696 1 {
697 2 COM_TI=true;
698 2 SBUF=*tempstr;
699 2 while (COM_TI);
700 2 tempstr++;
701 2 }
702 1 }
703 //----------------------------------------------
704 // 串口中斷接收函數
705 //--------------------------------------------
706 void Com_ReadData_Int(void) interrupt 4 using 2
707 {
708 1
709 1 byte temp;
710 1 byte i=0;
711 1 byte j=0;
712 1 EA=0;
713 1
714 1
715 1 if (SPCFG & 0x80) //接受來自USB的數據
716 1 {
717 2 if(!SPI_TI)
718 2 {
719 3 SPI_Recv_Buf[SPI_Write_Point]=SPDAT; //將I2C數據寫入接收緩沖區
720 3 SPI_Write_Point++;
721 3 // SPI_Recv_Byte_Cnt++;
722 3 if (SPI_Write_Point==Recv_Buf_Len) SPI_Write_Point=0;
723 3 }
724 2 else
725 2 SPI_TI=0;
726 2
727 2 // SPCFG=0x00;
728 2 }
729 1 if (SPCFG&0xC0)
730 1 {
731 2 SPCFG=0x00;
732 2 }
733 1
734 1 if(RI) //接收來自MODEM串口的數據
C51 COMPILER V7.09 DATAFAX 03/22/2005 01:42:11 PAGE 13
735 1 {
736 2 RI=0;
737 2 temp=SBUF;
738 2 Com_Recv_Buf[Com_Write_Point]=temp;
739 2 // Com_Recv_Byte_Cnt++;
740 2 Com_Write_Point++;
741 2 if(Com_Write_Point>Recv_Buf_Len) Com_Write_Point=0;
742 2 }
743 1 if (TI)
744 1 {
745 2 TI=0;
746 2 if (COM_TI) COM_TI=false;
747 2 }
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -