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

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

?? ser_main.c

?? 機于s52的巡檢系統的開發代碼。從代碼中可以看到整個系統的流程和上位機的通信協議的格式非常不錯。
?? C
字號:
/*=======================================================================
		系統的集成測試部分程序
		 Data:9/18/2006
		 Designed by:Crystal  Cumt
		              電科03-班
 注意:由于存儲器的限制本模擬測試巡檢系統的現在的最大巡檢量為4094個地點.
       檢測超過的部分現在還沒有處理.. 在4094個巡檢點之內是完全正確可靠...
       
=======================================================================*/
//////////////////////////////////////////////////////////////////////
#include<regx52.h>
#include<LCD1602.h>
#include<DS1302.h>
#include<EEProm.h>
#include<WDTRST.H>


///
//////////////////公有變量的生名 //////////////////////////// 
///
unsigned char Count,CardH,CardL ;
unsigned char EromLowBuf[2];
unsigned char data RxTxBuffer[8];//初始化發送接收緩沖區//
///
//////////////////函數原型的聲明//////////////////////////////////////
/////////////////卡號的模擬讀取子程序部分.完成卡號的讀取工作 //////
unsigned char  ReadCardH(void);
unsigned char ReadCardL(void);
////
/// ////////////////////系統的鳴笛提示函數部分,發出一聲短叫聲//////////////
void Beep(void);
///
////////數據的發送函數聲明,用于將EEProm中的數據全部都傳送到計算機數據庫中
//// 
void Send(void);
//////////////////////系統的時間和日期的同步函數.用于下位機的時間修改.////
void ChangeTime(void);
////
///////////////循環發送或接受num個字節的子程序部分////////////////
///
void GetData(unsigned char num );
void SendData(unsigned char num);
void WriteMessage(void);
void ReadMessage(void);
////////////////////////////////////////bit check(void);//////////////
void Delay_5ms(unsigned char Count)
	{
		unsigned char i,j;
		for (i=0;i<Count;i++){ //在11.0592M的時鐘下的0.5MS的延時程序//
		FeedDog();  //喂狗
		for (j=0;j<150;j++);
		}
		FeedDog();  //喂狗
	}
///
//////////////////////////////////////////////////////////////////
///
void main (void)
	{	
		SYSTEMTIME CurrentTime;  //初始化結構時間數據類型
		FeedDog();  //喂狗
		CardH=0x00;
		CardL=0x00;	//初始化模擬卡號記錄數據部分...//
		Beep(); 
        P2_7=0;
	    FeedDog();  //喂狗
 		LCD_Initial();	    //液晶顯示的初始化部分
		Initial_DS1302();    //時鐘的運行初始化
		IP=0X13; //串口的優先中斷提高,中斷的優先級很重要,決定了系統的工作是否未定(調試的結論)//
		TI=0;
		RI=0; //串口中斷的復位//
		SCON=0x50; //串口的工作方式一  //
		TMOD=0x21; //定時器1的工作方式二,定時器0的工作方式1//
		TH1=0xFD;
		TL1=0xFD;//定時器的初值初始化//	
        TH0=0XB4; //在11.0592M的時鐘下的50ms定時初值;
		TL0=0X04;
		IT0=0; //開外中斷0用于卡的讀取和觸發方式的選擇//
		EX0=1;
		TR0=1;
		FeedDog();  //喂狗
		TR1=1;//啟動定時器
		ET0=1; //開啟定時器中斷
		ET1=0;//波特率發生。不開;//
		ES=1; //Serial_prot interrupt oppened here;
		EA=1; //Global interrupt oppened here;//
        I_Init();
		FeedDog();  //喂狗
		GotoXY(0,0);
		Print("DATE**TIME**MODE");
		DS1302_GetTime(&CurrentTime);
		DateToStr(&CurrentTime);
		TimeToStr(&CurrentTime);
		GotoXY(1,0);
		Print(CurrentTime.DateString );
		GotoXY(1,6);
		Print(CurrentTime.TimeString );
		GotoXY(1,12);
		Print("Time");
		Delay_5ms(60);
		ReadBlock(&EromLowBuf,0x0000,2);
        P2_7=1;
		Beep();		
		while(1){
		FeedDog();  //喂狗
		}				
	}
