📄 gsm.c
字号:
{
case 0xa:
Display(phonebookadd,0x81,0,14);
key7279 = 0xff;
while((key7279 >9)&&(key7279 !=0xf));
if(key7279 <0xa);
break;
case 0xb:
Display(phonebookmodefy,0x81,0,14);
break;
case 0xf:
break;
default:
break;
}
key7279 = 0xff;
}
/*************************************************
- 函数名称 : void messagemenu(void)
- 函数说明 : 短信菜单
- 输入参数 : 无
- 输出参数 : 无
**********************************************/
void messagemenu(void)
{
uchar message[] = "信息(E):";
uchar messagesend[] = "发送信息(A):";
uchar messagenew[] = "阅读新信息(B):";
uchar destphone[] = "对方电话号码:";
uchar i=0,msg[48],msg1[] = "短信内容:";
uchar msgsend[] = "正在发送...";
uchar msgwait[] = "请稍侯!";
uchar msgsuccess[] = "消息发送成功!";
uchar msghint[] = " F结束,A继续";
Display(message,0x80,0,10);
Display(messagesend,0x91,0,12);
Display(messagenew,0x89,0,14);
Display(retu,0x99,0,8);
key7279 = 0xff;
while((key7279!=0xa)&&(key7279!=0xb)&&(key7279!=0xf));
lcdclean(1,4);
switch (key7279)
{//11111111111111111111111
case 0xa: //发送短信
while(key7279==0xa)
{//222222222222222222222222
Display(msg1,0x81,0,9);
key7279=0xff;
while(key7279==0xff);
while(key7279!=0xf) //编写短信内容
{//33333333333333333
if(key7279<0xa) msg[i] = key7279+48;
else msg[i] = key7279+55;
if(i<16) Display(msg,0x90,0,i+1);
else if(i<32) Display(msg,0x88,16,i+1);
else if(i<48) Display(msg,0x98,32,i+1);
key7279 = 0xff;
while(key7279==0xff);
i++;
}//333333333333333
msg[i] = '\0';
i=0;
lcdclean(1,4);
Display(destphone,0x81,0,13);
key7279=0xff;
while(key7279!=0xf) //输入接收方电话号码
{//3333333333333333
if(key7279<0xa)
{//444444444444444444
phone[i] = key7279+48;
if(i<16) Display(phone,0x90,0,i+1);
else if(i<32) Display(phone,0x88,16,i+1);
else if(i<48) Display(phone,0x98,32,i+1);
i++;
}//44444444444444
else if(key7279==0xc)
{//444444444444444
i-=2;
if(i<16)
{//55555555555555
lcdclean(2,2);
Display(phone,0x90,0,i+1);
}//5555555555555555
else if(i<32)
{//555555555555555
lcdclean(3,3);
Display(phone,0x88,16,i+1);
} //555555555555555
else if(i<48)
{//55555555555
lcdclean(4,4);
Display(phone,0x98,32,i+1);
} //5555555555555
i++;
}//44444444444444
key7279 = 0xff;
while(key7279==0xff);
}//33333333333333
phone[i] = '\0';
i=0;
while(rdata[2]!='>') //发送接收方电话号码,检查是否允许发送内容
{//333333333333333
while(RECV(rdata)==0) CMGS(phone); //发送对方电话号码
}//333333333333333
lcdclean(3,4);
Display(msgsend,0x88,0,12);
Display(msgwait,0x9a,0,7);
while(RECV(rdata)==0) //发送短信内容,并收到应答
{//33333333333333333
while(msg[i]!= '\0')
{//4444444444
SEND(msg[i]);
i++;
}//4444444444444
i=0;
SEND(26); //发送结束符
}//3333333333333333
lcdclean(3,4);
Display(msgsuccess,0x89,0,13);
Display(msghint,0x98,0,14);
key7279=0xff;
while((key7279==0xff)&&(key7279!=0xf)&&(key7279!=0xa));
lcdclean(1,4);
}//22222222222222222222
break;
case 0xb:
CMGR(msgindex,1);
while(RECV1(rdata)==0) CMGR(msgindex,1); //检查是否有新收到的短信
break;
case 0xf:
break;
}
}
/*************************************************
- 函数名称 : void callmenu(void)
- 函数说明 : 呼叫菜单
- 输入参数 : 无
- 输出参数 : 无
**********************************************/
void callmenu(void)
{
uchar call[] ="呼叫:开始呼叫(F) 中止呼叫(E)",connectflag[]="OK",connectflag1[]="COLP";
uchar i=0,connect[]="正在通话中...";
Display(call,0x80,0,6);
Display(call,0x88,6,38);
while(key7279!=0xf)
{
phone[i] = key7279+48;
if(i<16) Display(phone,0x90,0,i+1);
else if(i<32) Display(phone,0x88,16,i+1);
else if(i<48) Display(phone,0x98,32,i+1);
key7279 = 0xff;
while(key7279==0xff);
if(key7279==0xe) goto ret;
i++;
}
phone[i] = ';';
phone[i+1] = '\0';
i=0;
//while(RECV(rdata)==0) COLP(1);
callsend(phone);
key7279 = 0xff;
dellay(200);
while(RECV(rdata)==0) // CLCC(); //查询通话记录
{
if(key7279==0xe) goto ret;
callsend(phone);
dellay(200);
}
//i= str_search(rdata,0,connectflag);
//if((str_search(rdata,0,connectflag)!=0xff)||(str_search(rdata,0,connectflag1)!=0xff))
{
lcdclean(3,3);
Display(connect,0x89,0,14);
}
key7279 = 0xff;
while(key7279!=0xe)
{
if((key7279>0)&&(key7279<0xa))
{
phone[0] = key7279+48;
phone[1] = ';';
phone[1] = '\0';
callsend(phone);
key7279 = 0xff;
/*
SendNum(key7279+0x30);*/
}
}
CHUP();
ret: i=0;
}
/*************************************************
- 函数名称 : void mainmenu(void)
- 函数说明 : 主菜单
- 输入参数 : 无
- 输出参数 : 无
**********************************************/
void mainmenu(void)
{
uchar mobileset[] = "电话设置(D):";
uchar record[] = "电话记录(C):";
uchar ringset[] = "铃音设置(B):";
uchar clockset[] = "时钟(A):";
switch (key7279)
{
case 0xf: //电话本
{
switch (status)
{
case 0:
default:
phonebookmenu();
case 1: //收到短信
while(RECV(rdata)==0) CMGR(msgindex,1);
while((rdata[3]!='G')||(rdata[4]!='R'))
{
while(RECV(rdata)==0) CMGR(msgindex,1);
}
break;
case 2:
break;
}
status = 0;
break;
}
case 0xe: //短信
{
messagemenu();
break;
}
case 0xd: //手机设置
{
Display(mobileset,0x80,0,10);
break;
}
case 0xc: //通话记录
{
Display(record,0x80,0,10);
break;
}
case 0xb: //铃音设置
{
Display(ringset,0x80,0,12);
break;
}
case 0xa: //时钟设置
{
Display(clockset,0x80,0,10);
break;
}
default: //拨号呼叫
{
callmenu();
break;
}
}
}
/*************************************************
- 函数名称 : void dial(void)
- 函数说明 : 拨出的电话号码
- 输入参数 : 无
- 输出参数 : 无
**********************************************/
void keydial(void)
{
key7279 &=15;
lcdclean(1,4);
mainmenu();
key7279 = 0xff;
lcdclean(1,4);
}
void DispDateTime(void)
{
unsigned char i,data[20];
CLEAR_BUFF(data);
for(i=0;i<7;i++)
{
switch (i)
{
case 0:
case 1:
{
data[2*i]=mdate[i]/10 +48;
data[2*i+1]=mdate[i]%10 +48;
break;
}
case 2:
{
data[2*i] = '-';
data[2*i+1]=mdate[i]/10 +48;
data[2*i+2]=mdate[i]%10 +48;
break;
}
case 3:
{
data[2*i+1] = '-';
data[2*i+2]=mdate[i]/10 +48;
data[2*i+3]=mdate[i]%10 +48;
break;
}
case 4:
{
data[2*i+2]=mdate[i]/10 +48;
data[2*i+3]=mdate[i]%10 +48;
break;
}
case 5:
{
data[2*i+2] = ':';
data[2*i+3]=mdate[i]/10 +48;
data[2*i+4]=mdate[i]%10 +48;
break;
}
case 6:
{
data[2*i+3] = ':';
data[2*i+4]=mdate[i]/10 +48;
data[2*i+5]=mdate[i]%10 +48;
break;
}
}
}
Display(ddate,0x90,0,6);
Display(data,0x93,0,10);
Display(dtime,0x88,0,6);
Display(data,0x8b,10,18);
}
/*************************************************************
主函数
*************************************************************/
/******************************************************
- 函数名称 : Main(void)
- 函数说明 : 系统的主程序入口
- 输入参数 : 无
- 输出参数 : 无
**********************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -