📄 main.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 + -