python发短信sim800_SIM800C通讯模块调试(六)接收短信

本文介绍了一个使用STC12C5A单片机通过Python与SIM800C通讯模块交互的程序,实现短信接收、内容判断与删除功能。程序通过串口通信初始化、AT指令交互,能识别特定短信内容并触发外部蜂鸣器,同时具备防止短信数量超出限制的机制。
摘要由CSDN通过智能技术生成

//注意:增加了短信内容判断后删除功能,这样防止短信数量超过50。

//密码只要包含是ghost,比如:123ghostary,外部蜂鸣器就会发出声音。

#include "STC12C5A.h"

#include

typedef unsigned char uint8;

typedef unsigned int uint16;

//sbit LSA=P2^2;

//sbit LSB=P2^3;

//sbit LSC=P2^4;

//#define LONG 1000

//uint16

table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//显示0~9的值

sbit LED0=P2^0;

sbit LED1=P2^1;

sbit LED2=P2^2;

sbit LED3=P2^3;

sbit LED4=P2^4;

sbit LED5=P2^5;

sbit LED6=P2^6;

sbit k1=P3^1; //定义P31口是k1(从左到右,第1个键)

sbit k2=P3^0; //定义P30口是k2(从左到右,第2个键),删除当前最后一条短信

sbit beep=P1^5;  //蜂鸣器

sbit sound=P2^7;  //喇叭

uint8 m,k,p,q,g,n,d;

//m=1,数据有效,Stinx表示最后一条短信序号位数(可能是一位,也可能是两位)

//k是Rtable[32]当前输入有效字符的写入位置,P为当前短信序号的第一位,q为当前短信序号的第

//g为串口接收筛选。g=1时选择数字,g=0时,不选择数字。n为当前短信数量。

//d=1时表示当前短信需要删除,d=0时表示当前短信不能删除。

uint8 Rtable[32];  //接收SIM800C模块传来的数据

uint8 DealNo;  //DealNo:需要检查反馈的代码

uint8 Data_compare(uint8 *p);

void ConfigUART();  //串口通信初始化函数,buad为单片机设置的波特率。

void Delay_ms(uint16 n);

void Uart_Send_String(uint8 *string);//串口发送多个字节。

void Delay_Us(uint8 us);

void Sent_UART(uint8 dat);  //串口发送一个字节

void tableZero();  //数组清空

//void displaynumofin();

void delinf();

void SIM800C_AT();  //SIM800C初始化

void delay(uint16 i)  //1ms

{

while(i--);

}

void Delay_Us(uint8 us)  //延时

{

while(us--);

}

void Delay_ms(uint16 n)  //延时

{

unsigned int  i,j;

for(i=0;i

for(j=0;j<123;j++);

}

void main()  //主程序

{

uint8

i;

tableZero();

sound=0;

i=0;

DealNo=0;

d=0;

k=0;

m=0;

n=0;

g=1;  //数字和大小写字母全部接收

p=33;  //数组Rtable[32]序号最大是31.

q=33;  //数组Rtable[32]序号最大是31.

LED0=0;

LED5=1;

LED6=1;

ConfigUART();  // 串口初始化

Delay_ms(50000);  //延时,SIM800C联网需要时间

LED0=1;

while(1)

{

if(k1==0)

//检测按键K1是否按下

{

delay(1000);  //消除抖动 一般大约10ms

if(k1==0) //再次判断按键是否按下

{

// tableZero();

Uart_Send_String("AT+CPOWD=1\r\n");

//发AT指令,测试SIM800C模块是否正常

delay(3000);

DealNo=9;

}

while(!k1); //检测按键是否松开

}

//删除当前最后一条短信

//AT+CMGD=34,0

//删除第34条短信OK

if(k2==0)

//检测按键K2是否按下

{

delay(1000);  //消除抖动 一般大约10ms

if(k2==0)  //再次判断按键是否按下

{

delinf();  //删除当前短信

DealNo=8;

}

while(!k2);  //检测按键是否松开

}

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Python解决SIM800C通信问题是一个非常好的选择。Python具有丰富的生态,可以轻松解决工业通信的各种问题。SIM800C通讯模块具有多种功能,包括TCP/IP、电话、短信、蓝牙通信、FTP、HTTP等。可以通过Python编写程序来实现SIM800C模块与PC端的通信,例如使用pymodbus库进行modbus tcp仿真,实现PC端读取PLC或工业设备modbus变量。同时,SIM800C通讯模块只需要连接VIN、GND、TXD、RXD等几个引脚就可以进行通信,可以与电脑或者单片机进行通讯。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [python使用pymodbus库进行modbus tcp通信](https://blog.csdn.net/brandon_l/article/details/127169641)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SIM800C通讯模块调试(一)](https://blog.csdn.net/cqdawnxsg/article/details/80680270)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [SIM800C通讯模块调试](https://blog.csdn.net/u014421313/article/details/127252012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值