历史上的今天
今天是:2024年12月17日(星期二)
2020年12月17日 | 基于AT89S52+SIM300 GPRS的远程控制系统程序
2020-12-17 来源:51hei

单片机源程序如下:
/****************************************************************************************
* 文件名称:SIM300.c
* 说明:本文件为单片机控制GPRS模块程序文件
* 功能:单片机控制SIM300模块拨打电话
* 修改:无
* 版本:1.0.0
* 作者:YuanDong
* 时间:2009.8.5
*****************************************************************************************/
#include <51reg.h>
#include #include #include #include #define PWR_ON P2.5 //SIM300模块供电脚 #define PWR_Key P2.4 //SIM300上电控制脚 sbit P2.4=P2^4; sbit P2.5=P2^5; #define AT_SEND_OK 0 //AT命令发送OK uchar strcall[]="ATD15851861610"; //要拨打的电话号码 uint len=15; //strcall[] 的长度 uint switch = 0; //SIM300 reset 成功 /***************************************************************************************** *函数名称:init_IO(void) *函数功能:单片机I/O初始化 *入口函数:无 *出口函数:无 *****************************************************************************************/ void init_IO(void) { PWR_ON=0; PRW_KEY=0; } /***************************************************************************************** *函数名称:SIM300_reset(void) *函数功能:SIM300复位 *入口函数:无 *出口函数:SWITCH *****************************************************************************************/ uint SIM300_reset(void) { PWR_ON=1; //GPRS PWR CTL on PWR_KEY=1; //GPRS PWRKEY CTL hight delay_ms(3000); //模块开启或关闭后等待3S PWR_KEY=0; //pwrkey须先置高大于2s,再置低之后,才能正确复位模块 delay_ms(2500); return SWITCH; } /***************************************************************************************** *函数名称:SendAT(void) *函数功能:发送AT命令 *入口函数:无 *出口函数:AT_SEND_OK *****************************************************************************************/ uint SendAT(void) { send_str(strcall[],len); //调用 Target.c里的send_str() return AT_SEND_OK; } /***************************************************************************************** *函数名称:void main(int argc, char **argv) *函数功能:主函数 *入口函数:无 *出口函数:无 *****************************************************************************************/ void main(void) { while(1) { int i,j,k,status; init_IO(); //I/O 初始化 usart0_initial(); //串口初始化 SIM300_reset(); //SIM300 复位 for(i=0;i<10000;i++) for(j=0;j<100;j++) for(k=0;k<100;k++); //延时一段时间 status = SendAT(); //发送AT命令 for(k=0;k<20000;k++); if(!status) { printf("GPRS link ok!"); } else { printf("GPRS link error!"); } } }
史海拾趣
|
1. 汽车气囊注意事项 >> https://bbs.eeworld.com.cn/thread-715-1-51.html 2. 汽车转速传感器的维修 >>https://bbs.eeworld.com.cn/thread-455-1-51.html 3. 解析奥迪防盗器7位密码的秘密>>https://bbs.eeworld.com.cn/thread-432-1-50.html 4. ...… 查看全部问答> |
|
.系统板上硬件连线 (1. 把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上; (2. 把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中的S1-S8端口上; 动态数码 ...… 查看全部问答> |
|
求教:设备意外删除后收不到IRP_MN_REMOVAL_DEVICE? 为什么SURPRISE_REMOVE后没有REMOVE_DEVICE 小弟写的一个USB驱动程序在安装完成之后,插入设备,设备正常启动,然后直接拔出设备,有时候会出现收不到IRP_MN_REMOVAL_DEVICE的现象。 在log中,IRP序列为: 1)IRP_MN_QUERY_DEVICE_RELATION 连续 ...… 查看全部问答> |
|
请问9b92 C1版本的FLASH是不是有烧写限制?是多少次?我在网上看到一些说是的100次左右,这说法是否正确? 同时能否解释下下面的问题?谢谢~~~ 我下载时提示“Could not power up debug port: Control/Status register reads 000000F0” 用JLINK ...… 查看全部问答> |
|
430也能玩嵌入式:Contiki内核在IAR+MSP430下移植(八) 四、其他地方(1)loader-arch.hcpu/msp430/loader-arch.c文件中的#include \"loader/loader-arch.h\"改成#include \"loader/elfloader-arch.h\"。(通过逻辑判断)(2)FSSEL_SMCLKcontiki-2.5/cpu/msp430/rom.c文件中的FCTL2 = FWKEY | FSSEL_SMCLK | ( ...… 查看全部问答> |




