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

📄 main.c

📁 基于AT89S52的GSM安防系统
💻 C
字号:
/****************************************************************
 ****************************************************************
 ****			    main.c  主函数							*****
 ****														*****
 ****				本程序都是采用PDU格式					*****
 ****************************************************************
 ****************************************************************/


#include <at89x52.h>
#include <string.h>
#include <gsm-at.h>
#include <key.h>
#include <lcd.h>
#include <at24c02.h>
#include <delayms.h>

extern bit scan_Security();//安全监控扫描
//警报扫描初始化  初始化所有检测电平,等待警报电平进入
extern void init_security();
		
extern uchar idata phonenum[15];//存放要发送对象的号码
extern uchar Nindex[];//存放发送到SIM卡中短信返回的index
extern void test_code(uchar n_delay,uchar n_wait);/*测试函数*/
void init_pho_msg();//号码和短信初始化

void main()
{
	
	lcd_disp0();
	I2C_Init();//I2C总线初始化

	P0_4=0;//
	LCD_clear();//清屏
	LCD_write_String(8,4,"GSM");
	disp16_16(2,2,16);//安
	disp16_16(4,2,17);//防
	disp16_16(6,2,18);//系
	disp16_16(8,2,19);//统
	delayms_100ms();

	init_interrupt();			//外部中断0初始化  键盘
	init_security();			//警报扫描初始化

	P0_4=1;//
	P0_5=0;//
	LCD_clear();//清屏
	disp16_16(0,0,29);//指
	disp16_16(2,0,30);//导
	disp16_16(4,0,31);//老
	disp16_16(6,0,32);//师
	LCD_write_char(':');
	disp16_16(2,2,33);//谭
	disp16_16(4,2,34);//雄
	disp16_16(6,2,35);//乐

	init_uart();				//初始化串口
	while(!connect_gsm());	  	//发送联机指令
	test_code(1,0);//

	P0_5=1;//
	P0_6=0;//
	LCD_clear();//清屏
	disp16_16(0,0,20);//制
	disp16_16(2,0,21);//作
	disp16_16(4,0,22);//人
	LCD_write_char(':');

	init_gsm();					//禁止回显,设置为pdu模式
	
	P0_6=1;//
	P0_7=0;//
//	LCD_clear();//清屏
	disp16_16(2,2,23);//林
	disp16_16(4,2,24);//国
	disp16_16(6,2,25);//友
	
	disp16_16(2,4,26);//徐
	disp16_16(4,4,27);//健
	disp16_16(6,4,28);//俊
	while(!connect_gsmnet()); 	//获取网络注册情况
	init_sim();					//不接受广播短信
	test_code(5,0);//响铃500ms提示初始化成功

	init_pho_msg();//号码和短信初始化
	P0_7=1;//
								
	test_code(1,0);//响铃100ms提示进入系统监控状态
	while(1)
	{		
		scan_Security();//安全监控扫描
		key_out();//键盘处理跳出		
		Chk_Read_Do();//检测读取新短信执行控制命令

	}
	 
}

//号码和短信初始化
void init_pho_msg()
{
	uchar i,n_addr=0x0;
//读取目标号码到phonenum
	for(i=0,n_addr=0x0;i<13;i++)
		I2C_On(I2C_SrRECV, 0xA0, n_addr++, &phonenum[i], 1);//读n_addr地址内容到phonenum
	phonenum[13] = '\0';
	if(phonenum[12]<0 && phonenum[12]>9)
	{
		strcpy(phonenum,"8618998361948");//设定初始号码
		for(i=0,n_addr=0x0;i<14;i++)
		{
			I2C_On(I2C_SEND, 0xA0, n_addr++, &phonenum[i], 1);//写phonenum内容到n_addr地址
			delayms_10ms();
		}
		phonenum[13] = '\0';
		while( !init_Send_sms_sim(phonenum) );		//初始化将所有要发送的短信写到SIM卡
	}
	LCD_clear();//清屏
	LCD_write_String(0,0,"Read Phone number");
	LCD_write_String(0,2,phonenum);
	
	delayms_1000ms();	
}

⌨️ 快捷键说明

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