亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gsm.c

?? 51單片機控制TC35I無線通信模塊的完整Keil C程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "c8051f020.h"								// SFR declarations

#define UINT	unsigned int 
#define UCHAR	unsigned char 

#define STARTCODE 0xfb
#define ENDCODE   0xf7
#define TI1 (SCON1 & 0x02)
#define RI1 (SCON1 & 0x01)

//sms
unsigned char xdata rec[80];	//0923

unsigned char code GSMCommand0[3] = "AT\r";
unsigned char code GSMCommand1[7] = "AT+CSQ\r";
unsigned char code GSMCommand2[10] = "AT+CMGF=0\r";
unsigned char code GSMCommand3[12] = "AT+CMGS=027\r";
unsigned char code GSMhead[12]="0011000D9168";
//unsigned char xdata PHONE_number[12]="3186634579f0";
//unsigned char xdata PHONE_number[12] _at_ 0x1010;//="3196415615F0";
unsigned char xdata PHONE_number[8][256][13]_at_	0x1010;//="3196638946f4";
//unsigned char xdata PHONE_number[12]="3186117183f2";
unsigned char code	GSM_set[6]="000801";
//unsigned char code	GSM_sms[10]="044F60597D";			//短消息內容:你好
unsigned char code	GSM_sms[26]="0C62115DF27ECF52308FBE3002";			//短消息內容:我已經到達。
//sms

xdata UCHAR TxBuf1[256];          //
xdata UCHAR RxBuf1[256];

xdata UCHAR timer0_counter;					// Delay counter.

sbit STATE=P1^0;                    	//終端狀態標志(1-單機,0-聯機)
sbit led1=P1^3;			//
sbit led2=P1^4;			//    (1-亮,0-滅)
sbit led3=P1^5;			//
sbit bell=P1^6;			//喇叭(0-響,1-不響)
sbit IGT=P1^1;
sbit PD=P1^7;

//函數原型聲明

//---------------------初始化-----------------------------------------------
void Mpu_ini(void);					//單片機初始化
void Baudrate_Init(void);			//串口初始化

//---------------------串口中斷控制-----------------------------------------
void Serial0_Inter_Close(void);    	//關串口0中斷
void Serial0_Inter_Open(void);		//開串口0中斷
void Serial1_Inter_Close(void);    	//關串口1中斷
void Serial1_Inter_Open(void);		//開串口1中斷
void Inter_Enable(void);			//開總中斷

//---------------------識別模塊控制-------------------------------------
void set_compair_state(void);       //進入比對狀態          08H/32H
void set_inner_compare_mode();		//設置XX模塊內部比對方式  05H
void set_work_mode(void);			//設置為登陸工作方式    08H/31H
void send_to_module1(UCHAR commandcode,UCHAR lenth);		//通過串口1發送數據(to module or PC)

void process_command_from_1();		//處理命令
//void  Serial1(void)   interrupt 20——串口中斷1——分別與 識別模塊(STATE=1單機)、計算機(STATE=0聯機)通訊

//---------------------手記號數據庫處理-------------------------------------
void clear_database(void);			//清空所有手機號存在標志
void rec_success_for_PC(void);		//告訴PC接受數據成功,可以發下一個了 13H/32H
void rec_err_for_PC(void);			//告訴PC接受數據失敗,重發所有		 13H/33H

//---------------------標志控制---------------------------------------------
void led1_open();
void led1_close();
void led2_open();
void led2_close();
void led3_open();
void led3_close();
void laba_close();
void laba_ring_1_time();
void laba_ring_3_times();

void Delay10ms(void);			//延時10ms
void Delay_1S(void);			//延時1s

void start_timer0(void);
void close_timer0(void);
//void time0(void)   interrupt 1
void deal_with_error(void);


//-----------------------sms--------------------------------------------------
void	start_GSM(void);        //啟動并檢測GSM模塊
void 	start_tc35(void);
void 	AT_SEND(void);
void	Signal_test(void);
void	AT_cmgf(void);
void	AT_cmgs(void);
void 	power_down(void);
//void    SEND_sms(void);
void	SEND_sms(UCHAR FID);



