sim900a通过51单片机拨打电话的程序
时间: 2023-06-16 11:02:36 浏览: 161
下面是使用SIM900A模块通过51单片机拨打电话的基本程序,请注意替换相应的端口、波特率和电话号码:
```
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SIM900A_PWR = P1^0; //SIM900A模块电源控制
sbit SIM900A_RST = P1^1; //SIM900A模块复位控制
sbit SIM900A_DTR = P1^2; //SIM900A模块数据终端就绪
void delayms(uint xms) { //毫秒级延时函数
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void send_cmd(char *cmd) { //发送AT指令函数
uchar i;
for(i=0;cmd[i]!='\0';i++) {
SBUF = cmd[i];
while(TI == 0);
TI = 0;
}
}
void main() {
TMOD = 0x20; //定时器1工作方式2
TH1 = 0xfd; //波特率为9600
TL1 = 0xfd;
TR1 = 1; //启动定时器1
SCON = 0x50; //串口工作方式1
SIM900A_PWR = 1; //打开SIM900A模块电源
delayms(1000); //等待模块初始化
SIM900A_RST = 0; //复位SIM900A模块
delayms(100);
SIM900A_RST = 1;
delayms(5000); //等待模块初始化
send_cmd("AT\r\n"); //检测模块是否正常
delayms(2000);
send_cmd("AT+CLIP=1\r\n"); //启用来电显示
delayms(2000);
send_cmd("ATD电话号码;\r\n"); //拨打电话
while(1);
}
```
注意:这只是一个基本的程序示例,实际使用时可能需要根据SIM900A模块和51单片机的具体情况进行调整。此外,为了保证程序的正确性和安全性,请务必仔细阅读SIM900A模块和51单片机的相关文档,并严格按照它们的要求进行操作。
阅读全文