专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
急求一个用8051控制TC35i GSM模块发短信的C语言程序
2019-03-24 18:45
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
5835
3
1047
急求一个用8051控制TC35i GSM模块发短信的C语言程序 程序越简单越好。只要求发短信。急!!谢谢 邮箱
84085155@qq.com
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
302805868@qq.co
2019-03-25 00:49
#include<reg52.h>
#include<absacc.h>
#include<stdio.h>
sbit P2_4=P2^4;
sbit P2_2=P2^2;
//---LED显示控制---------
sbit S1=P1^3;
sbit S2=P1^4;
sbit S3=P1^5;
sbit S4=P1^6;
sbit A1=P0^0;
sbit A2=P0^1;
sbit WD=P1^0;
sbit CLK=P1^2;
sbit EN_LED=P1^1;
//-----------------------
#define uint unsigned int
#define uchar unsigned char
uchar num_c[8],num_d,num_sum,high_t;
uint time_add2,time_add,num_e;
uchar code tab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xfd,0xff};//0-9,-,全灭 (共阳字段表)
#define RST 0X01
#define CMGF 0X02
#define CMGD 0X03
#define CREG 0X04
#define CMGR 0X05
#define CMGS 0X06
#define CSCA 0X07
#define ATDAT 0X08
#define TC35RET 0X00
uint temp;
void delay(int de_u)
{int u,n;
//10us
for(u=0;u<de_u;u++)
{
for(n=0;n<1000;n++)
{;}
}
}
void Displaybyte(uchar byte)
{
uchar num,c;
num= 0xff-tab[byte];//共阴
EN_LED=0;EN_LED=1;
for(c=0;c<8;c++)
{
if(num&0x01) //(0x80即十进制的128, 二进制的10000000 按位发送)
WD=1;
else
WD=0;
num>>=1;
CLK=0;
CLK=1;
}
delay(2);
// Delay_ms(1);//A0;B0;C0;D0;//CLR_LED;
}
#include"GSM.h"
void ATE0(void);
void delay_GSM(uint);
void init_serialcom( void );
void send_uart( unsigned char);
void ATNAME(void);
void AT_CMGS(void);
void AT_CSCA(void);
void AT_RST(void);
void AT_CREG(void);
void AT_CMGF(void);
void AT_CMGR(void);
void AT_CMGD(void);
void Init_T0 (void)
{
TMOD = 0x21;
TH0 = (65536-10000) /256;
TL0 = (65536-10000) %256;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Time0_ISR(void) interrupt 1 using 0
{
TH0 = (65536-10000) /256; //初始值
TL0 = (65536-10000) %256;
}
main()
{
//--------初始化-------------------
init_serialcom();
//Init_T0();
//--------发三次关闭回显命令----------------
S1=1;S2=0;S3=0;S4=0;
Displaybyte(0X00);
delay_GSM(100);
ATE0();
Displaybyte(0X01);
delay_GSM(100);
TC35_MAX=0;
ATE0();
Displaybyte(0X02);
delay_GSM(100);
SMS_CONFIG();
//ATE0();
Displaybyte(0X03);
delay_GSM(100);
//------------------------------
for(i_TC35=0;i_TC35<=39;i_TC35++)
{TC35_RE[i_TC35]=0;}
i_TC35_RECE=0;
TC35_MAX=0;
//P0_0是高电平就行这样P01会亮
//
ATE0();
while(1)
{
SEND_MESSAGE();
}
}
加载中...
查看其它3个回答
一周热门
更多
>
相关问题
相关文章
基于51单片机的计算器设计
0个评论
51单片机300个proteus仿真实例下载
0个评论
51单片机 蜂鸣器
0个评论
51单片机驱动RC522模块
0个评论
基于51单片机的指纹密码锁
0个评论
AT89C51单片机制作简易密码锁
0个评论
51单片机汇编语言计数器
0个评论
51单片机精确延时设计
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#include<absacc.h>
#include<stdio.h>
sbit P2_4=P2^4;
sbit P2_2=P2^2;
//---LED显示控制---------
sbit S1=P1^3;
sbit S2=P1^4;
sbit S3=P1^5;
sbit S4=P1^6;
sbit A1=P0^0;
sbit A2=P0^1;
sbit WD=P1^0;
sbit CLK=P1^2;
sbit EN_LED=P1^1;
//-----------------------
#define uint unsigned int
#define uchar unsigned char
uchar num_c[8],num_d,num_sum,high_t;
uint time_add2,time_add,num_e;
uchar code tab[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09,0xfd,0xff};//0-9,-,全灭 (共阳字段表)
#define RST 0X01
#define CMGF 0X02
#define CMGD 0X03
#define CREG 0X04
#define CMGR 0X05
#define CMGS 0X06
#define CSCA 0X07
#define ATDAT 0X08
#define TC35RET 0X00
uint temp;
void delay(int de_u)
{int u,n;
//10us
for(u=0;u<de_u;u++)
{
for(n=0;n<1000;n++)
{;}
}
}
void Displaybyte(uchar byte)
{
uchar num,c;
num= 0xff-tab[byte];//共阴
EN_LED=0;EN_LED=1;
for(c=0;c<8;c++)
{
if(num&0x01) //(0x80即十进制的128, 二进制的10000000 按位发送)
WD=1;
else
WD=0;
num>>=1;
CLK=0;
CLK=1;
}
delay(2);
// Delay_ms(1);//A0;B0;C0;D0;//CLR_LED;
}
#include"GSM.h"
void ATE0(void);
void delay_GSM(uint);
void init_serialcom( void );
void send_uart( unsigned char);
void ATNAME(void);
void AT_CMGS(void);
void AT_CSCA(void);
void AT_RST(void);
void AT_CREG(void);
void AT_CMGF(void);
void AT_CMGR(void);
void AT_CMGD(void);
void Init_T0 (void)
{
TMOD = 0x21;
TH0 = (65536-10000) /256;
TL0 = (65536-10000) %256;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void Time0_ISR(void) interrupt 1 using 0
{
TH0 = (65536-10000) /256; //初始值
TL0 = (65536-10000) %256;
}
main()
{
//--------初始化-------------------
init_serialcom();
//Init_T0();
//--------发三次关闭回显命令----------------
S1=1;S2=0;S3=0;S4=0;
Displaybyte(0X00);
delay_GSM(100);
ATE0();
Displaybyte(0X01);
delay_GSM(100);
TC35_MAX=0;
ATE0();
Displaybyte(0X02);
delay_GSM(100);
SMS_CONFIG();
//ATE0();
Displaybyte(0X03);
delay_GSM(100);
//------------------------------
for(i_TC35=0;i_TC35<=39;i_TC35++)
{TC35_RE[i_TC35]=0;}
i_TC35_RECE=0;
TC35_MAX=0;
//P0_0是高电平就行这样P01会亮
//
ATE0();
while(1)
{
SEND_MESSAGE();
}
}
一周热门 更多>