//**************main函數開始************
void main (void)
{
  	UINT idata i,j,k;
	unsigned int idata address;
	UCHAR idata temp; 
        
	Delay10ms();
	Mpu_ini();


	led1_close();
	led2_close();
	led3_close();
	laba_close();
/*
PHONE_number[0][50][0]=0xff;
PHONE_number[0][50][1]='3';
PHONE_number[0][50][2]='1';
PHONE_number[0][50][3]='9';
PHONE_number[0][50][4]='6';
PHONE_number[0][50][5]='3';
PHONE_number[0][50][6]='3';
PHONE_number[0][50][7]='1';
PHONE_number[0][50][8]='9';
PHONE_number[0][50][9]='6';
PHONE_number[0][50][10]='2';
PHONE_number[0][50][11]='f';
PHONE_number[0][50][12]='7';//xzd




PHONE_number[0][49][0]=0xff;//0x31;
PHONE_number[0][49][1]='3';//0x33;
PHONE_number[0][49][2]='1';//0x31;
PHONE_number[0][49][3]='1';//0x32;
PHONE_number[0][49][4]='8';//0x35;
PHONE_number[0][49][5]='0';//0x35;
PHONE_number[0][49][6]='0';//0x30;
PHONE_number[0][49][7]='7';//0x38;
PHONE_number[0][49][8]='9';//0x38;
PHONE_number[0][49][9]='5';//0x35;
PHONE_number[0][49][10]='7';//0x31;
PHONE_number[0][49][11]='F';//70;
PHONE_number[0][49][12]='5';//0x34;miao
*/	

/*
	if(STATE==0)			//聯機狀態
	{
		Delay_1S();
		if(STATE==0)
		{
			led1_open();
			while(1);
			while(1);
			while(1);
		}
	}				
*/					//單機狀態

	Inter_Enable();	
	Baudrate_Init();			//	init the serial port
	Serial1_Inter_Close();
	start_GSM();
	set_compair_state();
	set_inner_compare_mode();
	Serial1_Inter_Open();
	
//	Inter_Enable();

	while(1);
} 


//-------------------------------------------------------------------------
//--------------------------------------------------------------------------
// 初始化程序模塊

void Baudrate_Init(void)
{
     T2CON  = 0x30;      	//Set Timer2 as Baudrate Generator of UART0
     RCAP2H = 0xff;     	//Set Reload High Byte
    // RCAP2L = 0xfb;     	//Set Reload Low Byte
	 RCAP2L = 0xc4;
     SCON0  = 0x50;      	//Set UART0 Mode 1 (1 Start Bit ,8 Data Bit ,1 Stop Bit) and Enable Receive 
    
     T4CON  = 0x30;       	//Use SysClk
     RCAP4H = 0xff;			//Set Timer4 Mode 2 (Auto Reload Byte)
     RCAP4L = 0xc4;			//Set Reload High Byte  115200bps
     SCON1  = 0x50;      	//Set UART1 Mode 1 (1 Start Bit ,8 Data Bit ,1 Stop Bit) and Enable Receive 
         
    //**********************  
     EIE2 &= 0xfb;        	//Disable Timer4 Interrupt
     ET2 = 0;            	//Disable Timer2 Interrupt   
        
	 T4CON |= 0x04;         //Start Timer4
     TR2 = 1;            	//Start  Timer2
   }  

//******************************************
//單片機初始化串口0串口1
//=================================
void Mpu_ini(void)
{
	unsigned char idata delay;

	OSCXCN = 0x67;					// Enable external crystal	
	WDTCN = 0xDE;					// disable watchdog timer
	WDTCN = 0xAD;


    EMI0CF = 0x07;	     // Set External Memory Configuration Register,使用片內 4K 和片外存儲器 低端口,地址數據復用 
    XBR0 = 0x0c;               		// Set UART0,CEX0,CEX1,
    XBR1 = 0x00;    	      		// Set /INT0,/INT1
    XBR2 = 0x46;              		// Set UART1,Enable XBAR,Enable EMFILE
    
    P0MDOUT = 0xe5; 				// Output configuration for P0 
    P1MDOUT = 0xfE; 				// Output configuration for P1 
    P2MDOUT = 0xfc; 				// Output configuration for P2 
    P3MDOUT = 0xff; 				// Output configuration for P3
//    P1MDIN |= 0x01;

    P0 |= 0x1a;     				// Enable RX0
                    				// Enable RX1
    P1 |= 0x3b;     				// Enable RX2

  
//	for(i=0;i<1000;i++)
	{
	delay=256;						// Delay >1 ms  before polling XTLVLD.
	while(delay--);
	}
	while (!(OSCXCN & 0x80));		// Wait until external crystal has									// started.
	OSCICN = 0x0C;					// Switch to external oscillator
	OSCICN = 0x88;					// Disable internal oscillator; enable 
                        			// missing clock detector.
	while (!(OSCXCN & 0x80));		// Wait until external crystal has									// started.
	OSCICN = 0x08;					// Switch to external oscillator
}

