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

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

?? lna3.c

?? GSM低噪聲放大器模塊監控處理程序
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*
      * Copyright (c) 2004,
      * All rights reserved.
      * 
      * 文件名稱:lna.c
      * 文件標識:見配置管理計劃書
      * 摘    要:低噪放模塊的監控數據處理
      * 
      * 當前版本:1.2
*/

#include "lna3.h"

void main()
{
	
	delay_unit(10000);//上電后延遲一段時間,防止剛上電電壓過大,亂操作。
	
	init();	
	
	for( ; ; )
	{
		sign_collect();
		
		serial_data();
		
		if (chushi>=0x0d6b)//定時器1產生3435次中斷,每次終端時間為65.5*8=524ms,3435次中斷約為半個小時
		{
		init_sign_ctl();
		chushi=0;
		}
		
	}
	
}

void init()
{
	init_mcu();	//初始化端口方向、ADC、TMR1、波特率、USART、中斷、SSP、WDT
	init_menu();//初始化各控制參數
	init_serial();//初始化各串口部分
	init_eeprom();//初始化EEPROM
//	CHECK_temp();//獲取溫度值,為初始化控制做補償準備
//	init_sign_ctl();//初始化各控制項
}
void init_mcu()
/********************************************************************
 初始化項目:
	1、WDT
 	2、ADC
 	3、SSP(只初始化端口方向,其他的在具體使用的時候初始化)
 	4、TMR1
 	5、USART
 	6、中斷資源
 	7、端口方向
********************************************************************/
{
	
		TRISA  = 0x2f; //initialize the direction of the ports
		TRISB  = 0xc0;
		TRISC  = 0x80;
		TRISD  = 0x00;
		TRISE  = 0x00;//沒用上PORTE
		porta_wbuf = 0x00;
		portb_wbuf = 0x1f;
		portc_wbuf = 0x04;
		portd_wbuf =0x1f;
		porte_wbuf = 0x00;//沒用上PORTE

//		TMR1L  = 0x00; //initialize TMR1,65.6ms
//		TMR1H  = 0x00;
//		T1CON  = 0x00;
		
//		SPBRG  = 0x19; //initialize USART baud = 9600 error = 0.16%
	SPBRG  = 0x0c; //initialize USART baud = 19200 error = 0.16%
		TXSTA  = 0x06;//高速波特率使能,TRMT=1(發送移位寄存器TSR"空"標志位)
		RCSTA  = 0x90;//SPEN=1(串行口使能),CREN=1(使能連續接收)
		OPTION = 0x8f;//PORTB弱上拉禁止,PSA(預分頻器分配位)用于WDT,PS2:PS0=1:128
		INTCON = 0xc0;//GIE=1(全局中斷使能),PEIE=1(外圍接口中斷使能)
		PIE1   = 0x21;//RCIE=1(串行通信接口USART接收中斷使能),TMR1IE=1(TMR1溢出中斷使能)
		PIR1   = 0x00;
		PIE2   = 0x00;
		PIR2   = 0x00;
		PCON   = 0x03;//未發生上電復位,未發生掉電復位
		
		

		
		//定時器設置
		TMR1L  = 0x00; //initialize TMR1,65.5ms
		TMR1H  = 0x00;
		T1CON  = 0x31;//使能定時器工作,TMR1ON=1;8分頻65.5*8=524ms;
}
///************初始化參數********/
void init_menu()
{
    auto int i;
    dog_soft = 0;
    dog();
    for(i = 0;i < 2 ; i++)
    {
     pwr_buf[i] = 0;
     v7_buf[i] = 0;
    }
    
    pwr_cnt=0;
    v7_cnt=0;
	temp_cnt=0;
	id_cnt=0;
	tempbuf=0x0000;
	chushi=0;//定時器中斷計數器
	Prmter1.ADDR = rrom(mod_add_add+2);//mod_add_add為模塊地址參數的地址
    Prmter1.max = rrom(maxpwradd);
    Prmter1.GCU1 = rrom(gcu1add);
    Prmter1.GCU2 = rrom(gcu2add);
    Prmter1.maxu = rrom(maxpuadd);
    Prmter1.POFFSET1=rrom(poff1add);
    Prmter1.POFFSET2=rrom(poff2add);
    Prmter1.CTRBB=rrom(ctrbbadd);
 //   Prmter1.PROTL_ETN = 0x02;//協議版本
 	tran_flag=0x00;//轉義標志,=0為沒有轉義,=1為轉義過了
    tempcheck=0;
    headend_flag=0x00;
}
/**********************************************************
** 功能說明:  模塊控制參數初始化函數
** 輸入參數:  無	 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
void init_sign_ctl()
{
	DAC(1,Prmter1.maxu);

    gcu_jz();//前10后10前5后5,增益標稱值補+溫補。(兩個增益)
   
}
/**********************************************************
** 功能說明:  串口初始化函數
** 輸入參數:  無	 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
void init_serial()
{
	auto int i;
	for(i = 0;i < BUF_LENGTH ;i++)
	{
		receive_buf[i] = 0;
	}
	for(i = 0; i < 2 ;i ++)
	{
		pChecksum[i] = 0;
	}
	receive_time_on = 0;
	receive_time_count = 0;
	receive_over = 0;
	receive_cnt = 0;
	dog();
	portd_wbuf = portd_wbuf & 0x7f;
	PORTD = portd_wbuf;
}
/**********************************************************
** 功能說明:  初始化eeprom函數
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/
void init_eeprom(void)
{
	uint i;
	uchar j;
	TRISC0 = 0;
	TRISC1 = 0;
	err_eeprom=0;
	dog();
	j = rrom(0x07ff); 
	if(j!=0xa2)
	{
		for(i=0;i<0x07ff;i++)
		{
			wrom(i,0x00);
			dog();	
		}
		wrom(0x07ff,0xa2);
		
		wrom(mod_idadd,0x00);//寫入模塊ID號地址低字節
		wrom(mod_idadd+1,0xf0);//寫入模塊ID號地址高字節
		
		wrom(mod_add_add,0x02);//寫入模塊地址的地址低字節
		wrom(mod_add_add+1,0xf0);//寫入模塊地址的地址高字節
		
		wrom(product_add,0x19);//寫入生產序列號參數地址低字節
		wrom(product_add+1,0xf0);//寫入生產序列號參數地址高字節
	
	}
}
void dog()
{
	asm("CLRWDT");
	OPTION = 0x8f;	
}

void delay_Tad(uchar j)  
{
	auto uchar i;
	for(i=0;i<j;i++)
	{
		asm("nop");
		asm("nop");
		asm("nop");
	}	
}
/**********************************************************
** 功能說明:  延時函數
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/
void delay_unit(uint buf)
{
	auto uint i;
	for(i = 0;i < buf ;i++)
	{
		asm("nop");
	}
}
/**********************************************************
** 功能說明:  模塊檢測函數
** 輸入參數:  無	 
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
void sign_collect()
{
	dog();
	CHECK_PWR();//輸出功率檢測和過功率告警檢測
	CHECK_ctr();//功率控制深度檢測參數
	CHECK_v7();//+7V電壓檢測參數
	CHECK_temp();//溫度檢測參數
	CHECK_id();
}
/**********************************************************
** 功能說明:  數控衰減函數
** 輸入參數:  ctbuf     類型:uchar   :=0X00時,為選擇PORTD; =0X01時,為選擇PORTB
	      gcubuf    類型:uchar   :數控衰減值
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
*********************************************************/
void gcu_ctl(uchar ctbuf,char gcubuf)
{
	uchar buf;
	uchar B[5];
	uchar buff;
	if(gcubuf>=0x80)
	{
		gcubuf=0;
	}
	if(gcubuf>31)
	{
		gcubuf=31;
	}
        buf= ~(gcubuf);
	buf = buf & 0x1f;//取低5位,屏蔽前三位
	B[0]=buf&0x01;
    	B[0]=B[0]<<4;
        B[1]= buf & 0x02;
        B[1]= B[1]<<2;
        B[2]= buf & 0x04;	
        B[3]= buf & 0x08;
	B[3]= B[3]>>2;
        B[4]= buf&0x10;
	B[4]= B[4]>>4;
	buff=B[0]|B[1]|B[2]|B[3]|B[4];
	buff=buff&0x1f;
	if (ctbuf==0x00)
	{
	 portd_wbuf = portd_wbuf | buff;
	 buff=buff|0xe0;
	 portd_wbuf = portd_wbuf & buff;
	 PORTD = portd_wbuf;
	}
	else if (ctbuf==0x01)
	{
	 portb_wbuf = portb_wbuf | buff;
	 buff=buff|0xe0;
	 portb_wbuf = portb_wbuf & buff;
	 PORTB = portb_wbuf;
	}
}

/**********************************************************
** 功能說明:  adc數據的采集輸出
** 輸入參數:  無
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/
uchar adc_read(uchar buf)
{
	uchar adcbuf;
	ADCON1 = 0x00;
	buf = buf & 0x07;
	buf = buf << 3;
	ADCON0 = buf | 0x41;
	delay_Tad(5);
	ADGO = 0x01;
	while(ADGO)
	{
		;
	}
	#if defined(_16F77)
		adcbuf = ADRES;
	#endif
	#if defined(_16F877A)
		adcbuf = ADRESH;
	#endif
	ADON = 0x00;
	ADIF = 0x00;
	return adcbuf;
} 
/**********************************************************
** 功能說明:  控制數據數模轉換函數(ad5302)
** 輸入參數:  uchar	addr	信道號選擇(0為A信道,1為B信道)
	      	 uchar	buf	    要轉換的數值
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/
void DAC(uchar addr1,uchar buf)
{
	union buf_union dabuf;
	int k;
	uchar buf2;
	TRISC2 = 0;
	SSPSTAT = 0x40;             
	SSPCON  = 0x21;//采用Fosc/16
	if(buf>250)
	{
		buf=250;
	}
	buf2 = addr1<<3;
	dabuf.buf2[1] = buf2;
	dabuf.buf2[0] = buf;
     dabuf.buf1=dabuf.buf1<<4;
     	portc_wbuf = portc_wbuf | 0x04;//CS=1
	PORTC = portc_wbuf;
	portc_wbuf = portc_wbuf & 0xfb;//CS=0
	PORTC = portc_wbuf;
	SSPIF = 0;
	for(k = 1;k >= 0; k--)
	{
		SSPBUF = dabuf.buf2[k];
		while(SSPIF == 0)
		{
			;
		}
		SSPIF = 0;
	}
	portc_wbuf = portc_wbuf | 0x04;//CS=1
	PORTC = portc_wbuf;

}
/**********************************************************
** 功能說明:  低噪放過功率告警(D)
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/
//void CHECK_ALM()
//{       
//	lan_buf=adc_read(0);
//	if(lan_buf2>(Prmter1.max*256/5))
//	if(lan_buf>(Prmter1.max))
//	  {
//	  	Prmter1.alm = 0x01;
//	  }
//	  else
//	  {
//	  	Prmter1.alm = 0x00;
//	  }
//	 lan_buf = 0;
 //  	wrom(lanalmadd,Prmter1.alm);        
//}
/**********************************************************
** 功能說明:  上行輸出功率檢測
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
************************************************************/
void CHECK_PWR()
{
	uchar PWR_adc;
	PWR_adc=adc_read(0);
	pwr_buf[1]=PWR_adc;
        pwr_cnt++;
    if(pwr_buf[0]<pwr_buf[1])
   	{
   		pwr_buf[0]=pwr_buf[1];
   	}
    if(pwr_cnt>=PWR_CNT)
    {
        Prmter1.PWRU = pwr_buf[0]; 
		pwr_cnt = 0x00;	
		pwr_buf[0] = 0x00; 
		Prmter1.PWR=Prmter1.PWRU/5-50+Prmter1.POFFSET1 ;
    }     

}

