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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pump_watch.c

?? 程序?yàn)楸O(jiān)測(cè)報(bào)警
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):

//485通訊協(xié)儀*********************************************************************
// 主機(jī)發(fā)送:  D9------校驗(yàn)和
//			   D8------報(bào)警數(shù)據(jù)第25-32路
// 			  D7------報(bào)警數(shù)據(jù)第17-24路
//			   D6------報(bào)警數(shù)據(jù)第 9-16路
//			   D5------報(bào)警數(shù)據(jù)第 1- 8路
//             D4------報(bào)警狀態(tài)碼
//			   D3------主機(jī)當(dāng)前的按鍵操作碼
//			   D2------數(shù)據(jù)接收方的機(jī)器號(hào)碼
//			   D1------數(shù)據(jù)發(fā)送方的機(jī)器號(hào)碼
//			   D0------幀起始標(biāo)志  0xff

#include "REG52.H" 
#include "stdio.h"
#include "stdlib.h"
#include "ABSACC.H"
//#include "math.h"
#include <rtx51tny.h>
#define  INT     0  
#define  MAIN    1  
#define  AD_CNV  2  
#define  DISPLAY 3 
#define  ALARM   4 
#define  serialer  5

#define  RESET   1
#define  MUTE    2
#define  TEST    3
#define  SET_DAT 4
#define  MAX485_send  0xFF                                   //485發(fā)送定義
#define  MAX485_REC   ~0X80                                  //485接收定義
#define  COMM_BUF_SIZE 10									 //串行接收緩存大小
#define uchar  unsigned char
#define uint   unsigned int
//***************************************************************************************
//用于設(shè)置的全局變量定義***************************************************************** 

unsigned char  alarm_delay[32];      						//定義延時(shí)報(bào)警緩存
//unsigned char  alarm_fz[32];      					   	//定義延伸分組設(shè)置
unsigned char  alarm_cou[4];      							//定義報(bào)警是否可恢復(fù) 0鎖存,1可自動(dòng)恢復(fù)
unsigned char  slect_no_nc[4];								//定義選取擇常開常閉輸入的緩存
unsigned char  match_number;								//用于保存本機(jī)機(jī)器號(hào) 
unsigned char  comm_in_buf[42];								//串口接收緩存
unsigned char  comm_out_buf[42]; 							//串口接收緩存
unsigned char  alarm_out_slect[4];							//設(shè)置報(bào)警選擇

//用于報(bào)警的全局變量定義******************************************************************
//****************************************************************************************
 unsigned char  delay_time[32];                             //用于延時(shí)的時(shí)間寄存單元
 unsigned char  alarm_data[4];	                            //定義最終報(bào)警數(shù)據(jù)
 unsigned char  in_buf[4];                                  //定義報(bào)警輸入緩存
 unsigned char  MUTE_buff[4]={0,0,0,0};						//定義消音暫存報(bào)警單元
 unsigned char  MUTE_out[4]={0x0,0x0,0x0,0x0};				//定義消音后的輸出單元
 unsigned char  dis_buf[4];//           				    //定義顯示緩存共4個(gè)字節(jié)
 unsigned char  key_buf;									//定義按鍵緩存
 unsigned char  COMM;                           			//串口控制緩存
 unsigned char  *comm_send_point;							//串口發(fā)送指針
 unsigned char   comm_rec_point=0;							//串口接收指針	
 unsigned char   Alarm[9]={0,0,0,0,0,0,0,0,0};				//定義報(bào)警
 unsigned char  line;
 unsigned char  cnt;
////位地址定義****************************************************************************
 bit   SEND;												//需要發(fā)送標(biāo)志
 bit   mu;   												//消音標(biāo)志位
 bit   comm_send_over;										//串口發(fā)送完畢位
 bit   comm_rec_over;										//串口接收完畢位
 bit   power_fault;											//電源故障標(biāo)志
 bit   set;												    //設(shè)置
 bit   commstart;											//串口開始接受標(biāo)志
 bit   power_up;											//上電
 bit   lpmute_f;											//失電報(bào)警消音標(biāo)志			
 sbit  mute = P1^7;											//消音按鍵定義
 sbit  test = P3^3;											//試燈鍵定義
 sbit  reset= P3^2;											//復(fù)位鍵定義 sbit  FMQ  = P1^5;											//蜂鳴器控制引腳定義
 sbit  LPD  = P1^3;											//失電報(bào)警檢測(cè)					  
 sbit  LPF  = P1^4;											//失電報(bào)警輸出
 sbit  YS   = P1^6;											//延伸報(bào)警繼電器輸出//*****************************************************************************
//*****************************************************************************
//函數(shù)預(yù)定義*******************************************************************
void alarm_in(void);
void delay_alarm(void);
void time_delay_copy(void);
extern uchar nbyteRead(uchar addr, uchar nbyte, uchar *index);//  addr 要讀取的地址 nbyte 讀取的字節(jié)
extern uchar nbyteWrite( uchar addr, uchar nbyte,uchar *index);
//*****************************************************************************
//*****************************************************************************
//報(bào)警輸出函數(shù)*****************************************************************
 void alarm_out(void){
    //主機(jī)才執(zhí)行
	  uchar count;
  if (match_number==0){
		Alarm[8]=Alarm[0]|Alarm[1]|Alarm[2]|Alarm[3]|Alarm[4]|Alarm[5]|Alarm[6]|Alarm[7]; 
					  } 					//如果機(jī)號(hào)為0,則給Alarm[8]賦值
	for (count=0;count<4;count++){
         dis_buf[count]=alarm_data[count];  //將報(bào)警值存入顯示緩存
	                              }
         if (((Alarm[8]!=0)&&(mu==0))||((power_fault)&&(!lpmute_f)&&(key_buf!=RESET))){  FMQ=1;	 } //操作蜂鳴器
		   if (power_fault) LPF= 0;	        //如果失電點(diǎn)亮失電指示燈
		 os_wait(K_TMO,150,0);              //延時(shí)(為了閃亮)
		 
	for (count=0;count<4;count++){
	     dis_buf[count]=MUTE_out[count];    //將消音處理的值存入報(bào)警緩存
		FMQ = 0;
		if (!lpmute_f)LPF =1;				  }
		 os_wait(K_TMO,150,0);              //延時(shí)(為了閃亮)
	if ((MUTE_out[0]==alarm_data[0])&&(MUTE_out[1]==alarm_data[1])&&(MUTE_out[2]==alarm_data[2])&&(MUTE_out[3]==alarm_data[3])){
	          YS=0;}		
	else{YS=1;}	   							//繼電器輸出判斷

                     }
//*****************************************************************************
//*****************************************************************************
//按鍵讀取函數(shù)*****************************************************************
//*****************************************************************************
 void key_read(void){
   if (!reset||!test||!mute){         		//如果有鍵按下
      os_wait(K_TMO,1,0);             	    //延時(shí)去抖動(dòng)
	  if (!reset) key_buf = RESET ;         //復(fù)位鍵
	  if (!mute)  key_buf = MUTE  ;         //消音鍵
	  if (!test)  key_buf = TEST  ;         //試燈鍵
	  if (!mute&&!test) key_buf=SET_DAT;    //同時(shí)按下消音鍵和測(cè)試鍵為設(shè)置					  
                            }
	  //else {os_wait(K_TMO,20,0);if (comm_send_over==1){key_buf=0;comm_send_over=0;}} //***********按鍵放下清空緩沖區(qū)

	  LPD =1;
	  if  (LPD) {  power_fault=1; }         //主電源失電檢測(cè)
	  else{power_fault=0;lpmute_f=0;} 		//否則清除失電報(bào)警信號(hào)


 					}
