内容发布更新时间 : 2024/11/1 7:37:02星期一 下面是文章的全部内容请认真阅读。
此程序 为 通过51单片机来控制sim900 进而控制其拨打电话 如果解释上有什么错误希望能够向本人提出进而进行修改
#include
uchar code SMS_send[]= \T+COLP=1\被叫号码显示 sbit Send_SMS_PDU_key=P3^7; //拨打电话恩建 uchar code SMS_PDU[]= \TE1\设置回显 uchar Byte_num[]=\ //查看sim卡类型
uchar code Sms2_Pdu[]=\TD10086;\被叫号码 (如果需要拨打其他号码则将10086该变为其他号码即可)
uchar code guaduan[]=\挂断 摁下P3^4对应的恩建就会挂断
void delay(uint ms)// 延时子程序 {
uchar i; while(ms--) {
for(i=0;i<120;i++); } }
/*********************************************************** 函数名称:Print_Char
函数功能:发送单个字符
入口参数:ch 出口参数:无
***********************************************************/ void Print_Char(uchar ch)//发送单个字符 {
// TI=0;
SBUF=ch; //送入缓冲区
while(TI==0); //等待发送完毕 TI=0; //软件清零 }
/*********************************************************** 函数名称:Print_Str
函数功能:发送字符串
入口参数:*str 出口参数:无
***********************************************************/ void Print_Str(uchar *str)//发送字符串 {
while(*str!='\\0') {
Print_Char(*str++);
} }
/*Print_Str(uchar *str,uint len)//发送字符串,调用Send_Char() len字符串长度 {
while(len--) {
Print_Char(*str++); } }*/
/*********************************************************** 函数名称:Ini_UART
函数功能:串口初始化、定时器初始化 入口参数:无 出口参数:无
***********************************************************/ void Ini_UART(void)//串口初始化、定时器初始化 {
TMOD = 0x20; //T1方式2,用于UART波特率 TH1 = 0xFD; //UART波特率设置:9600 TL1 = 0xFD;
SCON = 0x50; ////UART方式1:8位UART; REN=1:允许接收 PCON = 0x00;
TF1 = 1; // 中断标志位
TR1 = 1; // 启动定时器1 ES=1; //启动串行口中断 ET0=1; //启动中断功能 EA=1;
}
void GSM_PDU() { Print_Str(Byte_num); Print_Str(\ delay(1000); delay(1000); Print_Str(SMS_PDU); //发送设置指令 Print_Str(\ //发送回车 ES=1; delay(1000); delay(1000); }
void GSM_PDU_SMS() {
Print_Str(SMS_send);
Print_Str(\发送回车 delay(1000); delay(1000);
Print_Str(Sms2_Pdu); //拨打电话为10086 Print_Str(\ delay(1000); ES=1; delay(5000); }
/*********************************************************** 函数名称:main 函数功能:主函数
***********************************************************/ void main() {
Ini_UART(); //串口初始化 while(1) {
if(!Send_SMS_PDU_key) //摁下 恩建 开始拨打电话 {
GSM_PDU(); //delay(500);