3.15
来源:互联网 发布:把json数组放入map中 编辑:程序博客网 时间:2024/05/08 14:36
#include<reg52.h>
#include"./delay/delay.h"
#include"./lcd1602/lcd1602.h"
#include"./keyboard/keyboard.h"
#define Ubuf_Max 150 //´®¿Ú»º´æ³¤¶È
sbit Yellow_LED = P2^2; //LED1»ÆɫָʾµÆ
sbit Green_LED = P2^1; //LED2ÂÌɫָʾµÆ
sbit Red_LED = P2^0; //LED3ºìɫָʾµÆ
xdata unsigned char Uart_Buf[Ubuf_Max]; //´®¿ÚÊý¾Ý»º³åÇø
unsigned char cnt = 0; //´®¿Ú½ÓÊÕ×Ö·û´®µÄÆðʼ´æ´¢Î»ÖÃ
unsigned char Message[16]; //¶ÌÐÅÄÚÈÝ
unsigned char Phone_Num[11]; //µç»°ºÅÂë
void Uart_init();
void Wait_CREG();
void Module_init();
/***************************************************************/
void Send_Hex(unsigned char c) //·¢ËÍÊ®Áù½øÖÆ×Ö·û
{
ES = 0;
SBUF = c;
while(TI != 1); //µÈ´ý·¢ËÍÍê±Ï
TI = 0;
ES = 1;
}
void Send_ASCII(unsigned char *b) //·¢ËÍ×Ö·û£¨ASCII£©
{
ES = 0;
for(b;*b != '\0';b++)
{
SBUF = *b;
while(TI != 1);
TI = 0;
}
ES = 1;
}
/********************************************************/
void Send_Enter() //·¢ËÍ»»Ðлسµº¯Êý
{
Send_Hex(0x0D);
Send_Hex(0x0A);
}
void Clear_Ubuf() //Çå³ý´®¿Ú»º´æÊý¾Ý
{
unsigned int k;
for(k = 0;k < Ubuf_Max;k++)
{
Uart_Buf[k] = 0x30;
}
cnt = 0;
}
void Send_Message() //·¢ËͶÌÐÅ
{
unsigned char i;
Send_ASCII("AT+CMGS=\"+86");
for(i = 0;i < 11;i++)
{
Send_Hex(Phone_Num[i]);
}
Send_ASCII("\"");
Send_Enter();//·¢ËÍ»»Ðлسµ
delay_ms(1000);
Send_ASCII(Message);//·¢Ëͻظ´ÄÚÈÝ
//ÔÚÕâÀïÉèÖ÷¢ËÍÄÚÈÝ
Send_Hex(0x1A);//·¢ËÍÊ®Áù½øÖÆÊý1A
Send_Enter();//·¢ËÍ»»Ðлسµ
delay_ms(5000);
Clear_Ubuf();
}
/********************************************************/
void main()
{
unsigned char num,j;
unsigned char i = 0,k = 0;
unsigned char Mes_dat,Pho_dat;
bit MOP_flag = 0;
InitLcd1602();
Uart_init();
Wait_CREG();
Module_init();
Yellow_LED = 0;
Green_LED = 0;
Red_LED = 0;
while(1)
{
LcdShowStr(0,0,"Mes:");
LcdShowStr(0,1,"Tel:");
num = KeyPro();
if(num != 0xff)
{
if((num >= 0)&&(num <= 9))
{
if(MOP_flag == 0)
{
Message[i] = num + '0';
Mes_dat = num + '0';
LcdShowDat(i+4,0,Mes_dat);
i++;
}
else
{
Phone_Num[k] = num + '0';
Pho_dat = num + '0';
LcdShowDat(k+4,1,Pho_dat);
k++;
}
}
else if(num == '+')
{
if(MOP_flag == 0)
{
MOP_flag = 1;
}
else
{
MOP_flag = 0;
}
}
else if(num == '=')
{
Send_Message();
MOP_flag = 0;
delay_s(2);
LcdFullClear();
LcdShowStr(0,0,"Send Succeed");
delay_s(2);
LcdFullClear();
LcdShowStr(0,0,"Mes:");
LcdShowStr(0,1,"Tel:");
i = 0;
k = 0;
for(j = 0;j < 16;j++)
{
Message[j] = '\0';
}
for(j = 0;j < 16;j++)
{
Phone_Num[j] = '\0';
}
}
else if(num == '.')
{
LcdFullClear();
LcdShowStr(0,0,"Mes:");
LcdShowStr(0,1,"Tel:");
i = 0;
k = 0;
MOP_flag = 0;
for(j = 0;j < 16;j++)
{
Message[j] = '\0';
}
for(j = 0;j < 16;j++)
{
Phone_Num[j] = '\0';
}
}
else
break;
}
}
}
/********************************************************/
void Uart_init() //´®¿Ú³õʼ»¯
{
SCON = 0x50; //ÉèÖô®¿Ú¹¤×÷·½Ê½
TMOD |= 0x20;
TH1 = 0xFD; //²¨ÌØÂÊ£º9600
ET1 = 0;
EA = 1;
TR1 = 1;
ES = 1;
}
void Wait_CREG() //µÈ´ýÄ£¿é×¢²á³É¹¦
{
unsigned char i;
unsigned int k;
i = 0;
Clear_Ubuf();
while(i == 0)
{
Clear_Ubuf();
Send_ASCII("AT+CREG?");
Send_Enter();
delay_ms(1000);
for(k = 0;k < Ubuf_Max;k++)
{
if(Uart_Buf[k] == ':')
{
if((Uart_Buf[k+4] == '1')||(Uart_Buf[k+4] == '5'))
{
i = 1;
break;
}
}
}
}
}
void Module_init() // Ä£¿é³õʼ»¯
{
Send_ASCII("ATE0"); //È¡Ïû»ØÏÔ
Send_Enter();
delay_ms(500);
Send_ASCII("AT+CNMI=2,2"); //¶ÌÐŵ½À´Ê±Ö±½Óͨ¹ý´®¿ÚÊä³ö£¬²»×ö´æ´¢
Send_Enter();
delay_ms(500);
Send_ASCII("AT+CMGF=1"); //TEXTģʽ
Send_Enter();
delay_ms(500);
}
/***************************************************************/
void InterruptUART() interrupt 4
{
ES = 0; //¹Ø´®¿ÚÖжϣ¬·ÀÖ¹ÖжÏǶÌ×
if(RI)
{
RI = 0;
Uart_Buf[cnt] = SBUF;
cnt++;
if(cnt > Ubuf_Max)
{
cnt = 0;
}
}
if(TI)
{
TI = 0;
}
ES = 1;
}
#include"./delay/delay.h"
#include"./lcd1602/lcd1602.h"
#include"./keyboard/keyboard.h"
#define Ubuf_Max 150 //´®¿Ú»º´æ³¤¶È
sbit Yellow_LED = P2^2; //LED1»ÆɫָʾµÆ
sbit Green_LED = P2^1; //LED2ÂÌɫָʾµÆ
sbit Red_LED = P2^0; //LED3ºìɫָʾµÆ
xdata unsigned char Uart_Buf[Ubuf_Max]; //´®¿ÚÊý¾Ý»º³åÇø
unsigned char cnt = 0; //´®¿Ú½ÓÊÕ×Ö·û´®µÄÆðʼ´æ´¢Î»ÖÃ
unsigned char Message[16]; //¶ÌÐÅÄÚÈÝ
unsigned char Phone_Num[11]; //µç»°ºÅÂë
void Uart_init();
void Wait_CREG();
void Module_init();
/***************************************************************/
void Send_Hex(unsigned char c) //·¢ËÍÊ®Áù½øÖÆ×Ö·û
{
ES = 0;
SBUF = c;
while(TI != 1); //µÈ´ý·¢ËÍÍê±Ï
TI = 0;
ES = 1;
}
void Send_ASCII(unsigned char *b) //·¢ËÍ×Ö·û£¨ASCII£©
{
ES = 0;
for(b;*b != '\0';b++)
{
SBUF = *b;
while(TI != 1);
TI = 0;
}
ES = 1;
}
/********************************************************/
void Send_Enter() //·¢ËÍ»»Ðлسµº¯Êý
{
Send_Hex(0x0D);
Send_Hex(0x0A);
}
void Clear_Ubuf() //Çå³ý´®¿Ú»º´æÊý¾Ý
{
unsigned int k;
for(k = 0;k < Ubuf_Max;k++)
{
Uart_Buf[k] = 0x30;
}
cnt = 0;
}
void Send_Message() //·¢ËͶÌÐÅ
{
unsigned char i;
Send_ASCII("AT+CMGS=\"+86");
for(i = 0;i < 11;i++)
{
Send_Hex(Phone_Num[i]);
}
Send_ASCII("\"");
Send_Enter();//·¢ËÍ»»Ðлسµ
delay_ms(1000);
Send_ASCII(Message);//·¢Ëͻظ´ÄÚÈÝ
//ÔÚÕâÀïÉèÖ÷¢ËÍÄÚÈÝ
Send_Hex(0x1A);//·¢ËÍÊ®Áù½øÖÆÊý1A
Send_Enter();//·¢ËÍ»»Ðлسµ
delay_ms(5000);
Clear_Ubuf();
}
/********************************************************/
void main()
{
unsigned char num,j;
unsigned char i = 0,k = 0;
unsigned char Mes_dat,Pho_dat;
bit MOP_flag = 0;
InitLcd1602();
Uart_init();
Wait_CREG();
Module_init();
Yellow_LED = 0;
Green_LED = 0;
Red_LED = 0;
while(1)
{
LcdShowStr(0,0,"Mes:");
LcdShowStr(0,1,"Tel:");
num = KeyPro();
if(num != 0xff)
{
if((num >= 0)&&(num <= 9))
{
if(MOP_flag == 0)
{
Message[i] = num + '0';
Mes_dat = num + '0';
LcdShowDat(i+4,0,Mes_dat);
i++;
}
else
{
Phone_Num[k] = num + '0';
Pho_dat = num + '0';
LcdShowDat(k+4,1,Pho_dat);
k++;
}
}
else if(num == '+')
{
if(MOP_flag == 0)
{
MOP_flag = 1;
}
else
{
MOP_flag = 0;
}
}
else if(num == '=')
{
Send_Message();
MOP_flag = 0;
delay_s(2);
LcdFullClear();
LcdShowStr(0,0,"Send Succeed");
delay_s(2);
LcdFullClear();
LcdShowStr(0,0,"Mes:");
LcdShowStr(0,1,"Tel:");
i = 0;
k = 0;
for(j = 0;j < 16;j++)
{
Message[j] = '\0';
}
for(j = 0;j < 16;j++)
{
Phone_Num[j] = '\0';
}
}
else if(num == '.')
{
LcdFullClear();
LcdShowStr(0,0,"Mes:");
LcdShowStr(0,1,"Tel:");
i = 0;
k = 0;
MOP_flag = 0;
for(j = 0;j < 16;j++)
{
Message[j] = '\0';
}
for(j = 0;j < 16;j++)
{
Phone_Num[j] = '\0';
}
}
else
break;
}
}
}
/********************************************************/
void Uart_init() //´®¿Ú³õʼ»¯
{
SCON = 0x50; //ÉèÖô®¿Ú¹¤×÷·½Ê½
TMOD |= 0x20;
TH1 = 0xFD; //²¨ÌØÂÊ£º9600
ET1 = 0;
EA = 1;
TR1 = 1;
ES = 1;
}
void Wait_CREG() //µÈ´ýÄ£¿é×¢²á³É¹¦
{
unsigned char i;
unsigned int k;
i = 0;
Clear_Ubuf();
while(i == 0)
{
Clear_Ubuf();
Send_ASCII("AT+CREG?");
Send_Enter();
delay_ms(1000);
for(k = 0;k < Ubuf_Max;k++)
{
if(Uart_Buf[k] == ':')
{
if((Uart_Buf[k+4] == '1')||(Uart_Buf[k+4] == '5'))
{
i = 1;
break;
}
}
}
}
}
void Module_init() // Ä£¿é³õʼ»¯
{
Send_ASCII("ATE0"); //È¡Ïû»ØÏÔ
Send_Enter();
delay_ms(500);
Send_ASCII("AT+CNMI=2,2"); //¶ÌÐŵ½À´Ê±Ö±½Óͨ¹ý´®¿ÚÊä³ö£¬²»×ö´æ´¢
Send_Enter();
delay_ms(500);
Send_ASCII("AT+CMGF=1"); //TEXTģʽ
Send_Enter();
delay_ms(500);
}
/***************************************************************/
void InterruptUART() interrupt 4
{
ES = 0; //¹Ø´®¿ÚÖжϣ¬·ÀÖ¹ÖжÏǶÌ×
if(RI)
{
RI = 0;
Uart_Buf[cnt] = SBUF;
cnt++;
if(cnt > Ubuf_Max)
{
cnt = 0;
}
}
if(TI)
{
TI = 0;
}
ES = 1;
}
0 0
- 3.15
- 3.15
- 3.15
- 3.15
- 3.15
- 3.15
- 3.15
- 3.13~3.15
- 3.15工作报告
- 直击3.15
- 3.15爬爬爬
- 3.15工作小结
- 一周学习总结3.15
- 3.15 遇到的问题
- 2011的3.15晚会
- SICP Exercise 3.15
- 3.15 ioctl函数
- struts2.3.15环境搭建
- 邮件服务器
- PATLeft-pad
- Spring知识点提炼
- Codevs 3002 石子归并 3(DP四边形不等式优化)
- 结巴分词2--基于前缀词典及动态规划实现分词
- 3.15
- 细说 IOS 时间相关
- oracle 多行合并成一行: listagg \ within group
- sdut 2870
- 总结篇:大型网站技术架构-性能(二)
- 1127. ZigZagging on a Tree (30) PAT 甲级
- JavaScript数据类型(一)
- 单例模式
- --save-dev 与--save的区别