//=================================
//***********check_udp end************* 
//==========================

//========================

void Serial0_Inter_Close()
{ ES0=0; }
void Serial0_Inter_Open()
{ ES0=1; }
void Serial1_Inter_Close(void)
{ EIE2 &= 0xbf; }
void Serial1_Inter_Open(void)
{ EIE2 |= 0x4f; }
//========================
//開中斷程序開始
void Inter_Enable()
{
EA=1;
}
//*********************************

void set_compair_state(void)                   //進入比對狀態   08H
{
	UCHAR data 	lenth,commandcode;
	commandcode =0x08;
	lenth=1;			//數據長度
	TxBuf1[0]=0x32;
	send_to_module1(commandcode,lenth);
}

void set_inner_compare_mode(void)		//設置 模塊內部比對方式    05H
{
	UCHAR data 	lenth,commandcode;
	commandcode =0x05;
	lenth=1;			//數據長度
	TxBuf1[0]=0x31;
	send_to_module1(commandcode,lenth);
}


void set_work_mode(void)		//設置 模塊內部比對方式    08H
{
	UCHAR data 	lenth,commandcode;
	commandcode =0x08;
	lenth=1;			//數據長度
	TxBuf1[0]=0x31;
	send_to_module1(commandcode,lenth);
}

void send_to_module1(UCHAR commandcode,UCHAR lenth)		//通過串口1發送數據(to module or PC)
{
	UCHAR data	i;
	Serial1_Inter_Close();
	SCON1 &= 0xFD;	//清發送標志
        SBUF1 = STARTCODE;			//發送起始位
        while(TI1==0); 
        SCON1 &= 0xFD;	//清發送標志
 	SBUF1 = lenth+5;			//發送長度字節
        while(TI1==0); 
	SCON1 &= 0xFD;	//清發送標志
	SBUF1 = 0x00;				//發送保留字
        while(TI1==0); 
	SCON1 &= 0xFD;	//清發送標志
 	SBUF1 = commandcode;			//發送命令碼
        while(TI1==0); 
	SCON1 &= 0xFD;	//清發送標志
        for(i=0;i<lenth;i++)
	{
 		SBUF1 = TxBuf1[i];	//發送數據
        	while(TI1==0);
		SCON1 &= 0xFD;	//清發送標志
	}
	SBUF1 = ENDCODE;			//發送結束位
        while(TI1==0);
	SCON1 &= 0xFD;	//清發送標志
	Serial1_Inter_Open();
}

void process_command_from_1(void)
{
	UCHAR data FIDH,FIDL,i;

	i=RxBuf1[3];
	switch(RxBuf1[3]){
	case 0x01:
		if(RxBuf1[5]==0x32)				//比對成功
		{
			FIDH=0;         			//256枚 情況下
			FIDL = RxBuf1[6];        	//FID
			i=PHONE_number[FIDH][FIDL][0];
			if(PHONE_number[FIDH][FIDL][0]!=0x00)   //對應手機號存在
			{
				led2_open();
				laba_ring_1_time();

				//添加查詢發送短信息命令
				{
				AT_cmgs();
				SEND_sms(FIDL);
				}
			
				Delay_1S();
				led2_close();				
			}
			else
			{
				led3_open();
				laba_ring_3_times();
				Delay_1S();
				led3_close();				
			}
		}
		if(RxBuf1[5]==0x33)		//比對失敗
		{
			led3_open();
			laba_ring_3_times();
			Delay_1S();
			led3_close();				
		}
		break;			
	case 0x02:
	case 0x03:
	case 0x04:
	case 0x0b:
	case 0x0c:
	case 0x0d:
	case 0x10:
		clear_database();
		led2_open();
		led3_close();
		rec_success_for_PC();
		break;		
	case 0x11:
		FIDH = RxBuf1[4];
		FIDL = RxBuf1[5];
		PHONE_number[FIDH][FIDL][0] = 0xff;				//表明該FID已存在
		for(i=1;i<=12;i++)
			PHONE_number[FIDH][FIDL][i] = RxBuf1[i+5];     //存儲手記號
		rec_success_for_PC();
		break;
	case 0x12:
		led2_close();
		led3_open();
		laba_ring_1_time();
		rec_success_for_PC();
		break;
	}
}	

void  Serial1(void)   interrupt 20
{
	UCHAR data 	i;
	Serial1_Inter_Close();
	if(TI1)
	{
		SCON1 &= 0xFD;	//清發送標志
	}
	if(RI1)
	{
		RxBuf1[0]=SBUF1;
		SCON1 &= 0xFE; //清接收標志
		if(RxBuf1[0]==STARTCODE)			//判斷起始位是否正確
		{
			while(RI1==0);
			RxBuf1[1]=SBUF1;
			SCON1 &= 0xFE; //清接收標志
			if(RxBuf1[1]>=5)			//判斷數據長度是否正確
			{
				for(i=2;i<RxBuf1[1];i++)	//接收余下的所有數據
				{
					while(RI1==0);
					RxBuf1[i]=SBUF1;
					SCON1 &= 0xFE; //清接收標志
				}
				if(RxBuf1[i-1]==ENDCODE)	//判斷結束位是否正確
				{
					process_command_from_1();	
				}
			}
		}
		SCON1 &= 0xFE; //清接收標志
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区一区三区| 国产一区在线看| 国产精品乱人伦一区二区| 亚洲精品一区二区三区蜜桃下载 | 国产精品拍天天在线| 久久久一区二区三区| 国产亚洲午夜高清国产拍精品| 精品国产精品网麻豆系列| 日韩午夜激情电影| 久久男人中文字幕资源站| 久久综合色鬼综合色| 国产欧美一区二区三区在线老狼| 国产午夜精品美女毛片视频| 中文字幕一区二区三区蜜月| 亚洲免费电影在线| 三级不卡在线观看| 黄色精品一二区| av在线播放成人| 在线观看91视频| 91精品国产麻豆国产自产在线 | 99视频一区二区| 91国产丝袜在线播放| 欧美日韩成人在线一区| 日韩免费视频一区二区| 欧美激情中文字幕一区二区| 亚洲精品成人天堂一二三| 秋霞午夜av一区二区三区| 粉嫩av一区二区三区在线播放 | 欧美视频在线播放| 精品日韩在线观看| 亚洲欧美另类综合偷拍| 麻豆91在线观看| 色中色一区二区| 91精品国产91久久久久久最新毛片 | 一区二区中文字幕在线| 亚洲国产精品久久久男人的天堂| 日本免费新一区视频| 成人av电影在线播放| 欧美精品久久99久久在免费线 | 欧美午夜不卡视频| 久久色中文字幕| 亚洲综合自拍偷拍| 国产乱人伦偷精品视频不卡| 欧美私模裸体表演在线观看| 国产欧美1区2区3区| 亚洲成精国产精品女| 丁香六月综合激情| 日韩欧美二区三区| 亚洲福利一二三区| 99精品视频在线播放观看| 日韩女优电影在线观看| 亚洲国产综合在线| 99精品久久只有精品| 久久久午夜精品| 日本成人在线视频网站| 91在线免费看| 国产女人18毛片水真多成人如厕 | 懂色av一区二区在线播放| 欧美日韩一区二区三区不卡| 国产精品久久毛片| 国产一区二区三区免费播放| 91精品国产美女浴室洗澡无遮挡| 亚洲六月丁香色婷婷综合久久 | 久久精品国产成人一区二区三区 | 欧美三电影在线| 亚洲免费在线观看视频| 成人永久免费视频| 国产欧美一区二区精品婷婷| 国产精品一区二区不卡| 欧美一区二区精品在线| 亚洲成av人片一区二区三区| 欧美系列一区二区| 亚洲国产wwwccc36天堂| 欧美影院一区二区| 亚洲一卡二卡三卡四卡无卡久久| 99久久婷婷国产| 国产精品成人网| 国产成人午夜精品影院观看视频| 日韩欧美国产综合| 韩国女主播成人在线| 久久一夜天堂av一区二区三区| 国产精品毛片无遮挡高清| 欧美在线你懂得| 欧美xxxx在线观看| 欧美日韩你懂的| 欧美xxxxx牲另类人与| 日韩av电影天堂| 7777精品伊人久久久大香线蕉 | 欧美日韩国产首页在线观看| 偷拍一区二区三区四区| 欧美一级二级三级蜜桃| 韩国成人福利片在线播放| 久久亚洲综合色一区二区三区| 国产精品一区在线观看你懂的| 国产精品无圣光一区二区| 99久久久精品免费观看国产蜜| 亚洲女爱视频在线| 欧美日韩国产大片| 国产在线不卡一区| 亚洲视频一区二区在线| 欧美色图在线观看| 免费观看在线综合| 欧美激情一区二区三区在线| 色老汉av一区二区三区| 免费成人深夜小野草| 国产视频在线观看一区二区三区 | 国产精品1024| 亚洲精品第1页| 精品美女一区二区| 91欧美激情一区二区三区成人| 亚洲va国产va欧美va观看| 日韩欧美一二三四区| 99久久精品国产毛片| 日韩精品一级二级| 国产精品每日更新在线播放网址| 欧美在线一二三四区| 黄色日韩三级电影| 亚洲成人福利片| 国产精品嫩草久久久久| 欧美一级精品大片| 91麻豆国产自产在线观看| 美女精品自拍一二三四| 亚洲美女免费视频| 亚洲国产激情av| 欧美一区午夜精品| 色一情一乱一乱一91av| 国产在线精品一区二区不卡了| 一个色在线综合| 国产欧美日韩另类视频免费观看| 91精品国产91热久久久做人人| 91网站视频在线观看| 国产盗摄一区二区三区| 日韩在线观看一区二区| 一区二区成人在线视频| 国产日韩精品久久久| 日韩午夜电影在线观看| 欧美日本免费一区二区三区| 91在线视频免费观看| 丰满白嫩尤物一区二区| 国产在线精品一区在线观看麻豆| 亚洲国产va精品久久久不卡综合| 国产精品久久久久影视| 国产人久久人人人人爽| 久久亚洲欧美国产精品乐播| 欧美放荡的少妇| 欧美体内she精高潮| 色视频欧美一区二区三区| av中文字幕在线不卡| 成人黄色大片在线观看| 国产精品一区二区久激情瑜伽| 久久av老司机精品网站导航| 日本成人在线网站| 理论片日本一区| 精品一区二区三区在线播放视频| 免费观看30秒视频久久| 老司机一区二区| 国产综合成人久久大片91| 国产精品自拍av| 国产ts人妖一区二区| 99久久久无码国产精品| 91国产成人在线| 欧美人xxxx| 欧美tickle裸体挠脚心vk| 欧美大片拔萝卜| 久久精品视频在线免费观看 | 一区二区三区四区高清精品免费观看 | 欧美群妇大交群的观看方式| 欧美一区二区三区白人| 欧美一级黄色片| 国产欧美精品国产国产专区| 中文字幕在线免费不卡| 亚洲综合色视频| 视频一区二区中文字幕| 久久国产精品99精品国产| 国产剧情一区二区三区| 99视频精品在线| 欧美日韩亚洲综合| 精品剧情v国产在线观看在线| 2023国产一二三区日本精品2022| 中日韩av电影| 午夜精品久久一牛影视| 国产呦萝稀缺另类资源| www.日韩精品| 欧美一区二区三区免费观看视频| 精品乱人伦小说| 国产精品福利一区二区三区| 午夜久久久久久久久| 国产乱码精品一区二区三区五月婷| 成人毛片在线观看| 欧美一级专区免费大片| 中文字幕欧美日韩一区| 五月婷婷欧美视频| 成人小视频免费在线观看| 欧美日韩国产三级| 亚洲国产精品精华液ab| 亚洲高清免费观看 | 在线一区二区观看| 2021国产精品久久精品| 亚洲电影第三页| 国产精品影音先锋|