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

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

?? m128_alky_touch_con1._c

?? m8做的電壓檢測
?? _C
?? 第 1 頁 / 共 5 頁
字號:

void   FL_ads1100_start(void);                           /*i2c start */
void   FL_ads1100_stop(void);                           /*i2c stop*/
uchar   FL_ackby_ads1100(void);                           /*ads1100應答*/
void   FL_ackby_master(void);                           /*主機應答*/
void   FL_send_frame(uchar framedata);                     /*send 8bit to ads1100*/
uchar   FL_read_frame(void);                             /*read bbit from ads1100*/
void   FL_ads1100_write(unsigned char addr,unsigned char command);   /*write a command to the ads1100*/ 
unsigned int   FL_ads1100_read(unsigned char addr);             /*read a convert data from ads1100*/

void   BENG_ads1100_start(void);                           /*i2c start */
void   BENG_ads1100_stop(void);                           /*i2c stop*/
uchar   BENG_ackby_ads1100(void);                           /*ads1100應答*/
void   BENG_ackby_master(void);                           /*主機應答*/
void   BENG_send_frame(uchar framedata);                     /*send 8bit to ads1100*/
uchar   BENG_read_frame(void);                             /*read bbit from ads1100*/
void   BENG_ads1100_write(unsigned char addr,unsigned char command);   /*write a command to the ads1100*/ 
unsigned int   BENG_ads1100_read(unsigned char addr);             /*read a convert data from ads1100*/
//*********

void Disp_Start_donghua(unsigned int addr,unsigned char n); 
uchar keboard(void); 

void EEPROM_write(unsigned int uiAddress, unsigned char ucData);
unsigned char EEPROM_read(unsigned int uiAddress);
void EEPROM_init(void);
void Read_EE_10(unsigned char n);
void Write_EE_10(unsigned char n);

uint SYS_ADC(unsigned char n);
int PIDCalc( PID *pp,  uint NextPoint);
int PIDCalc_WD( PID *pp, uint NextPoint);
void PIDInit (PID *pp);
float WENDU_TZ(uint ad_v);
void  Display_Start_donghua320240(void);
void  Display_CON320240(void);
void  Display_CLR(void);
void  CON_Value_XIANSHI(void);
void  F_Value_XIANSHI(void);
void  L_LDBD_XIANSHI(void);
void  PID_Value_XIANSHI(void);
void XG_CON_Set(unsigned char kkk);
void XG_PID_Set(unsigned char kkk);
void L_LDBD_Set(unsigned char kkk);
unsigned char P_I_D_SUB1(unsigned char XX,unsigned char k);
unsigned int P_I_D_SUB2(unsigned int XX,unsigned char k);
void XG_F_Set(unsigned char kkk);

void  Display_F320240(void);
void  Display_L320240(void);
void  Display_L_PID320240(void);
void  Display_TOUCH_KEY(void);
void  Display_TOUCH_KEY_VAL(void);
void  Display_TOUCH_MENU(void);
void Disp_SJ_MODE_CLR(void);
void Disp_SJ_MODE_DianD(void);
void Disp_SJ_MODE_ChangK(void);
void Disp_Select_BDLD(unsigned int addr);
void Disp_Select_BDLD_Clr(unsigned int addr);
void Disp_MiMa(unsigned char flag,unsigned int addr);
void MiMa_TEMP_Clr(void);
void Button_YN(void);
void Disp_Message(uchar n,unsigned int addr);
void LD_JiSuan(void);

uchar keyboard(void);
uint ReadFromCharFrom7846(void);
void WriteCharTo7846(unsigned char num);
void ADS7846_start(void);
//******************************************
//******************************************
//******************************************
//******************************************
//******************************************
//******************************************
//******************************************
//******************************************
//******************************************
//=============================PID計算部分==============================================
int PIDCalc( PID *pp, uint NextPoint)
{
int dError,Error,TEMP;
Error = pp->SetPoint - NextPoint; // 偏差
pp->SumError += Error; // 積分
  if(pp->SumError > 20000)
   {pp->SumError = 20000;}
  else
   {
   	// TEMP=pp->SumError+Max;
   	 if(pp->SumError < -20000)
        pp->SumError= -20000;
   }
dError = pp->LastError - pp->PrevError; // 當前微分
pp->PrevError = pp->LastError;
pp->LastError = Error;
if(Set_LD_Value>299)
  return (pp->Proportion * Error + (pp->Integral * pp->SumError)/2 + pp->Derivative * dError);
else
  return (pp->Proportion * Error + (pp->Integral * pp->SumError)/4 + pp->Derivative * dError);
}
//******************************************
//=============================PID計算部分==============================================
int PIDCalc_WD( PID *pp, uint NextPoint)
{
int dError,Error,TEMP;
Error = pp->SetPoint - NextPoint; // 偏差
pp->SumError += Error; // 積分
  if(pp->SumError > 1000)
   {pp->SumError = 1000;}
  else
   {
   	// TEMP=pp->SumError+Max;
   	 if(pp->SumError < -1000)
        pp->SumError= -1000;
   }
dError = pp->LastError - pp->PrevError; // 當前微分
pp->PrevError = pp->LastError;
pp->LastError = Error;
return (pp->Proportion * Error + pp->Integral * pp->SumError + pp->Derivative * dError);
}
//******************************************
void PIDInit (PID *pp)
{	//初始化為0
  pp->SetPoint=0;
  pp->Proportion=0;
  pp->Integral=0;
  pp->Derivative=0;
  pp->LastError=0;
  pp->PrevError=0;
  pp->SumError=0;
}

//******************************************
void port_init(void)
{
 PORTA = 0x0F;
 DDRA  = 0xF0;
 PORTB = 0x00;
 DDRB  = 0xFF;
 PORTC = 0xFF; //m103 output only
 DDRC  = 0xFF;
 PORTD = 0xFF;
 DDRD  = 0xFF;
 PORTE = 0xC0;
 DDRE  = 0x3F;
 PORTF = 0x00;
 DDRF  = 0x00;
 PORTG = 0x1F;
 DDRG  = 0x1B;
}

//******************************************
//TIMER0 initialize - prescale:32
// WGM: PWM Fast
// desired value: 1mSec
// actual value:  2.048mSec (-104.8%)
void timer0_init(void)
{
 TCCR0 = 0x00; //stop
 ASSR  = 0x00; //set async mode
 TCNT0 = 0x7D; //set count
 OCR0  = 0xFF;
 //TCCR0 = 0x6B; //start timer
 TCCR0 = 0x7B; //start timer
}

//******************************************
#pragma interrupt_handler timer0_ovf_isr:iv_TIM0_OVF
void timer0_ovf_isr(void)
{
 TCNT0 = 0x7D; //reload counter value
}

//******************************************
//TIMER1 initialize - prescale:256
// WGM: 14) PWM fast, TOP=ICRn
// desired value: 2Sec
// actual value:  2.000Sec (0.0%)
void timer1_init(void)
{
 TCCR1B = 0x00; //stop
 TCNT1H = 0x85; //setup
 TCNT1L = 0xEF;
 OCR1AH = 0x7A;
 OCR1AL = 0x11;
 
 OCR1BH = 0x7A;
 OCR1BL = 0x11;
 
 OCR1CH = 0x7A;
 OCR1CL = 0x11;
 
 ICR1H  = 0x7A;
 ICR1L  = 0x11;
 //TCCR1A = 0xC2;
// TCCR1B = 0x1D; //start Timer
}

//******************************************
#pragma interrupt_handler timer1_ovf_isr:iv_TIM1_OVF
void timer1_ovf_isr(void)
{
 //TIMER1 has overflowed
 //TCNT1H = 0x85; //reload counter high value
 //TCNT1L = 0xEF; //reload counter low value
 int rOut;
 uint TEMP;
 
 rOut=PIDCalc(&LD_PID,DQ_LD_Value);
  if(rOut<0)  rOut=0;
     if(rOut>ICR1_TEMP)   rOut=ICR1_TEMP;
 TEMP=ICR1_TEMP-rOut;
 LDPWM_Value_XianShi = TEMP;
 CLI();
// if(P_OK==1)
// {
   OCR1A = TEMP;
   ICR1  = ICR1_TEMP;
// }
// else
//   OCR1A = ICR1_TEMP;
// OCR1AH = TEMP/256;
// OCR1AL = TEMP%256;
 SEI();
}

//******************************************
//******************************************
//TIMER3 initialize - prescale:1024
// WGM: 14) PWM fast, TOP=ICRn
// desired value: 10Sec
// actual value: 10.000Sec (0.0%)
void timer3_init(void)
{
 TCCR3B = 0x00; //stop
 TCNT3H = 0x67; //setup
 TCNT3L = 0x6B;
 OCR3AH = 0x98;
 OCR3AL = 0x95;
 OCR3BH = 0x98;
 OCR3BL = 0x95;
 OCR3CH = 0x98;
 OCR3CL = 0x95;
 ICR3H  = 0x98;
 ICR3L  = 0x95;
 //TCCR3A = 0x32;
 //TCCR3A = 0x02;
 //TCCR3B = 0x1D; //start Timer
}

//******************************************
//#pragma interrupt_handler timer3_ovf_isr:iv_TIM3_OVF
//void timer3_ovf_isr(void)
//{
//}
//******************************************
#pragma interrupt_handler timer3_ovf_isr:iv_TIM3_OVF
void timer3_ovf_isr(void)
{
 //TIMER3 has overflowed
 //TCNT3H = 0x67; //reload counter high value
 //TCNT3L = 0x6B; //reload counter low value
 
 int rOut;
 uint TEMP;
 
 TEMP=(unsigned int)ZhuQi_WenDu_Value;
 rOut=PIDCalc_WD(&WD_PID,TEMP);
 if(rOut<0)  rOut=0;
 if(rOut>ICR3_TEMP)   rOut=ICR3_TEMP;
 TEMP=ICR3_TEMP-rOut;
 CLI();
 OCR3B = TEMP;
   ICR3  = ICR3_TEMP;
// OCR3BH = TEMP/256;
// OCR3BL = TEMP%256;
 SEI();
}

//******************************************
//TIMER2 initialize - prescale:1024
// WGM: Normal
// desired value: 50mSec
// actual value: 49.920mSec (0.2%)
void timer2_init(void)
{
 TCCR2 = 0x00; //stop
 TCNT2 = 0x3D; //setup
 OCR2  = 0xC3;
 //TCCR2 = 0x05; //start
}