//串口發(fā)送程序*****************************************************************
//*****************************************************************************
//輸入:count 要發(fā)送的數(shù)據(jù)長(zhǎng)度(字節(jié))
//      P     要發(fā)送數(shù)據(jù)的起始地址指針
  void comm_send(char count,char *p){
       	ES=0;									 //禁止串口中斷
		COMM=MAX485_send;                        //將485串口轉(zhuǎn)換器置為發(fā)送狀態(tài)
		XBYTE[0XA000]=line&COMM;
		os_wait(K_TMO,2,0);					     // 延時(shí)穩(wěn)定
		while(count>0){
		 if (!TI){SBUF=*p;count--;p++;}	         //發(fā)送數(shù)據(jù)
		 while(!TI){os_wait(K_TMO,1,0);}		   
		   TI=0;								 //等待發(fā)送完畢
		              }
		COMM=MAX485_REC;						 //485串口轉(zhuǎn)回接受狀態(tài) 

		XBYTE[0XA000]=line&COMM;
		ES=1; 								     //允許串口中斷
	         						}
//*****************************************************************************
//*****************************************************************************
//初始化函數(shù),對(duì)程序進(jìn)行初始化操作
void init(void){                      	//初始化設(shè)置程序
    char k;
	comm_out_buf[0]=0xff;				//初始化comm_out_buf[0],幀起始	
for (k=0;k<4;k++){
     alarm_data[k]=0;                  	//初始化數(shù)據(jù)單元
	 dis_buf[k]=0;
	 MUTE_out[k]=0; 	  
                 }
	lpmute_f=0;							//初始化各標(biāo)志位						
	mu   =0;
	FMQ =0;								
	cnt =0;
	time_delay_copy();
	for	(k=0;k<9;k++)Alarm[k]=0;
	match_number = (~P1)&0x07;          //讀取本機(jī)機(jī)器號(hào)
			   }

void init1 (void)
{   char k;
    TMOD =TMOD|0X20; 						 //定時(shí)器1工作于方式2
	TL1  =0XF3;
	TH1  =0XF3;
	SCON =0X50;								 //8位數(shù)據(jù)位1位停止位無(wú)校驗(yàn)位
	PCON =0X80;								 //波特率倍增
	ES=1; 									 //允許串口中斷
	TR1=1;									 //啟動(dòng)波特率發(fā)生器
	key_buf=0;								 //初始化串口緩沖區(qū)
	set = 0;							 
	commstart=0;
	COMM =MAX485_REC;						 //初始時(shí)485串口處于接收狀態(tài)
	comm_rec_point=0; 						 //接收指針為0
    nbyteRead(0, 4, slect_no_nc );			 //從24c02中讀取相應(yīng)數(shù)據(jù)
	nbyteRead(4, 4, alarm_out_slect );
	nbyteRead(8, 4, alarm_cou );
	nbyteRead(12,32,delay_time );  
    for (k=0;k<32;k++){
    alarm_delay[k]= delay_time[k];			//重新設(shè)定延時(shí)時(shí)間
    power_up=1;
                          }

}
//******************************************************************************
//******************************************************************************
//延時(shí)時(shí)間重新設(shè)定函數(shù)**********************************************************
//******************************************************************************
void time_delay_copy(void){
unsigned char kk;
                           
for (kk=0;kk<32;kk++){
  alarm_delay[kk]= delay_time[kk];				//重新設(shè)定延時(shí)時(shí)間
                          }
					  }

//******************************************************************************
//******************************************************************************
//串行口中斷函數(shù)
serial()interrupt 4 using 3{
   unsigned char k;
   if (RI){
       RI=0;									//清除串行接收中斷標(biāo)志
	   ES=0;
	   k=SBUF;							   		
	   if ((!commstart)&&(k==0XFF)){
	        comm_in_buf[comm_rec_point]=k;
	        commstart=1;comm_rec_point++;ES=1;return;}

	   if (commstart){
	   comm_in_buf[comm_rec_point]=SBUF;  		//將接收到的串口數(shù)據(jù)存入接收緩存
	   comm_rec_point++;				   		//調(diào)整接收指針
	                  }
	   if( comm_rec_point>=COMM_BUF_SIZE){
	       commstart=0;
		   comm_rec_point=0;
		   if (comm_in_buf[9]==(comm_in_buf[0]^comm_in_buf[1]^comm_in_buf[2]^comm_in_buf[3]^comm_in_buf[4]^comm_in_buf[5]^comm_in_buf[6]^comm_in_buf[7]^comm_in_buf[8])	)				  //和校驗(yàn)判斷
		   {	
		   		 comm_rec_over=1 ;  					//置位接收完畢標(biāo)志
			}
		   //else {comm_rec_over=0;}
	   									 }
          }
						   
			ES=1;			   }
//*******************************************************************************
//數(shù)據(jù)接收處理程序***************************************************************
void serial_cl(void){
     uchar i;
	 uchar k;
     if(comm_rec_over){								 //如果所有數(shù)據(jù)接收完畢
	 	if (!set){	 		 						 //非設(shè)置狀態(tài)
	 		if (match_number==0){					 //機(jī)號(hào)為0時(shí),讀入Alarm[]
	 			Alarm[comm_in_buf[1]]=comm_in_buf[4];
   		 Alarm[8]=Alarm[0]|Alarm[1]|Alarm[2]|Alarm[3]|Alarm[4]|Alarm[5]|Alarm[6]|Alarm[7];  //主機(jī)才執(zhí)行
		 		if(Alarm[8]!=0){					 //處理報(bào)警:Alarm[8]!=0即有新報(bào)警,清消音標(biāo)志
					mu=0;
		 						} 
	//	  else {Alarm = Alarm&(~(comm_in_buf[1]+1));}//如果沒有報(bào)警,則清除相應(yīng)從機(jī)的報(bào)警位
			   return;
		  					  }

			if (match_number!=0) key_buf= comm_in_buf[3]; //非0機(jī)子,存入按鍵狀態(tài)
         	if (key_buf==SET_DAT) set =1;				  //判斷是否需進(jìn)入設(shè)置
			if 	(key_buf==MUTE){
				   for (k=0;k<4;k++){MUTE_out[k]=alarm_data[k];}  //消音處理
					 FMQ=0;mu=1;//key_buf=0;
									}
	    if (match_number==comm_in_buf[2]){			       //如果需要本機(jī)作出應(yīng)答
		  		if (comm_in_buf[3]!=SET_DAT){ SEND = 1;	} }//允許發(fā)送信號(hào)準(zhǔn)備回應(yīng)
        	comm_rec_over=0; 						       //清除接收完畢標(biāo)志
		  	return;
	 				}
	   else { if(match_number==comm_in_buf[2]){         //設(shè)置狀態(tài)下,如果是對(duì)本機(jī)操作
		  		  switch (comm_in_buf[3]){				//判斷命令代碼
				  case 1:{
						 if (comm_in_buf[1]==9){
				         for(i=0;i<4;i++){ 			 //設(shè)置數(shù)據(jù)類型是輸入方式
				  		 slect_no_nc[i]=comm_in_buf[i+5];}
						 nbyteWrite(0, 4, slect_no_nc ); }
						 else { init();	
	   							os_create_task (ALARM);  
	  							os_create_task (AD_CNV);	  
	   							set =0;            }
				  		 }break;

				  case 2:{ 							 
				          for(i=0;i<4;i++) {			 //設(shè)置數(shù)據(jù)類型是輸入方式
				  		 alarm_out_slect[i]=comm_in_buf[i+5];  }
						 nbyteWrite(4, 4, alarm_out_slect );
						  }break;

				  case 3:{ 
				          for(i=0;i<4;i++){ 			  //設(shè)置數(shù)據(jù)類型是報(bào)警鎖存
				  		  alarm_cou[i]=comm_in_buf[i+5];}
						  nbyteWrite(8, 4,alarm_cou );							
						  }break;
				  case 4:{ 
				          for(i=0;i<4;i++){ 			  //設(shè)置數(shù)據(jù)類型是延時(shí)時(shí)間 
				  		  delay_time[i+comm_in_buf[4]]=comm_in_buf[i+5];}
						  
						  if (comm_in_buf[4]==28) nbyteWrite(12, 32,delay_time );							
						  }break;

				  case 7: {							  //回應(yīng)
				          SEND =1;
				  		  }break;
		  						  }
	 	 
	                    comm_rec_over=0; } 
						comm_rec_over=0;return;     }
						}
					}
//					}
 //******************************************************************************
 //****************************************************************************** 	
void  RE32  (unsigned char *point,unsigned char dt ){
unsigned char i,k;
  for (i=0;i<8;i++){
    for (k=0;k<4;k++){

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
制服丝袜成人动漫| 国产亚洲短视频| 国产一区 二区 三区一级| 中文字幕亚洲视频| 精品999久久久| 欧美伊人久久大香线蕉综合69 | 成人av综合一区| 日韩国产欧美三级| 中文字幕色av一区二区三区| 日韩美女一区二区三区四区| 欧美日韩在线播放三区| 99久久婷婷国产综合精品| 久久91精品久久久久久秒播| 亚洲国产精品久久艾草纯爱| 国产精品久久久久桃色tv| 精品国产在天天线2019| 欧美疯狂做受xxxx富婆| 在线观看国产一区二区| 不卡视频免费播放| 成人h版在线观看| 国产成人一区二区精品非洲| 激情综合色播五月| 久久精品国产99| 三级欧美韩日大片在线看| 亚洲精品v日韩精品| 综合电影一区二区三区 | 久久久亚洲午夜电影| 日韩欧美亚洲国产另类| 777奇米成人网| 3atv一区二区三区| 欧美日韩精品三区| 欧美少妇xxx| 欧洲av一区二区嗯嗯嗯啊| 一本一本久久a久久精品综合麻豆| 丁香桃色午夜亚洲一区二区三区| 久久er99精品| 国产精品综合av一区二区国产馆| 久久99精品久久久久久动态图 | 视频一区视频二区中文| 婷婷久久综合九色国产成人| 午夜视频一区在线观看| 五月天激情综合网| 麻豆精品精品国产自在97香蕉| 日本一不卡视频| 日韩精品久久理论片| 奇米色777欧美一区二区| 日本va欧美va瓶| 久久99久久精品欧美| 久久精品理论片| 国产精品99久久久久久久vr| 成人国产精品免费网站| 日本韩国精品在线| 欧美日韩精品是欧美日韩精品| 欧美人狂配大交3d怪物一区| 欧美一区二区精品| 精品免费国产二区三区 | 国产精品夫妻自拍| 椎名由奈av一区二区三区| 亚洲精品福利视频网站| 亚洲午夜一二三区视频| 免费看欧美女人艹b| 国产精品中文字幕日韩精品| 不卡一卡二卡三乱码免费网站| 色综合久久精品| 日韩视频123| 中文乱码免费一区二区| 亚洲图片欧美色图| 久久精品国产网站| 成人app软件下载大全免费| 欧美亚洲国产一区二区三区va| 3atv在线一区二区三区| 国产日韩三级在线| 亚洲欧美另类小说视频| 日韩电影在线免费| 风间由美一区二区三区在线观看| 99精品国产视频| 欧美一区二区三区精品| 日本一区二区在线不卡| 亚洲va韩国va欧美va| 国产精品18久久久久| 欧美性欧美巨大黑白大战| 久久先锋影音av鲁色资源网| 中文字幕日韩精品一区| 爽好久久久欧美精品| 不卡av电影在线播放| 欧美一级淫片007| 国产精品国产三级国产普通话蜜臀| 亚洲成人在线免费| 国产传媒欧美日韩成人| 欧美综合亚洲图片综合区| 26uuu亚洲综合色| 亚洲国产一区二区三区青草影视| 国内精品不卡在线| 在线播放日韩导航| 中文字幕日本不卡| 精品无人区卡一卡二卡三乱码免费卡| 91小视频免费观看| 国产嫩草影院久久久久| 麻豆精品国产传媒mv男同| 色婷婷精品大在线视频| 国产欧美日韩在线观看| 爽好久久久欧美精品| 在线一区二区视频| 国产精品乱子久久久久| 精品一区二区三区在线视频| 在线观看中文字幕不卡| 中文字幕一区av| 国产精品99久久久| 精品国产123| 免费高清视频精品| 欧美日本不卡视频| 亚洲激情自拍视频| 99视频有精品| 国产拍揄自揄精品视频麻豆| 麻豆精品在线观看| 91精品国产黑色紧身裤美女| 亚洲黄色av一区| 99re热这里只有精品视频| 久久久久久麻豆| 国产自产2019最新不卡| 日韩一区二区三区视频在线| 亚洲小说欧美激情另类| 在线欧美日韩国产| 亚洲一区二区三区小说| 91丝袜美女网| 中文字幕一区二区三| 99综合影院在线| 精品一区二区日韩| 久久综合色鬼综合色| 久久精品国产99国产精品| 日韩视频123| 久久av资源站| 国产亚洲一区字幕| 国产精品资源网| 国产欧美一区二区精品秋霞影院 | 精品日产卡一卡二卡麻豆| 日本午夜精品视频在线观看| 欧美日韩在线播放一区| 偷拍自拍另类欧美| 欧美一级二级在线观看| 秋霞午夜鲁丝一区二区老狼| 日韩一二在线观看| 国产一区二区三区免费观看| 精品剧情在线观看| 国产精品99久久久久久久女警| 久久九九久精品国产免费直播| 狠狠色综合色综合网络| 欧美激情一区二区在线| 99久久国产免费看| 亚洲国产精品久久艾草纯爱| 制服丝袜成人动漫| 国产在线麻豆精品观看| 欧美经典三级视频一区二区三区| k8久久久一区二区三区| 亚洲免费在线电影| 欧美日韩精品一区二区三区四区 | 午夜视频一区在线观看| 欧美一区二区精美| 国产一区视频网站| 国产精品萝li| 欧美日韩黄色影视| 精品午夜久久福利影院| 国产精品久久久久久久岛一牛影视| 97aⅴ精品视频一二三区| 亚洲成a人v欧美综合天堂下载 | 国产精品久久久久久亚洲伦 | 制服视频三区第一页精品| 精品一二线国产| 中文字幕av资源一区| 在线一区二区三区| 免费高清不卡av| 国产精品久久久爽爽爽麻豆色哟哟| 日本久久电影网| 久久aⅴ国产欧美74aaa| 亚洲欧美日韩国产综合在线| 欧美精品18+| 国产精品亚洲一区二区三区妖精 | 欧美电影一区二区三区| 国产一区二区美女诱惑| 尤物在线观看一区| 精品欧美一区二区三区精品久久 | 国产精品亚洲一区二区三区在线 | 九九久久精品视频| 自拍偷拍国产精品| 精品少妇一区二区三区日产乱码| 99v久久综合狠狠综合久久| 肉色丝袜一区二区| 视频一区欧美精品| 一区精品在线播放| 26uuu精品一区二区| 在线精品亚洲一区二区不卡| 国内成人免费视频| 肉色丝袜一区二区| 亚洲三级在线看| 久久亚洲综合色一区二区三区| 91福利视频网站| 成人精品视频网站| 精品一区二区三区久久| 性久久久久久久久久久久| 国产精品国产三级国产aⅴ原创 |