⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 用51单片机开发的GSM报警程序
💻 C
字号:
#include <REG51.h>
#include<intrins.h>
#include "serial.h"
#include "gsm.h"
#include "bianliang.h"
#include <string.h>
 
#define uchar_code unsigned char code
#define uchar unsigned char 
#define SELInt_on() ES=1       //串行口中断允许
#define SELInt_off() ES=0      //串行口中断禁止
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P0_4=P0^4;
sbit P0_5=P0^5;
sbit P0_6=P0^6;
sbit P0_7=P0^7;



void delay(int n)
{
  uchar i;
  while(n--)
   for(i=0;i<100;i++);
}

main(void)
{	
	 
	Ser_Init();     //初始化串口
	if(Test_Mc39i())
	P0_0=0;
	else
	P0_0=1;
	delay(100);
	if(Set_Speed())
	P0_1=0;
	else
	P0_1=1;
	delay(100);
	if(Store_Location())
	P0_2=0;
	else
	P0_2=1;
	delay(100);
	if(Auto_Prompt())
	P0_3=0;
	else
	P0_3=1;
	delay(50);
	if(MES_Mode(1))
	P0_4=0;
	else
	P0_4=1;
	delay(50);
	Cls_Rebuf();	
	

//	P0_5=1;
//	else
	//if(Sent_Mes(alarm_mes))
	//P0=Rev_count;
	//P0=Rev_Buf[35];
	//delay(10000);
	//P0=Rev_Buf[36];
	//delay(10000);
	//P0=Rev_Buf[37];
	//delay(10000);
	//P0=Rev_Buf[38];

/*	Rev_Buf[34]=0x31;
	Rev_Buf[35]=0x33;
	Rev_Buf[36]=0x35;
	Rev_Buf[37]=0x36;
	Rev_Buf[38]=0x30;
	Rev_Buf[39]=0x34;
	Rev_Buf[40]=0x30;
	Rev_Buf[41]=0x35;
	Rev_Buf[42]=0x38;
	Rev_Buf[43]=0x34;
	Rev_Buf[44]=0x34;
	Rev_Buf[45]=0x31;

	MES_COUNT=0x33;
	Read_Mes(MES_COUNT);
	if(!strcmp(TEL_Buf,TelNumber))
	P0_7=0;
	else 
	//P0_7=1;
	P0=TEL_Buf[11];
*/
	while(1);
/*	while(1)
	{
		New_Mes();
		if(NewSMS_flag)
		P0=MES_COUNT;
		
		NewSMS_flag=0;
		MES_COUNT=0;
		
		//else
		//P0=Rev_Buf[15];
	//	P0_1=1;
	}*/
	//P0=Rev_Buf[12];
	//delay(50);
	
    
	
	//P0=Rev_Buf[24];
		//P0=0xfE;
  	//INIT_GSM();		//MC39i初始化

/*	while(1)
	{  
		New_Mes();//检测是否有新信息
		if(NewSMS_flag==1)
		{	
			NewSMS_flag=0;//复位新短信标志
			Read_Mes(MES_COUNT);//读取控制指令
			CMD_SHIBIE();//指令识别
			Del_Mes(MES_COUNT);//删除短信
		}
		if(TELNUM_OK)//如果电话号码正确
		{
			switch(CMD)
			{
				case 1:
					P1_7=0;
				break;
			}
			 
		}*/
		//TEL_Bef

 /***************查询接收方式***********************/
		/*if(RI)						// 是否有数据到来
		{
			RI = 0;
			tmp = SBUF;				// 暂存接收到的数据
			P0 = tmp;				// 数据传送到P0口
			//send_char(tmp);			// 回传接收到的数据
		}*/
        /***************************************************************************/
		/*if(Rev_Buf[0]==0x01)
			P00=0;
		if(Rev_Buf[1]==0x01)
			P01=0;
		if(Rev_Buf[2]==0x01)
			P02=0;
		if(Rev_Buf[3]==0x01)
			P03=0;
		if(Rev_Buf[4]==0x01)
			P04=0;
		if(Rev_Buf[5]==0x01)
			P05=0;
		if(Rev_Buf[6]==0x01)
			P06=0;
		if(Rev_Buf[7]==0x01)
			P07=0;*/
		
//	}

}



void Ser_Rev() interrupt 4 using 1//中断接收
{
    SELInt_off();
	if(RI==1)
  	RI=0;
	Rev_Buf[Rev_count++]=SBUF;
	if(Rev_count==Rev_BufSIZE)
	{
		Rev_count=0;
	}
	SELInt_on();
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -