打印

【菜鸟求救】关于TC35

[复制链接]
1447|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyhbb163|  楼主 | 2011-10-30 22:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 wyhbb163 于 2011-10-30 22:43 编辑

想做一个短信控制的机械。目前用计算机调试买来的TC35开发板是正常的,发出过信息。目前仅仅想实现单片机和模块之间的握手,即发AT收OK。程序也不长,附在下面。单片机的程序用电脑调试过,发OK给他是会有反应的(蜂鸣器),但是把两者连起来之后就什么反应没有。
补充,我是直接将单片机的输入输出口与TC模块的GT-R,GT-T相连的。急求高手指点。
以下是程序。

#include<stdio.h>
#include<reg52.h>
#define uint unsigned int   //定义常用数据类型替代码
#define uchar unsigned char
sbit buz=P3^4;
void delay_1ms(void);
void init_serial();     //串口初始化程序
void sendchar(char a);
int check();
void beep();
char dat;
char string[50]="";
code char ipr[]="AT+IPR=9600";
int l;
int main()
{  
int j;
init_serial();    //初始化串行口
for(j=1;j<=4000;j++) delay_1ms();
while(1){
{
      
  l=0;
  //sendstring(ipr);
  //sendchar(0x0d);   
  sendchar('A');
  sendchar('T');
  sendchar(0x0d);  
  delay_1ms();
  delay_1ms();
  delay_1ms();
  
  for(j=1;j<=2000;j++) delay_1ms();
}

}
return 0;
}
void init_serial()        //初始化串口
{
TMOD=0x20;         //定时器T1使用工作方式2
TH1=0xfd;          //设置初值
TH0=0xfd;
TR1=1;           //开始计时
SCON=0x50;          //工作方式1,波特率9600bit/s,允许接收
PCON=0x00;          //SMOD=0;
EA=1;
ES=1;
ET0=1;
}
void sendchar(char a)
{
int j;
ES=0;
SBUF=a;
while(TI==0) {};
TI=0;
for(j=0;j<=25;j++) delay_1ms();
ES=1;
}
void delay_1ms(void)    //延时程序
{
uint i,j;
for(i=0;i<10;i++)
for(j=0;j<20;j++);
}
void beep()
{
int j;
buz=0;
for(j=0;j<=100;j++) delay_1ms();
buz=1;
}
void receive() interrupt 4 using 3
{
if(RI)
{
  RI=0;
  dat=SBUF;
  string[l]=dat;
  if(dat==0x0a)
  {
   //beep();
   string[l]='\0';
   check();
  }
  else l++;
}
}
int check()
{
int j;
j=0;
while(string[j]!='\0')
{
  if(j>=1 && string[j-1]=='O' && string[j]=='K')
  {
   beep();
   l=0;
   return 0;
  }
  j++;
}
l=0;
return 0;
}

相关帖子

沙发
chunyang| | 2011-10-31 00:06 | 只看该作者
检查连线,注意T-T、R-R,另外命令结尾要加回车(0D)及换行符(0A)。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

1

帖子

0

粉丝