打印

关于51单片机控制TC35i模块的问题

[复制链接]
2205|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yourpotato|  楼主 | 2011-3-23 05:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是一个新手。希望大家能够帮我。
我现在做一个51单片机控制TC35i模块发短信的项目
我用电脑通过RS232连TC35i~已经可以发出短信了
但是我用单片机连MAX232再通过RS232连TC35i却发不出短信
我用单片机连MAX232再通过RS232连电脑可以看到串口发出去的指令
为什么指令发出去了模块却没反应呢?各位大哥知道是什么问题的话请不吝赐教,小弟拜谢。
程序如下:
#include<reg52.h>
#include<stdio.h>
unsigned int i;
unsigned char letter= 0;
sbit D0=P0^0;
sbit D1=P0^1;
sbit D2=P0^2;
sbit D3=P0^3;
sbit D4=P0^4;
void serial_init(void);
void delay_3s(void);
void send_message(void);
//********************
void serial_init(void)
{
EA = 0;
ET1=0;
SCON = 0x50;
TMOD = 0x20;
TH1 = 0xFD;
TL1 = 0xFD;
TR1 = 1;
}
//*************************
void delay_3s(void)
{
  for(i=0;i<60;i++)    //delay 50ms *60= 3s
  {TMOD=0x21;
   TH0=0x3C   ;
   TL0=0xB0   ;
   TF0=0;
   TR0=1;
  
   while(TF0==0)
   {}
   TR0=0;
   TF0=0;
   }
}
//************************
char sendchar (char ch)
{
bit es = ES;
ES= 0;
SBUF = ch;
while (TI==0);
TI = 0;
ES = es;
return ch;
}
//*************************   
void send_message (void)
{   for ( ;letter<1;letter++)
  {  
     delay_3s();
     sendchar ('a');
     sendchar ('t');
     sendchar ('\r');
     sendchar ('\n');
     ES=1;
     delay_3s();
     D0=0;
     sendchar ('a');
     sendchar ('t');
     sendchar ('+');
     sendchar ('c');
     sendchar ('m');
     sendchar ('g');
     sendchar ('f');
     sendchar ('=');
     sendchar ('1');
     sendchar ('\r');
     sendchar ('\n');
     ES=1;
     delay_3s();
     D1=0;
     sendchar ('a');
     sendchar ('t');
     sendchar ('+');
     sendchar ('c');
     sendchar ('s');
     sendchar ('m');
     sendchar ('p');
     sendchar ('=');
     sendchar ('1');
     sendchar ('7');
     sendchar (',');
     sendchar ('1');
     sendchar ('6');
     sendchar ('7');
     sendchar (',');
     sendchar ('0');
     sendchar (',');
     sendchar ('0');
     sendchar ('\r');
     sendchar ('\n');
     ES=1;
     delay_3s();
     D2=0;
     sendchar ('a');
     sendchar ('t');
     sendchar ('+');
     sendchar ('c');
     sendchar ('s');
     sendchar ('c');
     sendchar ('s');
     sendchar ('=');
     sendchar ('g');
     sendchar ('s');
     sendchar ('m');
     sendchar ('\r');
     sendchar ('\n');
     ES=1;
     delay_3s();
     D3=0;
     sendchar ('a');
     sendchar ('t');
     sendchar ('+');
     sendchar ('c');
     sendchar ('m');
     sendchar ('g');
     sendchar ('s');
     sendchar ('=');
     sendchar ('0');
     sendchar ('8');
     sendchar ('7');
     sendchar ('1');
     sendchar ('6');
     sendchar ('8');
     sendchar ('5');
     sendchar ('5');
     sendchar ('4');
     sendchar ('6');
         sendchar ('\r');
          sendchar ('\n');
   delay_3s();
     sendchar ('h');
     sendchar ('e');
     sendchar ('l');
     sendchar ('l');
     sendchar ('o');
   sendchar (0x1A);
   ES=1;
   D4=0;
    delay_3s();      
}
}
//**************************
void main (void)
{ P1=0XFF;
serial_init();
while (1)
{
if (P1==0xFF) {}
else if (P1==0xFE)
{
send_message();
     
}
}
}
大概的电路图是这样(因为是临时画的。一些细节的东西我就不接上去了)

相关帖子

沙发
yourpotato|  楼主 | 2011-3-24 07:15 | 只看该作者
救命啊

使用特权

评论回复
板凳
lifei092| | 2011-10-2 16:33 | 只看该作者
我晕,这程序不能用一个数组来写吗!!!看起来太费劲了。。。。。

使用特权

评论回复
地板
coody| | 2011-10-2 16:36 | 只看该作者
支持LS建议

使用特权

评论回复
5
hujiangdong| | 2011-10-5 22:00 | 只看该作者
检查硬件 用示波器跟踪信号。

使用特权

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

本版积分规则

0

主题

10

帖子

1

粉丝