📄 1.txt
字号:
if(Count == 15)
{
UBR00 = 0x60; //波特率为38400
UBR10 = 0X00;
UMCTL0 = 0X00;
Count = 0;
}
}
while(Check_Flag[1] == 1)
{
Send_Cmd(Anydata_Cdma_Cmd1); //修改通信模块波特率为38400
Delay(5000);
while(flag == 0);
Check_Return_OK(2);
Clear_Rcv();
}
UBR00 = 0X60; //波特率为38400
UBR10 = 0X00;
UMCTL0 = 0X00;
}
//启动SIMEMS GPRS模块
void GPRS_SIMEMS_IGT(void)
{
P1DIR |= VDD;
P1OUT |= VDD;
P1DIR |= IGT;
P1OUT |= IGT;
P1DIR |= PD;
P1OUT |= PD;
P3DIR |= TX;
P3OUT |= TX;
P1OUT &=~ PD;
Delay(32768);
while(flag == 0);
P1OUT &=~ IGT;
Delay(3300);
while(flag == 0);
P1OUT |= IGT;
Delay(6300);
while(flag == 0);
P1OUT &=~ IGT;
Delay(32768);
while(flag == 0);
while(Check_Flag[0] == 1)
{
Send_Cmd(Cmd0);
Delay(5000);
while(flag == 0);
Check_Return_OK(1);
Clear_Rcv();
}
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
//以下部分用来点亮GPRS的网络灯,若不返回OK,U2将显示红灯
Check_Flag[0] = 1;
while(Check_Flag[0] == 1)
{
Send_Cmd(Simems_Gprs_Cmd_Netlignt);
Delay(5000);
while(flag == 0);
Check_Return_OK(1);
Clear_Rcv();
}
}
//启动ZTE模块
void ZTE_Module_IGT(void)
{
P1DIR |= VDD;
P1OUT |= VDD;
P1DIR |= ON_OFF;
P1OUT &=~ ON_OFF;
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
P1OUT |= ON_OFF;
Delay(32768);
while(flag == 0);
UBR00 = 0X60; //波特率为38400
UBR10 = 0X00;
UMCTL0 = 0X00;
while(Check_Flag[0] == 1)
{
Send_Cmd(Cmd0);
Delay(8192);
while(flag == 0);
Check_Return_OK(1);
Clear_Rcv();
}
}
//判断模块的种类
void Init_Module(void)
{
P1DIR &=~ (BIT0+BIT1+BIT2+BIT3);
Module_Address = (P1IN&0x0f);
switch(Module_Address)
{
case simems_gprs: GPRS_SIMEMS_IGT();break;
case simems_gprs_900: GPRS_SIMEMS_IGT();break;
case anydata_cdma:CDMA_ANYDATA_IGT();break;
case ZTE_module:ZTE_Module_IGT();break;
default:break;
}
}
//发送SIMEMS指令
void Send_Simems_Gprs_Cmd(void)
{
while(Check_Flag[1] == 1)
{
Send_Cmd(Simems_Gprs_Cmd1);
Delay(5000);
while(flag == 0);
Check_Return_CSQ(2);
Clear_Rcv();
}
while(Check_Flag[2] == 1)
{
Send_Cmd(Simems_Gprs_Cmd2);
Delay(5000);
while(flag == 0);
Check_Return_OK(3);
Clear_Rcv();
}
while(Check_Flag[3] == 1)
{
Send_Cmd(Simems_Gprs_Cmd3);
Delay(5000);
while(flag == 0);
Check_Return_OK(4);
Clear_Rcv();
}
while(Check_Flag[4] == 2)
{
Send_Cmd(Simems_Gprs_Cmd4);
Delay(32768);
while(flag == 0);
Check_Return_OK(5);
Clear_Rcv();
if(Check_Flag[4] == 1)
{
Send_Cmd(Simems_Gprs_Cmd5);
Delay(16384);
while(flag == 0);
Check_Return_1(5);
Clear_Rcv();
}
}
while(flag == 0);
Delay(32768);
while(Check_Flag[5] == 1)
{
Send_Cmd(Simems_Gprs_Cmd6);
Delay(32768);
while(flag == 0);
Check_Return_OK(6);
Clear_Rcv();
}
while(Check_Flag[6] == 1)
{
Send_Cmd(Simems_Gprs_Cmd7);
Delay(5000);
while(flag == 0);
Check_Return_OK(7);
Clear_Rcv();
}
while(Check_Flag[7] == 1)
{
Send_Cmd(Simems_Gprs_Cmd8);
Delay(5000);
while(flag == 0);
Check_Return_OK(8);
Clear_Rcv();
}
Delay(32768);
while(flag == 0);
if(Check_Flag[7] == 0)
{
P1OUT &=~ VDD;
Delay(32768);
while(flag == 0);
GPRS_SIMEMS_IGT();
}
}
//发送ANYDATA指令
void Send_Anydata_Cdma_Cmd(void)
{
while(Check_Flag[2] == 1)
{
Send_Cmd(Anydata_Cdma_Cmd2);
Delay(5000);
while(flag == 0);
Check_Return_OK(3);
Clear_Rcv();
}
while(Check_Flag[3] == 1)
{
Send_Cmd(Anydata_Cdma_Cmd3);
Delay(2000);
while(flag == 0);
Check_Return_CSQ(4);
Clear_Rcv();
}
while(Check_Flag[4] == 2)
{
Send_Cmd(Anydata_Cdma_Cmd4);
Delay(2000);
while(flag == 0);
Check_Return_OK(5);
Clear_Rcv();
}
while(Check_Flag[5] == 1)
{
Send_Cmd(Anydata_Cdma_Cmd5);
Delay(32768);
while(flag == 0);
Check_Return_OK(6);
Clear_Rcv();
}
while(Check_Flag[6] == 1)
{
Send_Cmd(Anydata_Cdma_Cmd6);
Delay(16384);
while(flag == 0);
Check_Return_GMR(7);
Clear_Rcv();
}
Delay(32768);
while(flag == 0);
if(Check_Flag[6] == 0)
{
P1OUT &=~ VDD;
Delay(32768);
while(flag == 0);
CDMA_ANYDATA_IGT();
}
}
//发送ZTE指令
void Send_ZTE_module_Cmd(void)
{
while(Check_Flag[1] == 1)
{
Send_Cmd(ZTE_Module_Cmd1);
Delay(5000);
while(flag == 0);
Check_Return_CSQ(2);
Clear_Rcv();
}
while(Check_Flag[2] == 1)
{
Send_Cmd(ZTE_Module_Cmd2);
Delay(16384);
while(flag == 0);
Check_Return_ZVERS(3);
Clear_Rcv();
}
while(Check_Flag[3] == 1)
{
Send_Cmd(ZTE_Module_Cmd3);
Delay(32768);
while(flag == 0);
Check_Return_OK(4);
Clear_Rcv();
}
while(Check_Flag[4] == 2)
{
Send_Cmd(ZTE_Module_Cmd4);
Delay(32768);
while(flag == 0);
Check_Return_OK(5);
Clear_Rcv();
if(Check_Flag[4] == 1)
{
Send_Cmd(ZTE_Module_Cmd5);
Delay(16384);
while(flag == 0);
Check_Return_1(5);
Clear_Rcv();
}
}
while(flag == 0);
Delay(32768);
while(Check_Flag[5] == 1)
{
Send_Cmd(ZTE_Module_Cmd6);
Delay(32768);
while(flag == 0);
Delay(32768);
while(flag == 0);
Check_Return_OK(6);
Clear_Rcv();
}
while(Check_Flag[6] == 1)
{
Send_Cmd(ZTE_Module_Cmd7);
Delay(5000);
while(flag == 0);
Check_Return_OK(7);
Clear_Rcv();
}
while(Check_Flag[7] == 1)
{
Send_Cmd(ZTE_Module_Cmd8);
Delay(5000);
while(flag == 0);
Check_Return_OK(8);
Clear_Rcv();
}
Delay(32768);
while(flag == 0);
if(Check_Flag[7] == 0)
{
P1OUT &=~ VDD;
Delay(32768);
while(flag == 0);
ZTE_Module_IGT();
}
}
//主程序
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
XT_Init();
TimerA_Init();
P4DIR = 0Xff;
P5DIR = 0Xff;
P4OUT = 0X00;
P5OUT = 0X00;
_EINT();
Uart0_Init();
Init_Module();
while(1)
{
Module_Address = (P1IN&0x0f);
switch(Module_Address)
{
case simems_gprs:Send_Simems_Gprs_Cmd();break;
case simems_gprs_900:Send_Simems_Gprs_Cmd();break;
case anydata_cdma:Send_Anydata_Cdma_Cmd();break;
case ZTE_module:Send_ZTE_module_Cmd();break;
default:break;
}
}
}
//精确延时TIMERA中断延时服务程序
#pragma vector = TIMERA0_VECTOR
__interrupt void timera (void)
{
flag = 1;
CCTL0 &=~ CCIE;
}
//COM0口接收数据中断服务程序
#pragma vector = USART0RX_VECTOR
__interrupt void uart_rx (void)
{
RCV_Byte[j] = RXBUF0;
j++;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -