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

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

?? 21010012.txt

?? 極低功率UHF無線收發器 315/433/868和915MHz ISM/SRD波段系統 AMR-自動儀表讀數 電子消費產品 RKE-兩路遠程無鍵登錄
?? TXT
字號:
/*******************************
project        :A/D轉換數碼管顯示
chip type      : atmega8		
clock frequency:內部RC(INT) 8MHz
Author         :周遠峰		
********************************/
#include "iom8v.h"
#include "macros.h"
#define osccal 0x7d      		   
unsigned long adc_rel;              //處理后世界轉換結果
unsigned long adc_rl;               //A/D轉換結
unsigned int tmp;                   //設置的溫度參數  			
unsigned char adc_mux;              //A/D通道 
unsigned char led_buff[3]={0,0,0};  //顯示緩存
signed int error0;                  //當前偏差
signed int error1;                  //上次偏差
signed int error2;                  //上上次偏差
signed char Kp;                     //比例常數
signed char Ki;                     //積分常數
signed char Kd;                     //微分常數
signed int kk1;                     //當前控制輸出
signed int kk2;                     //上次控制輸出
#define NB -3
#define NM -2
#define NS -1
#define ZO 0 
#define PS 1 
#define PM 2
#define PB 3
#pragma data:code     
 //設置數據區位程序儲存器