///
////////////串口的中斷程序///////////////////////////////////////////
///
void serial(void) interrupt 4 
	{   
	    FeedDog();  //喂狗                     //	unsigned char node ;
	    ES=0;
		GetData(2);
		if(RxTxBuffer[0]!=RxTxBuffer[1])
		{
			SBUF='W';  //未能成功接收
			while(!TI);//可能是線路故障了。//
			TI=0;	   //復位中斷標志位
			FeedDog();  //喂狗
			Beep();
			ES=1;  //開串口的中斷//
		}
		else
		{	FeedDog();  //喂狗				
			switch(RxTxBuffer[0]) 
			/*說明:QQ是線路的檢測命令
			       CC是時間的修改命令
				   SS是數據的上傳命令
				   FF是磁盤的快速格式化命令
				   MM是寫入人員編號命令,下位機的軟件版本序列號和下位機編號
				   NN是讀取人員的編號命令,下位機的軟件版本序列號和下位機編號
			 */
			{
				case 'Q' : SBUF='Q';  //線路的故障檢測;//
						   while(!TI);
						   FeedDog();  //喂狗
						   TI=0;
						   ES=1;
						   Beep(); //注意的是在線路檢測中不能使用beep()函數。否則
						   break; //只能在多個測試中取其中之一。其余的被beep()的延時所丟棄。//
				case 'C' : FeedDog();  //喂狗
                           ChangeTime();//修改時間
						   SBUF='C';
                           while(!TI);
						   FeedDog();  //喂狗
                           TI=0;
						   ES=1;
						   break;
				case 'S' : FeedDog();  //喂狗
						   SBUF='S';
                           while(!TI);
						   FeedDog();  //喂狗
                           TI=0;
                           GotoXY(1,12);
	                       Print("TxRx");
                           Send(); 	//要求下位機數據發送//
						   SBUF='O';
                           while(!TI);
						   FeedDog();  //喂狗
                           TI=0;
						   ES=1;
                           GotoXY(1,12);
                           Print("Time");
						   FeedDog();  //喂狗
						   Beep();						     
						   break;
				case 'F' : FeedDog();  //喂狗
						   EromLowBuf[0]=0;
						   EromLowBuf[1]=0;
						   WriteBlock(&EromLowBuf,0x0000,2);
						   FeedDog();  //喂狗		
						   ReadBlock(&EromLowBuf,0x000,2); //初次使用時的磁盤格式化部分,不然不能正常數據的記錄//
				           SBUF='F';
                           while(!TI);
						   FeedDog();  //喂狗
                           TI=0; 
						   ES=1;
						   Beep();  
						   break;
				case 'M' : 	FeedDog();  //喂狗
							WriteMessage();
							SBUF='M';
							while(!TI);
							FeedDog();  //喂狗
							TI=0;
							ES=1;
							Beep();
							break;
				case 'N' : 	FeedDog();  //喂狗
							ReadMessage();
							SBUF='N';
							while(!TI);
							FeedDog();  //喂狗
							TI=0;
							ES=1;
							Beep();
							break;
							
				default  : SBUF='W'; //說明有不能識別的命令出現//
						   while(!TI);
						   TI=0;
						   Beep();
				           ES=1;
						   break;			   
			} 
		}
	}	
//	
///
////////串口的多字節接收部分/////////////////////////////////////
///
void GetData(unsigned char num)
	{
		unsigned char loop;
		FeedDog();  //喂狗
		for(loop=0;loop<num;loop++)
			{	  //串口的多字節接收 //
				while(!RI);
				RxTxBuffer[loop]=SBUF;
				RI=0;
			}
			FeedDog();  //喂狗		
	}				

///
///////////串口的都字節發送////////////////////////////////////
///
void SendData(unsigned char num)
	{
		unsigned char loop;
		FeedDog();  //喂狗
		for(loop=0;loop<num;loop++)//數據的多字節發送程序部分//
		{
			SBUF=RxTxBuffer[loop];
			while(!TI);
			TI=0;
		}
		FeedDog();  //喂狗			
	}
///

///////////////時鐘的時間修改函數調用實現部分/////////////
///
void ChangeTime()
	{
		FeedDog();  //喂狗
		GetData(7);	 //得到時鐘數據//
		BurstWrite1302(&RxTxBuffer[0]);/////時鐘的寫入函數調用////////
		Beep();	
		FeedDog();  //喂狗
	}
///
//////////////動態時間刷新/////////////////////////////
///
void dispflash(void) interrupt 1 using 0
	{
		SYSTEMTIME CurrentTime;  //初始化結構時間數據類型
		TH0=0XB4;
		TL0=0X04;
		Count++;
		FeedDog();  //喂狗
		if(Count>=50)
			{	
				P2_7=!P2_7;
				Count=0;
				DS1302_GetTime(&CurrentTime);
				DateToStr(&CurrentTime); //讀取時間//
				TimeToStr(&CurrentTime);//取得字符時間串//
				GotoXY(1,0);
				Print(CurrentTime.DateString);
				GotoXY(1,6);  //顯示部分//
				Print(CurrentTime.TimeString);
			}
			FeedDog();  //喂狗
	}
//
///////////數據的上傳程序模塊.功能見程序的書寫///////////////////////////////
///
void Send(void)
	{
		unsigned int i,meme;
		FeedDog();  //喂狗
        ReadBlock(&EromLowBuf,0x0000,2);
		ReadBlock(&RxTxBuffer,0x0000,2);
        SendData(2);
        SendData(2);
		meme=EromLowBuf[0]|(unsigned int)(EromLowBuf[1]<<8);
		for(i=0;i<meme;i++)
			{
				ReadBlock(&RxTxBuffer,i*8+8,8);
				SendData(8);
			}
			EromLowBuf[0]=0;
			EromLowBuf[1]=0;
			FeedDog();  //喂狗
			WriteBlock(&EromLowBuf,0x0000,2);	

	}
///
////////////////中斷0的數據的讀取和記錄模塊程序部分///////////////////////////////
///
void int0(void) interrupt 0 
	{	unsigned int i;
		EX0=0;
		FeedDog();  //喂狗
        RxTxBuffer[0] = Read1302(DS1302_SECOND);
		RxTxBuffer[1] = Read1302(DS1302_MINUTE);
		RxTxBuffer[2] = Read1302(DS1302_HOUR);
		RxTxBuffer[3] = Read1302(DS1302_DAY);//時間和日期的獲取//
		RxTxBuffer[4] = Read1302(DS1302_MONTH);
		RxTxBuffer[5] = Read1302(DS1302_YEAR);
		RxTxBuffer[6] = ReadCardL();
		RxTxBuffer[7] =	ReadCardH();
		i=EromLowBuf[0]|(unsigned int)(EromLowBuf[1]<<8);
		WriteBlock(&RxTxBuffer,i*8+8,8);//寫入8字節 //
		i++;
		EromLowBuf[0]=i&0x00ff;
		EromLowBuf[1]=i>>8;
		 //記錄計數加1;////
       	WriteBlock(&EromLowBuf,0x0000,2);  	//寫入系統參數字節部分///
		
			//Read the cardnummber here//
			FeedDog();  //喂狗
			Beep();//鳴笛提示 
          //	Delay_5ms(254);
          //注意(再次用延時函數是為了調試時的成功讀取消抖,實際情況中要視情況而定)
			EX0=1;
		
	}
///
///////////////////   鳴笛函數  //////////////////////
///
void Beep(void)
	{
		P1_0=0; //鳴笛提示函數//
		P1_1=0;
		FeedDog();  //喂狗
		Delay_5ms(140);	
		FeedDog();  //喂狗		
		P1_0=1;
		P1_1=1;

	}
///
/////////////// 仿真模擬卡號的高字節讀取函數 ///////////////////////////////
///
unsigned char ReadCardH(void)
	{	FeedDog();  //喂狗
		if(CardL>=255)
			return CardH++;
		else
			return CardH;
	    FeedDog();  //喂狗
	}
///
////////////////仿真模擬卡號的低字節讀取函數 //////////////////////////////
unsigned char ReadCardL(void)
	{
		FeedDog();  //喂狗
		return CardL++;
	}
void WriteMessage(void){
	 FeedDog();  //喂狗
	 GetData(3);
	 WriteBlock(&RxTxBuffer,0x0002,3);
	 FeedDog();  //喂狗
	}
void ReadMessage(void){
     FeedDog();  //喂狗
   	 ReadBlock(&RxTxBuffer,0x0002,3);
	 SendData(3);
	 FeedDog();  //喂狗	
	}	
///


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲mv在线观看| 成人h动漫精品一区二区| 亚洲综合无码一区二区| 中文字幕在线视频一区| 国产精品免费免费| 亚洲午夜久久久久久久久久久| 亚洲一区二区不卡免费| 日本不卡一二三| 成人免费视频播放| 精品视频在线免费看| 精品国产凹凸成av人网站| 精品无码三级在线观看视频| 亚洲一级二级在线| 免费在线一区观看| 国产成人精品在线看| 91日韩在线专区| 欧美成人艳星乳罩| 亚洲精品国产无套在线观| 五月婷婷色综合| 国产美女主播视频一区| 欧美午夜精品一区二区蜜桃| 欧美韩日一区二区三区| 欧美精选在线播放| 欧美一区二区视频观看视频| 日韩精品中午字幕| 亚洲欧洲精品一区二区三区| 久久精品国产精品亚洲红杏| 一本久久精品一区二区| 精品免费视频.| 毛片基地黄久久久久久天堂| 精品国产一区二区三区久久影院| 中文字幕亚洲综合久久菠萝蜜| 日韩av一二三| 777午夜精品免费视频| 亚洲自拍偷拍网站| 亚洲成人你懂的| 99久久777色| 国产精品毛片久久久久久久| 国产一区二区成人久久免费影院 | 99热在这里有精品免费| 久久久99免费| av网站免费线看精品| 国产精品网友自拍| 色欧美片视频在线观看| 国产一区三区三区| 欧美大片一区二区| 久久er99精品| 136国产福利精品导航| 成人国产精品免费观看动漫| 国产精品成人一区二区三区夜夜夜| 91视频在线观看| 亚洲免费观看在线视频| 欧美日韩精品一区二区三区| 久久爱www久久做| 国产精品伦一区二区三级视频| 色婷婷av一区| 久久99这里只有精品| 亚洲欧美日韩一区| 韩国女主播成人在线| 日韩激情一区二区| 久久精品亚洲精品国产欧美 | 欧美肥妇bbw| 粉嫩av一区二区三区粉嫩 | 日韩视频一区二区三区在线播放| 奇米四色…亚洲| 亚洲视频资源在线| 欧美精品久久久久久久多人混战| 欧美三日本三级三级在线播放| 91麻豆精品国产91久久久资源速度| 精品一区二区三区免费观看| 中文字幕一区二区在线观看| 欧美电视剧在线观看完整版| 色吊一区二区三区| 风间由美一区二区av101| 青青青爽久久午夜综合久久午夜| 亚洲天天做日日做天天谢日日欢 | 久久不见久久见免费视频7| 一区二区三区成人| 中文字幕制服丝袜一区二区三区| 中文一区二区在线观看| 日韩美女视频在线| 欧美精品三级日韩久久| 欧美日韩电影在线播放| 波多野结衣91| av电影在线不卡| 日本高清不卡aⅴ免费网站| 99麻豆久久久国产精品免费| 99v久久综合狠狠综合久久| 一本大道av一区二区在线播放| 成人av动漫在线| 91污在线观看| 欧美日韩精品一区二区在线播放| 精品婷婷伊人一区三区三| 欧美猛男超大videosgay| 日韩三级精品电影久久久| 欧美tickle裸体挠脚心vk| 国产午夜精品在线观看| 一区二区三区在线视频免费| 午夜一区二区三区在线观看| 国产福利精品导航| 91视频在线观看免费| 欧美精品久久99| 国产精品理伦片| 天天做天天摸天天爽国产一区| 国内精品写真在线观看| 色噜噜夜夜夜综合网| 久久蜜桃av一区精品变态类天堂 | 精品综合久久久久久8888| 色婷婷精品久久二区二区蜜臀av | 久久精品国产亚洲一区二区三区 | 亚洲欧美电影一区二区| 91在线云播放| 麻豆久久久久久久| 精彩视频一区二区三区| 激情综合五月天| 国产精品一区二区免费不卡| 国产精品自拍在线| 成人精品亚洲人成在线| 不卡视频在线观看| 欧美日韩综合在线免费观看| 91精品国产综合久久精品图片| 日韩一区二区免费视频| 久久久久9999亚洲精品| 亚洲欧洲中文日韩久久av乱码| 亚洲精品欧美综合四区| 日本中文在线一区| 欧美日本一区二区三区四区| 精品处破学生在线二十三| 欧美国产禁国产网站cc| 亚洲乱码国产乱码精品精98午夜| 日韩制服丝袜av| 国产精品白丝jk黑袜喷水| 色天天综合久久久久综合片| 3d动漫精品啪啪1区2区免费| 日本一区二区视频在线| 五月天丁香久久| 粉嫩av亚洲一区二区图片| 欧美午夜精品一区| 中文一区二区在线观看| 婷婷久久综合九色综合绿巨人 | 精品sm捆绑视频| 国产亚洲综合av| 日韩精品免费视频人成| 99久久久免费精品国产一区二区| 欧美日韩国产系列| 国产精品网站一区| 蜜臀久久久久久久| 色综合久久88色综合天天6 | 欧美一区二区三区啪啪| 国产精品白丝在线| 国产在线视频精品一区| 欧美吞精做爰啪啪高潮| 国产女主播一区| 老鸭窝一区二区久久精品| 欧美亚洲精品一区| 一区二区三区四区av| 国产精品66部| 欧美一区二区播放| 一区二区三区高清在线| 91丨porny丨最新| 欧美国产成人在线| 免费视频一区二区| 欧美日韩国产电影| 国产精品久久久久久亚洲毛片| 国产精品1024久久| 日韩欧美中文字幕公布| 日韩主播视频在线| 日本高清成人免费播放| 国产成人亚洲综合色影视| 欧美精品vⅰdeose4hd| 一区二区三区毛片| 99精品欧美一区二区三区小说 | 91久久精品一区二区二区| 国产精品色婷婷| 国产成人丝袜美腿| 精品国产乱码久久久久久久| 亚洲国产一区二区在线播放| 欧美色图第一页| 亚洲午夜在线电影| 91成人国产精品| 亚洲综合色成人| 这里是久久伊人| 日本免费在线视频不卡一不卡二| 在线观看一区二区视频| 亚洲欧美日韩精品久久久久| 91在线一区二区三区| 最好看的中文字幕久久| 欧美性大战久久久| 午夜伊人狠狠久久| 欧美一区二区性放荡片| 秋霞国产午夜精品免费视频| 26uuu另类欧美亚洲曰本| 国内一区二区视频| 中文字幕免费在线观看视频一区| 蜜臀a∨国产成人精品| 久久久久久久久久美女| 丁香六月久久综合狠狠色| 国产精品国产自产拍高清av | 欧洲精品视频在线观看| 香蕉加勒比综合久久|