51单片机是所有与Intel 8031指令系统兼容的单片机的统称。该系列单片机的始祖是英特尔的8004单片机。后来,随着Flash rom技术的发展,8004单片机取得了长足的进步,已成为使用最广泛的8位单片机之一。它的代表机型是ATMEL的AT89系列。它广泛用于工业测量和控制系统。许多公司推出了与51系列兼容的型号,这些型号将在未来很长一段时间内占据较大的市场。 51单片机是基本的介绍性单片机,或者使用最广泛的单片机。应该注意的是,51系列单片机通常不具有自编程能力。 SIM900A模块是紧凑的GSM / GPRS模块,采用SMT封装,基于STE的单芯片机壳,采用ARM926EJ-S架构,性能强大,可以内置客户应用程序。它可以广泛用于许多方向,例如车辆跟踪,车队管理,无线POS,手持PDA,智能抄表和电源监控。程序说明:该程序运行后,如果gprs模块找到服务提供商的信号,它将拨打指定的号码。 1.将您的51单片机的串行端口1连接到GSM的tx rx gnd2。找到程序前面的#define,根据说明修改您的MCU配置,然后编译该程序。3.下载该程序。程序4.按下模块重置按钮,启动模块,等待信号灯的闪烁减慢,重置微控制器4。等待基于51微控制器和sim900a连接程序#include“ REGX52”的成功传输。 H′ #define uchar unsigned char #define uint unsigned int //以下是板上的LED指示灯配置,将Px_x更改为其相应的引脚。 #define LED1_ON P1_0 = 0 #define LED1_OFF P1_0 = 1 #define LED2_ON P1_1 = 0 #define LED2_OFF P1_1 = 1 #define LED3_ON P1_2 = 0 #define LED3_OFF P1_2 = 1 #define LED4_ON P1_3 = 0 #define LED4_OFF P1_3 = //以下是您的51单片机的晶体振荡器大小#define FOSC_110592M //#define FOSC_12M //以下是引导后发送到手机的内容。发送的号码在程序中被修改。 uchar sms_text [] =“ 123& rdquo ;; //注意,无论接收到信号还是发送信号,都将进入中断服务程序/ *初始化程序(必须使用,否则无法发送和接收),第二个程序将使用定时器1 * /无效SerialInTI()//初始化程序(必须使用,否则不能发送和接收){TMOD = 0x20; //定时器1的工作模式2:8位自动重载定时器#ifdef FOSC_12M //根据晶体振荡器大小用不同的值TH1 = 0xf3初始化串口; //加载初始值,波特率2400 TL1 = 0xf3; #else TH1 = 0xfd; //加载初始值,波特率9600 TL1 = 0xfd; #endif // // SOC_12M TR1的结尾= 1; //打开定时器SM0 = 0; //设置串行通信模式(10为发送方式,波特率可变,由定时器1的溢出率控制) SM1 = 1; //(与上面相同)在此模式下,一旦定时器溢出,便会发送一位数据,REN = 1; //串行接收使能位(必须先设置sm0sm1然后串行使能)EA = 1; //打开总中断ES = 1; //打开串行端口中断} / *串行通信被中断,发送和接收完成后将进入中断* /无效Serial_interrupt()中断4 {// a = SBUF; P2 = SBUF; RI = 0; / /接收中断信号被清除,表明它将继续接收// flag = 1; //进入中断的标志符号} void Uart1Send(uchar c){SBUF = c; while(!TI); //等待发送完成信号(TI = 1)出现TI = 0; } //串行端口连续发送char类型的数组,遇到终止号/ 0时它将停止。Uart1Sends(uchar * str){while(* str!=& lsquo;