const unsigned char seg_table[16]={0x40,0x79,0x24,0x30,0x19,0x90,0x80,0x78,0x00,0x10,0x08,0x81,0x44,0x21,0x04,0x8c};
const unsigned char KP_table[49]={PB,PB,PM,PM,PS,ZO,ZO,PB,PB,PM,PS,PS,ZO,NS,PM,PM,PM,PS,ZO,NS,NS,PM,PM,PS,ZO,NS,NM,NM,PS,PS,ZO,NS,NS,NM,NM,PS,ZO,NS,NM,NM,NM,NB,ZO,ZO,NM,NM,NM,NB,NB};
const unsigned char KI_table[49]={NB,NB,NM,NM,NS,ZO,ZO,NB,NB,NM,NS,NS,ZO,ZO,NB,NM,NS,NS,ZO,PS,PS,NM,NM,NS,ZO,PS,PM,PM,NM,NS,ZO,PS,PS,PM,PB,ZO,ZO,PS,PS,PM,PB,PB,ZO,ZO,PS,PM,PM,PB,PB};
const unsigned char KD_table[49]={PS,NS,NB,NB,NB,NM,NS,PS,NS,NB,NM,NM,NS,ZO,ZO,NS,NM,NM,NS,NS,ZO,ZO,NS,NS,NS,NS,NS,ZO,ZO,ZO,ZO,ZO,ZO,ZO,ZO,PB,NS,PS,PS,PS,PS,PB,PB,PM,PM,PM,PS,PS,PB};
#pragma data:data    
//設置數據區回到數據儲存器
/*********************************************************

延時函數

*********************************************************/
void delay_us(int time) //微秒級延時
 {
 do
 time--;
 while (time>1);
 }
 void delay_ms(unsigned int time)  //毫秒級延時
 {
 while (time!=0)
   {
   delay_us(1000);
   time--;
   }
 }
 /************************************************************
中斷顯示初始化
TIMER2 initialize - prescale:1024
WGM: Normal
desired value: 10mSec
actual value:  9.984mSec (0.2%)
*************************************************************/
void timer2_init(void) 
{
 TCCR2 = 0x00; //stop
 ASSR  = 0x00; //set async mode
 TCNT2 = 0xB2; //setup
 OCR2  = 0x4E;
 TCCR2 = 0x07; //start
 DDRB=0xff;  //PC口為推挽1輸出
 PORTB=0xff; //PC口內部上拉
 DDRD|=0xf1;
 PORTD&=0x1f;  //關閉LED
}
/***********************************************

中斷顯示

*************************************************/
#pragma interrupt_handler timer2_ovf_isr:5
void timer2_ovf_isr(void)
{
 unsigned char i;
 static unsigned k;
 SEI();
 TCNT2 = 0xB2; //reload counter value
 for(i=0;i<3;i++)
   {
   PORTB=led_buff[i];
   PORTD|=(1<<(i+5));//待顯示的位置1
   delay_ms(1);
   PORTD&=0x1f;     //關閉LED
   }
}
/************************************************************

PWM初始化,OC1A口輸出

*************************************************************/
void timer1_init(void) 
{
 TCCR1B = 0x00; //stop
 TCNT1H = 0x00; //setup
 OCR1A  = 200;
 TCCR1A = (1<<WGM11)|(1<<WGM10)|(1<<COM1A1);//輸出低電平 
 TCCR1B = (1<<CS11)|(1<<CS10); //
}
/*****************************************************

PID初始化

******************************************************/
void pidcalc_init(void)  
{
Kp=3;
Ki=3;
Kd=3;
kk1=0; //當前
kk2=100;
error0=0;
error1=0;
error2=0;
tmp=300;
}
void pidcalc_zizheng(void)
{
if (tmp>adc_rel)
   { 
	if (kk2<500) kk2+=3;
	else kk2=500;
   }
if ((tmp-1)>adc_rel)
   { 
	if (kk2<500) kk2+=3;
	else kk2=500;
   }
/*if ((tmp-2)>adc_rel)
   { 
	if (kk2<600) kk2+=3;
	else kk2=600;
   }*/
if (tmp<adc_rel)
   {
   if (kk2>10) kk2-=3;
   else kk2=10;
   }
if ((tmp+1)<adc_rel)
   {
   if (kk2>10) kk2-=3;
   else kk2=10;
   }
/*if ((tmp+2)<adc_rel)
   {
   if (kk2>10) kk2-=3;
   else kk2=10;
   }
/*if (tmp>adc_rel)
   {
   if (Ki<200) Ki+=4;
   else Ki=400;
   }
if (tmp<adc_rel)
   {
   if (Ki>0) Ki-=4;
   else Ki=0;
   }  */ 
}
/*******************************************************

PID函數

********************************************************/
void pidcalc(void)
{
signed long KPP;
signed long KII;
signed long KDD;
signed int i;
signed char j;
error0=tmp-adc_rel;
j=error0-error1;
i=7*(3+error0)+(3+j);
if(i<49)
    {
     if (i>0)
	    {
		Kp=KP_table[i];
		Ki=KI_table[i];
		Kd=KD_table[i];
		} 
     }                        //輸出	              
if ((tmp-15)<adc_rel)                         //比設定低一定值時開始PID
  {
   if((tmp+5)>adc_rel)                        //比設定高時關PID
       {
       KPP=Kp*(error0-error1);                //比例
       KII=error0*Ki;                         //積分
       KDD=Kd*(error0-(2*error1)+error2);     //微分
       kk1=(KPP+KII+KDD)*4+kk2;  
       if(kk1<0x3ef)
	           {
			   if (kk1>=10) OCR1A=kk1;   
			   else OCR1A=0;                
               }
	   else
	           {   
	            OCR1A=0x3ff;
               }      
			   /*if((tmp-2)>adc_rel)
			        {
			        if(OCR1A<500) OCR1A+=20;
			        else OCR1A=500;
					}*/
	   }
    else 
	   {
	   //if (tmp<adc_rel)
	         // {
	          ///  if (OCR1A>50) OCR1A-=20;
	          //  else OCR1A=50;
	   OCR1A=0;  
	         // }
       }
   }
else
   { 
    OCR1A=0x3ff;
   }
error2=error1;
error1=error0;  
}
/***********************************************

ADC初始化

************************************************/
void adc_init(void)  
 {
 DDRC=0x00;
 PORTC=0X00;
 ADCSRA=0X00;
 ADMUX=(1<<REFS1)|(1<<REFS0)|(adc_mux&0x0f); //選擇內部2.56V為基準AREF外加濾波電容
 ACSR=(1<<ACD);                  //關閉模擬比較器
 ADCSRA=(1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0);//128分頻
 }
 /*********************************************
 
 ADC中斷處理函數
 
 **********************************************/
 #pragma interrupt_handler adc_isr:15
 void adc_isr(void)
 {
 static unsigned i;
 adc_rl+=ADC&0x3ff;
 ADMUX=(1<<REFS1)|(1<<REFS0)|(adc_mux&0x0f); //選擇內部2.56V位基準
 ADCSRA|=(1<<ADSC); //啟動AD轉換   
 if (i<2048)
    i++;
else  
     {
	 adc_rel=adc_rl/2048;
	 adc_rel=adc_rel*3/5;
	 i=0;
	 adc_rl=0;
	 }
 }
 /******************************************************
 
 ADC數據轉壓縮BCD
 
 ******************************************************/
 void ADCtoBCD(unsigned int temp) 
 {
 unsigned char i; 
 for (i=0;i<3;i++)
   {
   led_buff[i]=seg_table[temp%10];/*temp%10求余數‘假設一個數是234那么234/10=23余4也就是查找4的段碼*/
   
   temp=temp/10;// 234/10=23因為不處理小數實際就等于右移了
   }
   
 }