/**********************************************************
** 功能說明:  上行功率控制深度檢測和過功率告警檢測
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/

void CHECK_ctr()
{
   uchar i;
   uchar D;
   uchar buf1;
   uchar buf2;
   uchar buf3;
   uchar buf4;
 //  uchar buf;
   D = adc_read(3);
    //Prmter1.ctr = D;
    Prmter1.CTRU = D;
   //  wrom(ctruadd,Prmter1.CTRU);
   //Prmter1.ctr = data[D];	//查表		
   //Prmter1.ctr = data[82];	//查表	
  // wrom(pwrctradd,Prmter1.ctr);
      if(D<45)
      {
      	Prmter1.ctr = 0;
      }
      else if((D>=45)&&(D<51))
      {
      	Prmter1.ctr = 1;
      }
      else if((D>=51)&&(D<101))
		{
			for(i=0;i<9;i++)
			{
				buf1=51+5*i;
				buf2=buf1+3;
				buf3=54+5*i;
				buf4=buf3+2;
      			if((D>=buf1)&&(D<buf2))
      			{
      				Prmter1.ctr =2+i<<1+Prmter1.CTRBB;
      				
      			}
      			if((D>=buf3)&&(D<buf4))
      			{
      				Prmter1.ctr =3+i<<1+Prmter1.CTRBB;
      				
      			}
     		 }
		}
          //************************告警判斷
       if((D >= 101)&&(Prmter1.ctr>20))//過功率告警檢測
	  {
	  	Prmter1.alm = 0x01;//告警
	  	Prmter1.ctr=20;
	  	
	  }
	  else
	  {
	  	Prmter1.alm = 0x00;//不告警
	  }
}
/**********************************************************
** 功能說明:  +7V電壓檢測
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/
void CHECK_v7()
{
	union buf_union V7BUF;
    uchar V7_adc;
    V7_adc=adc_read(1);
    v7_buf[1]=V7_adc;
    v7_cnt++;
    if(v7_buf[0]<v7_buf[1])
    {
     v7_buf[0]=v7_buf[1];
    }
    if(v7_cnt>=V7_CNT)
    {
     Prmter1.v7U = v7_buf[0]; 
     v7_cnt = 0x00;	
     v7_buf[0] = 0x00;
    // wrom(v7uadd,Prmter1.v7U);
     V7BUF.buf1=Prmter1.v7U<<1;
     Prmter1.v7L =V7BUF.buf2[0];
     Prmter1.v7H = V7BUF.buf2[1];
     //wrom(v7add,Prmter1.v7L);
    }
}
 
/**********************************************************
** 功能說明: 溫度檢測
** 輸入參數:  
** 輸出參數:  
** 返 回 值:  無
** 引用函數: 
***********************************************************/
void CHECK_temp()
{
//	uchar buf;
//	uchar buff;
//	Prmter1.TEMPU = adc_read(2);
//  	Prmter1.TEMP= (100*Prmter1.TEMPU)/51-60;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品少妇一区二区三区免费观看 | 日本va欧美va瓶| 99久久伊人精品| 一区在线观看视频| 99精品视频中文字幕| 专区另类欧美日韩| 91亚洲精品乱码久久久久久蜜桃 | 91免费在线播放| 樱桃视频在线观看一区| 欧美中文字幕一区二区三区 | 国产精品天美传媒| 成人免费毛片app| 亚洲精品欧美在线| 91精品国产综合久久精品图片 | 欧美中文字幕久久| 日韩福利视频导航| 久久色中文字幕| 色综合天天综合| 中文字幕一区不卡| 欧美日韩一级黄| 久草在线在线精品观看| 中文字幕第一区综合| 日本电影欧美片| 美女诱惑一区二区| 国产精品视频观看| 欧美日韩激情一区二区三区| 久久国产夜色精品鲁鲁99| 国产精品网站一区| 欧美三区免费完整视频在线观看| 青草av.久久免费一区| 国产性天天综合网| 欧美视频在线一区二区三区 | 成人午夜私人影院| 亚洲国产日韩av| 久久影院电视剧免费观看| 91丨九色丨蝌蚪丨老版| 欧美aⅴ一区二区三区视频| 国产精品美女一区二区| 欧美精品日韩一本| 成人在线综合网| 日韩av电影天堂| 中文字幕亚洲电影| 日韩三级免费观看| 日本高清不卡视频| 国产成人精品影视| 日本在线不卡一区| 亚洲美女视频在线| 久久亚洲综合色一区二区三区| 日本韩国精品在线| 成人av在线播放网站| 麻豆传媒一区二区三区| 亚洲综合视频在线| 欧美国产日本视频| 精品三级在线观看| 欧美乱熟臀69xxxxxx| av毛片久久久久**hd| 国内成人自拍视频| 五月综合激情日本mⅴ| 亚洲欧洲www| 国产欧美一区二区精品秋霞影院 | 在线视频你懂得一区| 国产成人午夜99999| 免费xxxx性欧美18vr| 亚洲一区二区三区爽爽爽爽爽| 中文字幕免费不卡| 国产日韩欧美电影| 精品sm在线观看| 日韩免费看网站| 欧美一区二区私人影院日本| 欧美色综合网站| 色婷婷狠狠综合| 99视频在线观看一区三区| 国产成人欧美日韩在线电影| 精品一区免费av| 久久av中文字幕片| 久久99久久99小草精品免视看| 午夜精彩视频在线观看不卡| 亚洲一区二区高清| 亚洲无人区一区| 亚洲成a人v欧美综合天堂| 一区二区三区在线免费| 国产精品理论片| 1000精品久久久久久久久| 国产精品免费av| 亚洲精品日产精品乱码不卡| 一区二区欧美国产| 亚洲成年人网站在线观看| 亚洲成人av在线电影| 男男成人高潮片免费网站| 琪琪久久久久日韩精品| 精品一区二区三区av| 国产揄拍国内精品对白| 国产麻豆一精品一av一免费| 国产激情偷乱视频一区二区三区 | 色94色欧美sute亚洲线路一久| 99re8在线精品视频免费播放| 成人免费视频免费观看| 95精品视频在线| 欧美自拍丝袜亚洲| 91精品国产色综合久久ai换脸| 日韩一级完整毛片| 国产亚洲欧美一区在线观看| 国产精品系列在线| 亚洲一区二区三区小说| 久久99久久久久| 成人性色生活片| 欧美亚洲日本国产| 精品欧美乱码久久久久久1区2区| 国产亚洲女人久久久久毛片| 国产精品电影一区二区| 亚洲福利视频一区二区| 国产最新精品精品你懂的| 成人免费三级在线| 欧美精品免费视频| 国产色91在线| 亚洲午夜免费视频| 狠狠狠色丁香婷婷综合久久五月| 成人激情免费视频| 欧美精品久久一区| 中文字幕高清不卡| 日本中文字幕不卡| 成人动漫av在线| 91精品国产色综合久久久蜜香臀| 欧美激情自拍偷拍| 日韩高清不卡一区二区| 99这里只有久久精品视频| 在线观看不卡一区| 久久久精品国产免费观看同学| 亚洲美女免费在线| 国产精品一区二区久久不卡| 一本大道久久精品懂色aⅴ| 欧美电影免费观看高清完整版| 亚洲色图欧洲色图| 国产一区二区三区视频在线播放| 91福利小视频| 国产欧美日韩精品a在线观看| 午夜欧美在线一二页| 99久久伊人久久99| 精品少妇一区二区三区在线播放| 亚洲精品高清在线观看| 国产精品自在在线| 日韩一区二区精品| 香港成人在线视频| 色综合天天综合狠狠| 久久精品一区蜜桃臀影院| 日本不卡一二三| 欧美亚洲图片小说| 亚洲精品大片www| www.av亚洲| 国产色爱av资源综合区| 激情综合网激情| 日韩欧美电影在线| 天天综合网 天天综合色| 91麻豆精东视频| 国产精品久久久久久久久晋中| 久久99国产精品免费网站| 91.xcao| 亚洲国产精品欧美一二99| eeuss鲁一区二区三区| 国产日本欧美一区二区| 极品少妇一区二区三区精品视频 | 亚洲精品一区二区三区四区高清| 亚洲国产三级在线| 欧美丝袜自拍制服另类| 亚洲综合免费观看高清完整版在线 | 日韩欧美国产电影| 奇米一区二区三区av| 日韩午夜激情视频| 蜜臀久久99精品久久久久久9| 91精品国产综合久久婷婷香蕉 | 免费在线看成人av| 日韩一区二区在线观看视频 | 亚洲高清免费观看高清完整版在线观看| 成人一区二区三区在线观看 | 欧美亚洲国产bt| 亚洲图片一区二区| 91精品在线免费| 久久99国产精品成人| 日韩精品一区二区三区老鸭窝| 看片的网站亚洲| 久久―日本道色综合久久| 国产在线不卡视频| 国产精品美女久久久久aⅴ| 99精品视频中文字幕| 一区二区三区美女视频| 欧美巨大另类极品videosbest| 日本不卡在线视频| 精品免费日韩av| 丁香婷婷深情五月亚洲| 中文字幕亚洲区| 欧美日韩大陆一区二区| 蜜臀av性久久久久av蜜臀妖精| 26uuu亚洲综合色欧美| 大尺度一区二区| 一区二区三区免费网站| 日韩一区二区精品| 丁香啪啪综合成人亚洲小说| 亚洲精品欧美在线| 欧美一级xxx| 成人国产精品免费观看动漫|