//******************************************
#pragma interrupt_handler timer2_ovf_isr:iv_TIM2_OVF
void timer2_ovf_isr(void)
{
  unsigned char i;
  unsigned char j,k,Temp,Temp1;
  unsigned int addr;
  unsigned char addr_t;
  unsigned char TEMP_CH;
  
 TCNT2 = 0x3D; //reload counter value
/*
	ReadTime();
	if(!(Last_Second==Second))
	{
	  Display_Time(0); 
	  Last_Second=Second;
	}  
*/
	if(ZhuQi_WenDu_Value>50)
	{
     TCCR3A = 0x02;
     TCCR3B = 0x1D; //start Timer3
     PORTE&=~(1<<4);
	}
	
	if((Set_WenDu_Value+1) < ((unsigned char)ZhuQi_WenDu_Value));
	  WD_PID.SumError =0;
	
	//ADC_data_T=ADC_data_T+ads1100_read(ads1100_readaddr);
	ADC_data_T=ADC_data_T + SYS_ADC(DQ_LD_ADC);
	
    DQ_WenDu_TOT = DQ_WenDu_TOT + SYS_ADC(DQ_WenDu_ADC);
    ZhuQi_WenDu_TOT = ZhuQi_WenDu_TOT + SYS_ADC(ZhuQi_WenDu_ADC);
    DQ_ShiDu_TOT = DQ_ShiDu_TOT + SYS_ADC(DQ_ShiDu_ADC);
	
 //   k=keboard();
    k=keyboard();
	if(!(Last_Key==k))
	{
	  Last_Key=k;
	  
	  
	  if(YN_TOUCH_KEY_DISP_F)
	  {
       if(k<10)
       {
        KEY_TEMP[5]=KEY_TEMP[4];
        KEY_TEMP[4]=KEY_TEMP[3];
        KEY_TEMP[3]=KEY_TEMP[2];
        KEY_TEMP[2]=KEY_TEMP[1];
        KEY_TEMP[1]=KEY_TEMP[0];
        KEY_TEMP[0]=k;
       }
       else
        if(k==10)  //確定
        {
         switch(MENU_NUM)
         {
          case 0:            //濃度修改
           CLI();
           Set_LD_Value= KEY_TEMP[2] * 100 +KEY_TEMP[1] * 10 + KEY_TEMP[0];
           LD_PID.SetPoint = Set_LD_Value;
           EEPROM_write(EE_Set_LD_AddrL, Set_LD_Value%256);
           EEPROM_write(EE_Set_LD_AddrH, Set_LD_Value/256);
           Display_TOUCH_MENU();
           Clr_TOUCH_KEY_DISP_F();
           SEI();
          break;
          case 1:            //濃度周期修改
           CLI();
           F_LDZQ_Value= KEY_TEMP[3] * 1000 + KEY_TEMP[2] * 100 +KEY_TEMP[1] * 10 + KEY_TEMP[0];
           if(F_LDZQ_Value>4000)   F_LDZQ_Value=4000;
           EEPROM_write(EE_F_LDZQ_AddrL, F_LDZQ_Value%256);
           EEPROM_write(EE_F_LDZQ_AddrH, F_LDZQ_Value/256);
           ICR1_TEMP = (unsigned int)(F_LDZQ_Value*16);
	       TCNT1  = 0x0000;
           OCR1A  = 0xFFFF;
           ICR1 = ICR1_TEMP;
           Clr_BENG_CON();
           TCCR1A = 0xC2;
           TCCR1B = 0x1C; 
           Display_TOUCH_MENU();
           Clr_TOUCH_KEY_DISP_F();
           SEI();
          break;
          case 2:            //溫度周期修改
           CLI();
           F_WDZQ_Value= KEY_TEMP[1] * 10 + KEY_TEMP[0];
           if(F_WDZQ_Value>16)   F_LDZQ_Value=16;
           EEPROM_write(EE_F_WDZQ_Addr, F_WDZQ_Value);
           ICR3_TEMP = (unsigned int)(F_WDZQ_Value*3906);
                  
           TCNT3  = 0x0000;
           OCR3B  = 0xFFFF;
           ICR3 = ICR3_TEMP;
           TCCR3A = 0x32;
           TCCR3B = 0x1D; 
           ZhuQi_WenDu_Value = 30;
           ZhuQi_WenDu_TOT = 0;
                  
           Display_TOUCH_MENU();
           Clr_TOUCH_KEY_DISP_F();
           SEI();
          break;
          case 3:            //時間修改
           DS1302_Write(DS1302_CONTROL_Reg,0x00);//關閉寫保護
           Hour = (KEY_TEMP[3]<<4) | KEY_TEMP[2];
           if(Hour>0x23)   Hour=0x23;
           DS1302_Write(DS1302_HR_Reg,Hour); //時     
             
           Minute = (KEY_TEMP[1]<<4) | KEY_TEMP[0];
           if(Minute>0x59)   Minute=0x59;
           DS1302_Write(DS1302_MIN_Reg,Minute); //分
           DS1302_Write(DS1302_CONTROL_Reg,0x80);//打開寫保護
           Display_TOUCH_MENU();
           Clr_TOUCH_KEY_DISP_F();
          break;
          case 4:            //濃度PID修改
           CLI();
           LD_PID.Proportion = KEY_TEMP[5] * 10 + KEY_TEMP[4];
           if(LD_PID.Proportion>25)   LD_PID.Proportion=25;
           LD_PID.Integral = KEY_TEMP[3] * 10 + KEY_TEMP[2];
           if(LD_PID.Integral>12)   LD_PID.Integral=12;
           LD_PID.Derivative = KEY_TEMP[1] * 10 + KEY_TEMP[0];
           if(LD_PID.Derivative>25)   LD_PID.Derivative=25;
           
           EEPROM_write(EE_LDPID_P_Addr, LD_PID.Proportion);
           EEPROM_write(EE_LDPID_I_Addr, LD_PID.Integral);
           EEPROM_write(EE_LDPID_D_Addr, LD_PID.Derivative);
           Display_TOUCH_MENU();
           Clr_TOUCH_KEY_DISP_F();
           SEI();
          break;
          case 5:            //溫度PID修改
           CLI();
           WD_PID.Proportion = KEY_TEMP[5] * 10 + KEY_TEMP[4];
           if(WD_PID.Proportion>100)   WD_PID.Proportion=100;
           WD_PID.Integral = KEY_TEMP[3] * 10 + KEY_TEMP[2];
           if(LD_PID.Integral>20)   WD_PID.Integral=20;
           WD_PID.Derivative = KEY_TEMP[1] * 10 + KEY_TEMP[0];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美人与z0zoxxxx视频| 91久久线看在观草草青青| 日本在线不卡视频一二三区| 亚洲免费观看在线观看| 亚洲免费av高清| 亚洲国产视频a| 天天色天天操综合| 免费看黄色91| 国产精品一区免费视频| 99精品视频一区| 91美女精品福利| 69堂国产成人免费视频| 欧美va亚洲va在线观看蝴蝶网| wwww国产精品欧美| 成人欧美一区二区三区视频网页| 亚洲毛片av在线| 肉肉av福利一精品导航| 国内外精品视频| 91在线码无精品| 欧美日韩在线免费视频| 欧美变态tickle挠乳网站| 国产色综合一区| 亚洲图片欧美一区| 九九国产精品视频| 一本到高清视频免费精品| 欧美精品一卡二卡| 国产欧美一区二区精品久导航| 亚洲视频精选在线| 老司机免费视频一区二区| av在线综合网| 欧美不卡123| 亚洲一区二区三区四区五区中文 | 成人av在线一区二区| 色婷婷香蕉在线一区二区| 88在线观看91蜜桃国自产| 国产精品国产自产拍高清av| 午夜精品视频一区| 日韩限制级电影在线观看| 日本在线不卡视频一二三区| 国产 日韩 欧美大片| 欧美日韩国产在线播放网站| 国产三级精品在线| 男人的j进女人的j一区| 自拍偷拍欧美精品| 欧美性猛片xxxx免费看久爱| 亚洲成av人片在www色猫咪| 91精品国产综合久久久久久漫画 | 国产成人在线视频网站| 中文字幕一区二区视频| 在线视频一区二区三区| 日韩中文字幕麻豆| 欧美精品一区二区高清在线观看 | 欧美亚洲一区二区在线观看| 天天综合色天天综合色h| 欧美大黄免费观看| 成人激情小说网站| 亚洲一区二区精品久久av| 日韩欧美电影在线| www.欧美色图| 婷婷丁香激情综合| 国产欧美日韩不卡| 精品视频在线免费看| 久久不见久久见中文字幕免费| 中文字幕亚洲不卡| 欧美一级二级在线观看| 国产69精品久久777的优势| 亚洲成人福利片| 国产欧美一区二区精品性色| 欧美日韩国产综合一区二区| 国产福利一区在线观看| 亚洲国产成人av好男人在线观看| 精品国产乱码久久久久久影片| 99国产精品久久久久久久久久| 婷婷开心激情综合| 国产精品入口麻豆原神| 欧美一区二区在线免费播放| 99精品久久免费看蜜臀剧情介绍| 日本乱人伦aⅴ精品| 午夜在线电影亚洲一区| 欧美一区日韩一区| 国产乱码一区二区三区| 一区二区三区av电影| 欧美mv日韩mv国产| 97久久精品人人澡人人爽| 国产一区二区在线电影| 亚洲综合精品久久| 国产色产综合产在线视频| 欧美日韩另类一区| 不卡av免费在线观看| 麻豆精品一二三| 亚洲国产另类精品专区| 国产精品每日更新在线播放网址 | 亚洲成人av在线电影| 亚洲国产精品v| 日韩免费一区二区| 欧美日韩午夜在线| 色哟哟一区二区在线观看| 国产精品伊人色| 激情五月婷婷综合网| 日韩国产欧美在线观看| 一区二区三区在线影院| 欧美激情一区二区在线| 精品成人免费观看| 欧美一级在线观看| 欧美一二三区在线| 欧美日韩一区二区三区高清| av一区二区三区四区| 国产一区二区看久久| 麻豆精品在线观看| 美女一区二区久久| 蜜桃精品视频在线| 久久草av在线| 久久99精品一区二区三区| 偷拍一区二区三区| 日本亚洲一区二区| 久久精品国产一区二区| 日本美女视频一区二区| 亚洲成人av资源| 五月天亚洲精品| 日日嗨av一区二区三区四区| 亚洲综合一区二区三区| 亚洲激情五月婷婷| 一区二区三区av电影| 亚洲国产一区视频| 日韩经典中文字幕一区| 青娱乐精品在线视频| 日本伊人色综合网| 国产一区二三区好的| 狠狠色丁香婷综合久久| 国产九色精品成人porny| 国产精品一区一区| 91网站黄www| 欧美综合天天夜夜久久| 欧美日韩成人综合| 精品伦理精品一区| 日本一区二区三级电影在线观看 | 精品日韩在线观看| 久久久久久久av麻豆果冻| 国产欧美一区二区三区在线看蜜臀| 中文字幕成人网| 尤物av一区二区| 午夜精品久久久久久久| 精品一区二区三区影院在线午夜 | 国产日韩欧美制服另类| 亚洲三级在线免费| 午夜久久福利影院| 国产 日韩 欧美大片| 91视频观看免费| 欧美日本国产视频| 精品国产乱码久久久久久影片| 国产精品每日更新| 日日嗨av一区二区三区四区| 国产精品一区二区视频| 色婷婷久久综合| 欧美电影免费观看高清完整版在 | 欧美日韩高清一区二区三区| 日韩视频在线观看一区二区| 国产日韩精品视频一区| 亚洲成人你懂的| 国产成人精品午夜视频免费| 欧美少妇xxx| 久久久久久久综合| 亚洲国产精品久久久久秋霞影院 | 日韩二区在线观看| 成人免费高清在线观看| 91麻豆精品国产自产在线 | 成人免费黄色大片| 欧美日本在线一区| 亚洲欧洲综合另类| 国产麻豆午夜三级精品| 欧美精三区欧美精三区| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲国产视频直播| 成人午夜电影小说| 精品日韩99亚洲| 日韩国产在线一| 91免费版pro下载短视频| 日韩免费视频线观看| 亚洲综合成人网| 成人h动漫精品一区二区| 欧美精品一区二区三区在线播放| 一区二区三区中文免费| 成人午夜电影小说| 久久精品一区二区三区四区| 免费观看一级特黄欧美大片| 欧美三区在线视频| 日韩一区中文字幕| jvid福利写真一区二区三区| 国产无一区二区| 国产一区二区视频在线| 日韩精品一区二区三区四区视频| 亚洲成人免费影院| 欧美美女一区二区三区| 一区二区三区免费看视频| 成人av动漫网站| 国产精品久久久久久妇女6080| 丁香婷婷综合激情五月色| 久久精品在线观看| 丁香天五香天堂综合| 中文幕一区二区三区久久蜜桃|