51实现gsm的发短信收短信的程序

经过两周多的奋斗,终于能用单片机发送一个简单的英文短信了。。。哈哈。。

以下是源码:

#include<reg52.h>
#include<intrins.h>
#define uint  unsigned int
#define uchar unsigned char
#define KEY0_OK  1
#define KEY1_OK  2
#define KEY2_OK  3
#define KEY3_OK  4
sbit SENSER=P3^7;
sbit LCDE=P2^7;   //enable bit,LCDE--P2.7
sbit RS=P2^6;     //register select bit,RS--P2.6
sbit RW=P2^5;     //read or write select bit,RW--P2.5
sbit BF=P0^7;     //busy mark bit,BF--P0.7
sbit LED0=P1^0;
sbit LED1=P1^1;
sbit LED2=P1^2;
sbit LED3=P1^3;
sbit KEY0=P1^4;
sbit KEY1=P1^5;
sbit KEY2=P1^6;
sbit KEY3=P1^7;
uchar TEM_ARR[10]=0;
uchar HELLO[7]="HELLO";
uchar WAIT[9]="WAITING";
uchar REC_BUF[20]=0;
uchar key_mark=0;
uchar key0_mark=0;
uchar record=1;
void Delay_1us_(uint temp);
void Delay_ms(uint i);
void Display_son(uchar *p,uchar temp);
void Display(uchar temp);
void manage_data(uint temp);
unsigned char BusyTest(void);
void Init_1602();
void Write_Com(uchar dictate);
void Write_Data(uchar Data);
void Key_detect();
void Reset_18b20();
void Write_byte_18b20_(uchar temp);
uchar Read_byte_18b20_();
uint Get_tem_18b20();
void Send_data(uchar dat);
void Send_arr(uchar arr_capacity,uchar *p);
void Send_com(uchar *p);
void Arring_initialize();
void Init_Timer();
void GSM_receive();
void main()
{
 Init_Timer();
 Init_1602();
 Reset_18b20();
 Arring_initialize();
 while(1)
 {
  Key_detect();
  GSM_receive();
  Display(key_mark);
 }
}
/************KEY DETECT FUNCTION*************************************************************************************/
void Key_detect()
{
 if(KEY0==0)
 {
  Delay_1us_(10);
  if(KEY0==0)     //chose the one to be sended
  {
   if(key0_mark<2)
   key0_mark++;
   else
   key0_mark=0;
   LED0=0;
   key_mark=KEY0_OK;
  }
  while(!KEY0);
  LED0=1;
 }
 if(KEY1==0)        //affirm send samething
 {
  Delay_1us_(10);
  if(KEY1==0)
  {
   key_mark=KEY1_OK;
   LED1=0;
  }
  while(!KEY1);
  LED1=1;
 }
 if(KEY2==0)        //display temperature
 {
  Delay_1us_(10);
  if(KEY2==0)
  {
   key_mark=KEY2_OK;
   LED2=0;
  }
  while(!KEY2);
  LED2=1;
 }
 if(KEY3==0
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值