📄 fangdao.lst
字号:
601 1 TMOD=0x20;
602 1 TMOD = (TMOD & 0xf0) | 1;//MODE 1
603 1 //TH1=0xe8; //波特率为9600
604 1 // TL1=0xe8;
605 1 TH1=0xfd; //波特率为9600
606 1 TL1=0xfd;
607 1 PCON=0x00; //倍频0x80
608 1
609 1 IE = 0xb0; // EA XX ET2 ES ET0 EX0 ET1 EX1
610 1 TR1=1; //enable TIMER1
C51 COMPILER V7.50 FANGDAO 05/02/2007 00:52:35 PAGE 11
611 1 //TF0=0;
612 1 //PT0=1; //Set Timer0 interrupt as highest priority level'
613 1 // PT0=1; //Set Timer0 interrupt as highest priority level
614 1 ES=1;
615 1 TR0=1;
616 1 ET0=1;
617 1 ET1=0;
618 1 EA=1;
619 1 P0=0xC3;
620 1 P1=0xFE;
621 1 P2=0xFF;
622 1 P3=0xFF;
623 1 // P4=0xff;
624 1 timer_1S_cnt=0;
625 1 receive_count=0;
626 1 send_count=0xff; //表示禁止发送,可以接收
627 1 sync_count=0;
628 1 int_case=0;
629 1 ring_pin_flag=1;
630 1 IO_OUT=1;
631 1 //INT_TMP1=0;
632 1 //INT_TMP2=0;
633 1
634 1
635 1 }
636
637
638
639 uchar Send_AT_Command( uchar type)
640 //拨号时号码放在phone.number
641 //其他用para_temp
642 {
643 1 AT_Command_Type=type;
644 1 send_count=0;
645 1 switch(type)
646 1 {
647 2
648 2 case VOICE_DIAL: //语音拨号
649 2 strcpy(uart_buff,"ATD");
650 2 strcat(uart_buff,para_temp);
651 2 // strcpy(uart_buff,"ATD10086;");
652 2 //strcat(uart_buff,";");
653 2
654 2 break;
655 2 // case RESET_TC35: //复位TC35
656 2 // strcpy(uart_buff,"AT+CFUN=1,1");
657 2 // break;
658 2 case CHECK_PIN: //检查当前是否要输入PIN码
659 2 strcpy(uart_buff,"AT+CPIN?");
660 2 break;
661 2
662 2 case TC35_INIT: //TC35初始化命令
663 2 strcpy(uart_buff,"ATE0V0");
664 2 break;
665 2 case TC35_SBC: //检查信号
666 2 strcpy(uart_buff,"AT^SBC?");
667 2 break;
668 2
669 2 case VOICE_HANDSET: //手柄方式
670 2 strcpy(uart_buff,"AT^SNFS=4^SNFO=2,8000,14000,20000,26000,32700,0,512^SNFI=5,10000");
671 2 break;
672 2 case SIM_CARD_CHECK://查询是否有插入SIM卡 ^SCKS: 0,1
C51 COMPILER V7.50 FANGDAO 05/02/2007 00:52:35 PAGE 12
673 2 strcpy(uart_buff,"ate0v0^scks?");
674 2 break;
675 2
676 2 case SIM_ID:
677 2 strcpy(uart_buff,"AT+CMGF=1");
678 2 break;
679 2 case SMSS_ID:
680 2 strcpy(uart_buff,"AT^SSMSS=1");
681 2 break;
682 2 case HOOKOFF: //挂机,停止通话
683 2 strcpy(uart_buff,"AT+CHUP");
684 2 break;
685 2 case SMS_CNMI: //SMS 接收方式,
686 2 strcpy(uart_buff,"AT+CNMI=1,1");
687 2 break;
688 2 case TC35_VERSION: //读取TC35的版本号
689 2 strcpy(uart_buff,"AT+GMR");
690 2 break;
691 2
692 2 case PHONE_WRITE: //存电话号码
693 2 strcpy(uart_buff,"AT+CPBW=");
694 2 strcat(uart_buff,para_temp);
695 2 break;
696 2 case PHONE_SET:
697 2 strcpy(uart_buff,"AT+CPBW=");
698 2 strcat(uart_buff,para_temp);
699 2 break;
700 2 case PHONE_READ: //读电话本
701 2 strcpy(uart_buff,"AT+CPBR=");
702 2 strcat(uart_buff,&read_tmp);
703 2 uart_buff[9]=0x0d; uart_buff[10]=0x0a;
704 2 uart_buff[11]=0x00; uart_buff[12]=0x00;
705 2 break;
706 2 case SMS_CMGR: //读一个短信
707 2 strcpy(uart_buff,"AT+CMGR=");
708 2 strcat(uart_buff,para_temp);
709 2 break;
710 2 case SMS_CMGS: //写一个短信
711 2 strcpy(uart_buff,"AT+CMGS=");
712 2 strcat(uart_buff,para_temp);
713 2
714 2 break;
715 2 case SMS_CMGD: //删除一个短信
716 2 strcpy(uart_buff,"AT+CMGD=");
717 2 strcat(uart_buff,para_temp);
718 2 break;
719 2 // case CMGS_MUB: //发报警短信内容
720 2 // strcpy(uart_buff,para_temp);
721 2 // break;
722 2
723 2 case AT_COMMAND:
724 2 break;
725 2 default:
726 2 receive_count=0;
727 2 return(TRUE);
728 2 }
729 1 ES=1;
730 1 strcat(uart_buff,"\x0d\x00");//在命令后加入CR
731 1 send_count=0; //设置发送指针
732 1 receive_count=0;
733 1 AT_Command_Status=COMMAND_WAIT; //设置接收成功标志
734 1
C51 COMPILER V7.50 FANGDAO 05/02/2007 00:52:35 PAGE 13
735 1 txd_rxd_bit=0;
736 1 at_send_bit=0;
737 1 TI=1; //开始发送数据
738 1 RI=0; //清除接收标志
739 1
740 1
741 1 if((type==SMS_CMGR)||(type==MONITOR_ID))
742 1 {
743 2 while (timer_200S_cnt<15)
744 2 {
745 3
746 3 if (AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)
747 3 return(TRUE);
748 3 }
749 2 }
750 1 else if(type==SMS_CMGS)
751 1 { while (timer_200S_cnt<5)
752 2 {
753 3 if (AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)
754 3 return(TRUE);
755 3 }
756 2
757 2 }
758 1 else
759 1 {
760 2 while (timer_200S_cnt<15)
761 2 {
762 3 system_sleep;
763 3 if (AT_Command_Status!=COMMAND_WAIT||txd_rxd_bit==1)
764 3 return(TRUE);
765 3 }
766 2 }
767 1 return(FALSE);
768 1 }
769
770
771
772 void main(void)
773 {
774 1 Initialize_Model();
775 1
776 1 system_server=SYS_SMSR;
777 1 receive_count=0;
778 1 sms_tmp=0;
779 1 system_tep=1;
780 1
781 1 while(1)
782 1 {
783 2 //-----------查询1到20条中的短信,只要有短信就处理------------------------------------------
784 2 if(system_server==SYS_SMSR) //读1-20条短信
785 2 {
786 3 read_sms(); //timer_200S_cnt=0;
787 3 P0=0x00;
788 3 }
789 2 //----------------一些短信的发送---------------------------------------------------
790 2 else if(system_server==SYS_SMSS) //发送小区信息
791 2 { LED_INT3=0;
792 3 send_sms();
793 3 system_server=SYS_SMSR;
794 3 LED_INT3=1;
795 3 }
796 2 //---===============外部中断进行 报警状态===============================================================
C51 COMPILER V7.50 FANGDAO 05/02/2007 00:52:35 PAGE 14
-==
797 2 else if(system_server==SYS_RING) //设备被盗功能开启
798 2 { LED_INT4=0;
799 3 system_server=SYS_SMSR;
800 3 pickup_pin_flag=1; ring_pin_flag=1;
801 3 if(system_tep)
802 3 { sms_tmp= smss_alarm;
803 4 send_sms();
804 4 }
805 3 system_server=SYS_SMSR;
806 3 LED_INT4=1;
807 3 }
808 2 //===================设置报警时的延时时长==================================================
809 2 else if(system_server==SYS_ALARM)
810 2 {
811 3 sms_tmp=smss_tel;
812 3 system_server=SYS_SMSS;
813 3 }
814 2
815 2 else if(system_server==SYS_START)
816 2 {
817 3 LED_INT5=0;
818 3 sms_tmp=smss_atart;
819 3 send_sms();
820 3
821 3 system_server=SYS_SMSR;
822 3 LED_INT5=1;
823 3
824 3
825 3 }
826 2
827 2 //========================用短信进行设备参数检查=======================================================
-======
828 2 else if(system_server==SYS_PARA) //设备参数查询
829 2 {
830 3 sms_tmp=smss_para;
831 3 system_server=SYS_SMSS;
832 3 }
833 2 //==========================进行报警时的电话号码和手机号的设置==========================================
-=================
834 2 else if(system_server==SYS_TEL) //防盗电话号码设置
835 2 { //存储位于SIM卡的4,5,6三个位置
836 3 sms_tmp=smss_tel;
837 3 system_server=SYS_SMSS;
838 3
839 3 }
840 2 //==================//电池电量不充报警=================================================================
841 2 else if(system_server==SYS_SBC) //电池电量不充报警
842 2 { sms_tmp=smss_sbc;
843 3 system_server=SYS_SMSS;
844 3
845 3 }
846 2
847 2 }
848 1
849 1
850 1 }
851
852
853
854
855
C51 COMPILER V7.50 FANGDAO 05/02/2007 00:52:35 PAGE 15
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 3035 ----
CONSTANT SIZE = 257 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 19 12
IDATA SIZE = 192 ----
BIT SIZE = 7 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -