⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.c

📁 单片机控制SIM300C模块,一般了.就是讨厌,让我打20个字烦,害我说废话
💻 C
字号:
#include<stdio.h>
#include<reg51.h>
#include<intrins.h>

#define unchar unsigned char
#define unint unsigned int

sbit P1_0=P1^0;
unchar *re;


void ctout();
void received() ;
void chushihua();
void send();
//主函数
void main()
{
	chushihua();
	received();
	ctout();
	while(1)
	{
		while(P1_0==0)
		{
		 	send();
		}
	}
}

//延时函数
void delay(unsigned int i)      
	{
	unchar j;         //当i为1000时约延时1秒 
		for(;i>0;i--)
		{
   	   	for(j=0;j<125;j++) 
   			{ ; } 
		}
	}

//初始化串口
void chushihua()
{
	SCON=0x50;	  		//允许接收数据,串口方式1
	TMOD=0x20; 			//定时器1工作在工作方式2,定时器0工作在工作方式2
    TCON=0x40;          //设定时器1开始记数
  	TH1=0xF3; 			//24MHz 9600波特率
   	TL1=0xF3;
	PCON=0x80;          //SMOD=1,波特率翻倍				 
  	RI=0;               //清收发标志
	TI=0;
	TR1=1;     			//开始启动定时
}
//向串口发送字符
void send(unsigned char *outdate)
 {
 //	unchar *outdate;
	unchar i;
//	outdate="ATD13765113646;";
		for(i=0;i<15;i++)	
			{	
				SBUF=*outdate;	    //输出字符
				outdate++;
			} 
				SBUF=0x0d; //发送回车字符
		while(!TI);     	//空语句,判断字符是不是发完了
			TI=0;          		//清TI
		received(); 	
 }
 //接收函数
void received() 
{		
    if(RI)  			//判断是 不是收完字符
		{
		*re=SBUF;			//读出数据
		re++;
		RI=0;				//清RI
		}
 	ctout();
 }
//接收处理函数
void ctout()
	{	switch(*re)
		{
		    case "ERROR":			send(); break;
			case  "OK":			received(); break;
			case "dial string:":	delay(1000);send("ATA"); break;
	  
	 	}	
		
	}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -