📄 stccoinboxnew.lst
字号:
570 */
571
572 /*
573 发送
574 30 30 31 31 30 30 30 44 39 31 36 38 33 31 31 38 30 30 33 32 33 38 66 36 30 30 30 38 30 31 30 43 36 32 31 3
-1 35 44 46 32 37 45 43 46 35 32 33 30 38 46 42 45 33 30 30 32 1A
575 接收:
576 30 30 31 31 30 30 30 44 39 31 36 38 33 31 31 38 30 30 33 31 33 38 66 36 30 30 30 38 30 31 30 43 36 32 31 3
-1 35 44 46 32 37 45 43 46 35 32 33 30 38 46 42 45 33 30 30 32 1A
577 0D 0A 2B 43 4D 47 53 3A 20 39 0D 0A 0D 0A 4F 4B 0D 0A
578 对应字符:
579 AT+CMGS=027
580 > 0011000D91683118003138f60008010C62115DF27ECF52308FBE3002
581 +CMGS: 10
582 OK
583 */
584
585 uchar code GSMhead[12]="0011000D9168";
586 uchar code Center_number[12]="3118003238f6";
587 uchar code GSM_set[6]="000801";
588 uchar code GSM_sms[26]="0C62115DF27ECF52308FBE3002"; //短消息内容:我已经到达。
589
590 uchar code Command_Cnmi[18] = "AT+CNMI=1,1,0,0,1\r";//"AT+CNMI=1,1,0,0,1\r"
591 uchar code Command_Cmgr[8]="AT+CMGR=";
592 uchar code Command_Cmgd[8]="AT+CMGD=";//删除一条保存在SIM卡内的短信息
593 uchar code Command_Csca[23]="AT+CSCA=+8613800731500\r";//设置短信息服务中心地址
594 //uchar code Command_Cmgf[8]="AT+CMGF=";//择短信息格式:0为PDU方式:1为文本方式
595 //uchar code SmsCenterCode[15] ={"013818288474"};//短信平台号码设定
596 // uchar code SmsMangerCenterCode[15]={"13524392560"};//管理中心号码设定
597 // uchar xdata SmsCenterCode[15] _at_ 300;//={"013818288474"};//短信平台号码设定
598 //uchar xdata SmsMangerCenterCode[15] _at_ 330;//={"13524392560"};//管理中心号码设定
599 //uchar xdata User_PassWord[4];//用户级别密码设定
600 uchar xdata Supervisor_PassWord[4]; //管理员级别密码设置
601 uchar xdata User_PassWord[4];// _at_ 360;//={0xd0,0xd0,0xd0,0xd0};//用户级别密码设定
602 uchar xdata PassWord[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};// _at_ 360;//={0xd0,0xd0,0xd0,0xd0};/
-/用户级别密码设定
603 // uchar code User_PassWord[4]={0xd0,0xd0,0xd0,0xd0};//用户级别密码设定
604 // uchar code Supervisor_PassWord[4]={0x01,0x02,0x03,0x04}; //管理员级别密码设置
C51 COMPILER V8.05a STCCOINBOXNEW 01/26/2008 08:39:50 PAGE 11
605 uchar xdata MoneyFull[6];// _at_ 380;//纸币张数基准值设定
606 uchar xdata CMDBuf[20];// _at_ 390;//
607 //_at_ 415; // at_ 820; //存储通讯的手机号码长度
608 char Init_MangerCenterCodeValue=0;//管理中心号码设定数值
609 char Init_SmsCenterCodeValue=0;//管理中心号码设定数值
610 char nMangerCenterCodePosition=0;//
611 char nSmsCenterCodePosition=0;//
612
613 uchar nPasswordstatus=0;
614 uchar PassWordPosition=0;
615 uchar nPassWordErroTime=0;
616 uchar nKeyTimes=0;
617 bit bPassWordPermit=0;
618 bit bSetPassWordPermit=0;
619 bit bFirstKey_Test=0;
620 bit bPassWordErro=0;
621 bit bUser_PassWordPermit=0;
622 bit bSupervisor_PassWordPermit=0;
623 //uchar xdata tel_buf[50];
624 void lcd(void);
625 void Key_Process(void);
626 void Totalcoinsum(void);
627 void Disp_Process(void);
628 void Beep(void);
629 void Movdisp (void);
630 void LcdSendData(uchar nAddress,uchar nData);
631 void RTCreadtime();
632 void RTCWritetime();
633 void PassWord_Process(void);
634 void start_GSM(void);
635 void WDR(void);
636 void Buzzer(void);
637 void Buzzer1(void);
638 /******************与IIC通信相关子程序************************/
639 void Buzzer(void)
640 {
641 1 bSpeak=1;
642 1 bBuzzDelayPermit=1;
643 1 }
644
645 void Buzzer1(void)
646 {
647 1 bSpeak=1;
648 1 bBuzzDelayPermit=1;
649 1 }
650
651 void Delay()
652 {
653 1 // {P10=1;_nop_();P10=0;}
654 1 Nop;
655 1 Nop; /*根据晶振频率制定延时时间*/
656 1 }
657 /*
658 void DelaymS(uint time)
659 {
660 Delay_ms=time;
661 while(Delay_ms);
662 }
663 */
664
665 void delay_20ms() //20ms
666 {
C51 COMPILER V8.05a STCCOINBOXNEW 01/26/2008 08:39:50 PAGE 12
667 1 bDelay20mS=1;
668 1 while(bDelay20mS);
669 1 }
670
671 /*
672 void delay_160ms() //160ms
673 {uchar nCnt;
674 for(nCnt=0;nCnt<8;nCnt++)
675 {
676 bDelay20mS=1;
677 while(bDelay20mS);
678 }
679 }
680 */
681 /*
682 //延时500ms秒
683
684 void delay_500ms()
685 {
686 uchar nCnt;
687 for(nCnt=0;nCnt<2;nCnt++)
688 delay_160ms();
689 }
690 */
691 //延时1S
692 /*
693 void delay_1s() //1s
694 {
695 bDelay1S=1;
696 }
697 */
698 //延时1S
699 void Start(void)
700 {
701 1 bScl = 1;
702 1 bSda = 1;
703 1 Delay();
704 1 bSda = 0;
705 1 Delay();
706 1 bScl =0;
707 1 }
708 void Stop(void)
709 {
710 1 bSda = 0;
711 1 bScl = 1;
712 1 Delay();
713 1 bSda = 1;
714 1 Delay();
715 1 //EA=1;
716 1 }
717 bit CheckAck()
718 {
719 1 bit bEepromAck ;
720 1 Delay();
721 1 bScl = 1 ;
722 1 Delay();
723 1 bEepromAck = bSda ;
724 1 Delay();
725 1 bScl = 0 ;
726 1 Delay();
727 1 return bEepromAck ;
728 1 }
C51 COMPILER V8.05a STCCOINBOXNEW 01/26/2008 08:39:50 PAGE 13
729 void Ack(void)
730 {
731 1 bSda = 0;
732 1 Delay();
733 1 bScl = 1; //clock:falling edge
734 1 Delay();
735 1 bScl = 0;
736 1 Delay();
737 1 }
738 void NoAck(void)
739 {
740 1 bSda =1;
741 1 Delay();
742 1 bScl = 1;
743 1 Delay();
744 1 bScl = 0;
745 1 Delay();
746 1 }
747
748 /*******************************************************/
749 uchar ReadOneByte()
750 {
751 1 bit bReadBit ;
752 1 uchar nCnt,nTemp ;
753 1 nTemp = 0x00 ;
754 1 for(nCnt=0;nCnt<8;nCnt++)
755 1 {
756 2 nTemp = nTemp<< 1 ;
757 2 Delay();
758 2 bScl = 1; //high level continue for a while ,then read a bit
759 2 Delay();
760 2 bReadBit = bSda;
761 2 bScl = 0;
762 2 if(bReadBit)
763 2 {
764 3 nTemp = nTemp | 0x01 ;
765 3 }
766 2 else
767 2 {
768 3 nTemp = nTemp & 0xfe ;
769 3 }
770 2 }
771 1 return nTemp ;
772 1 }
773 /*******************************************************/
774 void WriteOneByte(uchar nData)
775 {
776 1 uchar nCnt ;
777 1 for(nCnt=0;nCnt<8;nCnt++)
778 1 {
779 2 if((nData & 0x80) == 0x80)
780 2 {
781 3 bSda = 1 ;
782 3 }
783 2 else
784 2 {
785 3 bSda = 0 ;
786 3 }
787 2 Delay();
788 2 bScl = 1;
789 2 Delay();
790 2 bScl = 0;
C51 COMPILER V8.05a STCCOINBOXNEW 01/26/2008 08:39:50 PAGE 14
791 2 Delay();
792 2 nData = nData << 1 ;
793 2 }
794 1 }
795 /*******************************************************/
796 bit WaitWriteEnd()
797 {
798 1 bit bEepromAck;
799 1 unsigned int nCounter;
800 1 nCounter = 0;
801 1 while(1)
802 1 {
803 2 Start();
804 2 WriteOneByte(ReadCommand);
805 2 bSda = 1;
806 2 bEepromAck = CheckAck();
807 2 if(bEepromAck ==0)
808 2 {
809 3 ReadOneByte();
810 3 NoAck();
811 3 return TRUE;
812 3 }
813 2 nCounter++;
814 2 if(nCounter>=0xfff)
815 2 {
816 3 return FALSE;
817 3 }
818 2 }
819 1 }
820 /*******************************************************/
821
822 bit ReadFromRom(uchar * nData,uchar nAddress,uchar nNum)
823 {
824 1 bit bEepromAck ;
825 1 uchar nCnt;
826 1 EA=0;
827 1 Start();
828 1 //WP=0;
829 1 WriteOneByte(WriteCommand);
830 1 //WP=1;
831 1 bSda = 1 ;
832 1 bEepromAck = CheckAck();
833 1 if(bEepromAck==1) return FALSE ;
834 1 //WP=0;
835 1 WriteOneByte(nAddress);
836 1 //WP=1;
837 1 bSda = 1 ;
838 1 bEepromAck = CheckAck();
839 1 if(bEepromAck==1) return FALSE ;
840 1 Start();
841 1 //WP=0;
842 1 WriteOneByte(ReadCommand);
843 1 //WP=1;
844 1 bSda = 1 ;
845 1 bEepromAck = CheckAck();
846 1 if(bEepromAck==1) return FALSE ;
847 1 for(nCnt=0;nCnt<nNum;nCnt++)
848 1 {
849 2 nData[nCnt] = ReadOneByte();
850 2 if(nCnt!=(nNum-1))
851 2 {
852 3 Ack();
C51 COMPILER V8.05a STCCOINBOXNEW 01/26/2008 08:39:50 PAGE 15
853 3 bSda = 1 ;
854 3 }
855 2 else
856 2 {
857 3 NoAck();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -