STC52单片机控制sim300模块没反应
用串口调试助手给sim300模块发送指令正常,观察单片机发送数据正常,就是单片机与sim300模块连接控制时,模块没反应,程序非常简单,只有打电话功能,同学前两天还用单片机控制成功过,可是现在不行了,只能用PC控制,求高手帮忙啊!!!程序如下:
(注:我用的时普中科技的开发板,用按键拨打和数码管显示)
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
char code table[]={0xC0,0xF9,0xA4,0xB0,
0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,
0xC6,0xA1,0x86,0x8E};
char haoma[]="ATD15243640684;\r";
void SerialInit()//串口初始化程序
{
TMOD=0x20; //设置定时器8位自动装入数据
TH1=0xfd;//装入初值,波特率9600
TL1=0xfd;
TR1=1; //打开定时器
SM0=0; //设置串口通讯工作模式
SM1=1;
REN=1; //串口接收允许
}
void SerialSendChars(char *str) //串口连续发送字符串,遇到终止符\0停止
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待发送完成信号
TI=0;
str++;
}
}
void delay_50ms(int t)//延时程序
{
int j;
for(;t>0;t--)
for(j=6245;j>0;j--)
;
}
void delayms(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void display(char num)
{
P0=0;
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=table;
P0=~P0;
dula=0;
delayms(5);
/*P2=0X00;
P0=table;
delayms(5);*/
}
char keyscan()
{
char temp,scan1,scan2,num;
P1=0xf0;
scan1=P1;
if((scan1&0xf0)!=0xf0)
{
delayms(10);
scan1=P1;
if((scan1&0xf0)!=0xf0)
{
P1=0x0f;
scan2=P1;
temp=scan1|scan2;
switch(temp)
{
case 0xee: num=15;break;
case 0xde: num=15;break;
case 0xbe: num=15;break;
case 0x7e: num=15;break;
case 0xed: num=1;break;
case 0xdd: num=2;break;
case 0xbd: num=3;break;
case 0x7d: num=4;break;
case 0xeb: num=5;break;
case 0xdb: num=6;break;
case 0xbb: num=7;break;
case 0x7b: num=8;break;
case 0xe7: num=9;break;
case 0xd7: num=0;break;
case 0xb7: num=10;break;
case 0x77: num=11;break;
}
while(1)
{
P1=0xf0;
if((P1&0xf0)==0xf0)
break;
// else display(15);
}
return num;
}
}
return 15;
}
void main() //主程序
{
char key,i,a=0;
SerialInit();
while(1)
{
SerialSendChars("ati\r");//ati初始化
delay_50ms(20);
SerialSendChars("ati\r");//ati初始化
delay_50ms(20);
SerialSendChars("ati\r");//ati初始化
delay_50ms(20);
key=keyscan();
while(key!=10)
key=keyscan();
display(key);
for(i=0;i<11;i++)
{
key=keyscan();
while(key==15|key==11|key==10)
key=keyscan();
display(key);
haoma=key+'0';
a++;
}
a=0;
key=keyscan();
while(key!=10)
key=keyscan();
SerialSendChars(haoma);
display(15);
key=keyscan();
while(key!=11)
key=keyscan();
display(11);
SerialSendChars("ATH\R");
}
} 是程序的问题,肯定和单片机没有关系 楼主,,同求单片机控制sim300成功的程序啊 zhanyicai000 发表于 2012-8-27 17:00 static/image/common/back.gif
楼主,,同求单片机控制sim300成功的程序啊
我只要让他发个信息 sim100 的有成功c51例程木有? {:mad:}
页:
[1]