/***************************************************************

主程序

***************************************************************/
 void main(void)
 {
 unsigned char i;
 unsigned int  k;
 unsigned int adc_old;
 unsigned long adc_ol;
 unsigned int adc_o;
 DDRD=0xff;
 PORTD=0xf0;
 OSCCAL=osccal;
 TIMSK = 0x40; //timer interrupt sources
 adc_mux=0;
 adc_init();
 timer1_init();
 pidcalc_init();
 SEI();
 for(i=0;i<3;i++)
   led_buff[i]=seg_table[8];
 for(i=0;i<200;i++)
   timer2_init();
   adc_old=0;
   adc_rel=0;
  while(1)
     {
		if(adc_old!=adc_rel)//ADC更新完畢就執行數據處理
	         {
		      adc_old=adc_rel;
			  pidcalc();
			  pidcalc_zizheng();
			    if(k<5) 
				    {
					k++;
					adc_ol+=adc_old;
					}
				else
				    {
					adc_o=adc_ol/5;
					adc_ol=0;
					k=0;
					}	
			  }  
	    ADCtoBCD(adc_o);  
	 }
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品一区二区三区四区| 91成人免费在线| 石原莉奈一区二区三区在线观看| 国产视频在线观看一区二区三区| 欧美成人在线直播| 欧美人与z0zoxxxx视频| 欧美亚洲精品一区| 欧美三级视频在线播放| 欧美群妇大交群的观看方式| 欧美猛男超大videosgay| 91美女在线观看| 日本精品一级二级| 91国内精品野花午夜精品| 91福利在线播放| 欧美日韩国产高清一区二区 | 精品一区在线看| 精品亚洲aⅴ乱码一区二区三区| 麻豆久久一区二区| 国产在线精品一区二区夜色| 国产九九视频一区二区三区| 不卡高清视频专区| 欧美中文字幕一区二区三区 | 欧美高清在线精品一区| 久久午夜老司机| 国产精品久久久久影视| 亚洲黄色免费电影| 日韩国产精品久久| 国产精品正在播放| av亚洲精华国产精华精| 91色porny蝌蚪| 欧美一区二区黄色| 国产午夜精品久久久久久免费视 | 亚洲综合在线第一页| 亚洲高清视频中文字幕| 精品在线观看视频| 99久久精品99国产精品| 欧美精品视频www在线观看| 精品国内片67194| 亚洲素人一区二区| 日韩精品一区第一页| 国产精品亚洲午夜一区二区三区| 色哟哟国产精品免费观看| 日韩欧美一区二区在线视频| 国产精品免费看片| 日韩avvvv在线播放| 成人黄页毛片网站| 日韩一级免费观看| 亚洲精品日产精品乱码不卡| 黄色成人免费在线| 欧美在线不卡一区| 日本一区二区成人在线| 免费在线观看成人| 91小视频免费观看| 精品人伦一区二区色婷婷| 亚洲激情中文1区| 成人午夜电影久久影院| 日韩一二三区不卡| 亚洲精品日日夜夜| 成人性色生活片| 精品欧美一区二区三区精品久久| 伊人一区二区三区| 成人av在线电影| 国产丝袜在线精品| 激情五月婷婷综合| 日韩欧美亚洲国产另类 | 欧美一区二区二区| 一区二区三区色| av在线不卡电影| 久久亚洲精华国产精华液 | 国产精品美女久久久久久| 久久精工是国产品牌吗| 欧美日韩国产首页| 亚洲图片欧美综合| 精品国产凹凸成av人网站| 亚洲图片欧美色图| 在线国产电影不卡| 亚洲人成伊人成综合网小说| 成人av电影在线观看| 国产欧美日韩卡一| 高清不卡一区二区在线| 久久久电影一区二区三区| 精品午夜一区二区三区在线观看| 欧美一区二区三区不卡| 日本不卡一区二区三区| 欧美精品黑人性xxxx| 亚洲亚洲人成综合网络| 在线观看精品一区| 性做久久久久久久免费看| 欧美日韩成人一区| 麻豆一区二区99久久久久| 日韩欧美高清在线| 免费不卡在线视频| 日本不卡一区二区三区| 成人a区在线观看| 亚洲色图在线播放| 欧洲色大大久久| 日韩制服丝袜先锋影音| 日韩欧美的一区二区| 成人做爰69片免费看网站| 亚洲欧洲日韩综合一区二区| 欧美最猛性xxxxx直播| 麻豆一区二区在线| 国产精品女人毛片| 欧美亚洲一区三区| 久久国产尿小便嘘嘘尿| 久久精品亚洲麻豆av一区二区| 99精品视频一区| 亚洲成人免费看| 久久这里只有精品首页| 色综合久久99| 麻豆精品一区二区三区| 国产精品卡一卡二卡三| 欧美日韩激情一区| 国产精品888| 亚洲va天堂va国产va久| 国产欧美日韩综合精品一区二区| 色综合久久综合网欧美综合网| 另类小说综合欧美亚洲| 亚洲视频一区在线| 欧美岛国在线观看| 欧美一级黄色录像| 丰满少妇在线播放bd日韩电影| 一区二区三区国产精品| 久久免费国产精品| 欧美日韩国产bt| 不卡高清视频专区| 久久精工是国产品牌吗| 亚洲一区成人在线| 国产精品妹子av| 精品国内片67194| 欧美顶级少妇做爰| 色94色欧美sute亚洲线路一久| 麻豆国产91在线播放| 亚洲国产一区二区视频| 国产精品久久久久久久久久久免费看 | 美女高潮久久久| 亚洲欧美一区二区三区国产精品| www久久久久| 欧美肥妇毛茸茸| 欧美撒尿777hd撒尿| 成人免费视频视频在线观看免费 | 欧美激情资源网| 欧美一区二区三区白人| 欧美三级乱人伦电影| av高清久久久| 成人午夜视频在线观看| 国产很黄免费观看久久| 青青草伊人久久| 日韩国产一二三区| 亚洲综合一二区| 亚洲午夜精品网| 亚洲国产精品久久久男人的天堂| 亚洲欧洲精品天堂一级| 亚洲国产岛国毛片在线| 久久久国产一区二区三区四区小说 | 日韩美女久久久| 日韩理论片网站| 亚洲美女在线一区| 自拍偷拍欧美激情| 亚洲精品日日夜夜| 亚洲综合色婷婷| 亚洲va欧美va人人爽| 亚洲大型综合色站| 亚洲成人先锋电影| 石原莉奈在线亚洲三区| 捆绑调教一区二区三区| 精品无人区卡一卡二卡三乱码免费卡 | 精品系列免费在线观看| 国产在线精品一区二区夜色| 国产精品一区2区| 成人免费视频视频在线观看免费| 成人app软件下载大全免费| 不卡一区中文字幕| 日本伦理一区二区| 555夜色666亚洲国产免| 欧美v亚洲v综合ⅴ国产v| 精品国产不卡一区二区三区| 中文字幕欧美日本乱码一线二线| 亚洲天堂成人在线观看| 亚洲一二三四久久| 免费久久99精品国产| 国产一区二区在线免费观看| www.亚洲国产| 欧美日韩国产高清一区| 久久久99精品免费观看| 18成人在线视频| 偷拍一区二区三区| 国产真实乱对白精彩久久| 91一区二区在线观看| 欧美一区二区大片| 中文字幕在线不卡国产视频| 亚洲国产欧美另类丝袜| 国精产品一区一区三区mba桃花 | 爽好多水快深点欧美视频| 久久福利资源站| 91色.com| 久久噜噜亚洲综合| 亚洲五码中文字幕| 国产成人免费视频网站| 欧美美女一区二区|