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

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

?? mega48-1.c

?? 采用ATMEGA48設計制作低成本高精度的數字溫度計
?? C
字號:
#include <iom48v.h> 
#include <macros.h> 
#define uchar unsigned char
#define uint unsigned int
#define LED_NUM    PORTD
#define LED_VALUE  PORTB
#define key_set (PIND&0x02)  
#define key_up (PIND&0x04)
#define key_down (PIND&0x08)
//Pc2、Pc3、Pc4為set,up,down鍵
/***********************溫度表 -50 度到 110 度*****************************/
const uint  v_table[161]={
154,163,173,182,193,203,214,226,238,251,            //-50---- -41
264,278,292,308,323,340,357,374,392,411,            //-40---- -31
431,452,473,495,518,542,566,591,617,643,            //-30---- -21
671,699,729,759,790,821,854,887,921,956,            //-20---- -11
991,1028,1066,1104,1143,1182,1223,1264,1305,1347,   //-10---- -1
1390,1433,1478,1522,1567,1613,1659,1705,1751,1798,  //0---- 9
1845,1893,1940,1989,2036,2084,2132,2180,2228,2277,  //10---- 19
2324,2372,2419,2467,2514,2561,2608,2654,2700,2746,  //20---- 29
2791,2836,2880,2924,2967,3010,3053,3094,3135,3176,  //30---- 39
3216,3255,3294,3332,3370,3407,3443,3478,3513,3548,  //40---- 49
3581,3614,3647,3679,3710,3740,3770,3799,3828,3856,  //50---- 59
3883,3910,3936,3962,3987,4011,4035,4058,4081,4103,  //60---- 69
4125,4146,4167,4187,4207,4226,4244,4263,4280,4298,  //70---- 79
4315,4331,4347,4363,4378,4393,4407,4422,4436,4449,  //80---- 89
4462,4475,4487,4499,4511,4523,4534,4545,4556,4566,  //90---- 99
4576,4586,4595,4605,4614,4623,4631,4640,4648,4656,  //100--- 109
4664,} ;                                             //110
/*****************************************************************************/
//共陰數碼管"0~9",
uchar dis_1[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};
//"熄滅","-"(負號),"-","_","Y","H","C"字段碼
uchar dis_2[7]={0x00,0x40,0x01,0x08,0x6e,0x76,0x39};
uchar Data[3]={0,0,0}; //顯示緩沖數據
uint  v=0,dis_v,bh_v,dis_v_1;//實時溫度值, 顯示用的溫度值
uchar hot_warning[2]={0x00,0x00};//制熱模式限定值、制冷模式限定值
uchar cool_delay = 0;    //壓縮機停機再開機延時時間
uchar setting_mode = 0;  //溫度控制器模式,0x6e:制熱模式;0x76:制冷模式,
uchar Write_EEPROMData[5]={0,0,0,0,0};//設定數值寫到EEPROM數據緩沖
uchar Read_EEPROMData[5]={0,0,0,0,0};//從EEPROM讀設定數值到緩沖
//數據為:制熱模式限定值、制冷模式限定值、壓縮機延時開機時間、工作模式、溫度校正

uchar flag=1,nc_flag=0,no_flag=0;  //負號標志位,傳感器斷線標志位,傳感器短路標志位
uchar CNT=0;    //延時AD
uchar CNT_PV;     //連續采樣8次后取平均
/*****************************************************************************/
//函數名	:DelayMs
//屬性		:私有
//功能		:延時
//輸入參數	:無
//輸出參數	:無
//返回值	:
//修改日期	:2007.1.2
//修改人	:mengxy
/*****************************************************************************/
void DelayMs(uint i)            
{uint j;
  for(;i!=0;i--)
   {for (j=500;j!=0;j--)          //延時1ms
   {
    //WDR();//復位看門狗
   }
   }
}
/*****************************************************************************/
//函數名	:WDT_off
//屬性		:私有
//功能		:關閉看門狗
//輸入參數	:無
//輸出參數	:無
//返回值	:
//修改日期	:2007.1.2
//修改人	:mengxy
/*****************************************************************************/
void WDT_off(void)
{
   /* 置位 WDTOE 和WDE */ 
   WDTCSR = (1<<WDCE) | (1<<WDE); 
   /* 關閉WDT */ 
   WDTCSR = 0x00; 
}
/*****************************************************************************/
//函數名	:port_init
//屬性		:私有
//功能		:機器初始化
//輸入參數	:無
//輸出參數	:無
//返回值	:
//修改日期	:
//修改人	:
/*****************************************************************************/
void port_init(void)
{    CLI();          //關中斷
    MCUSR=0xf7;  //關看門狗 
    WDT_off();    
	CLKPR = 0x80;
    CLKPR = 0x00;   //時鐘分頻因子為1	
	DDRB = 0xff;    //數碼管段驅動
	PORTB = 0xff;
//將PC0、PC1、PC2、PC3定義為輸入,不帶上拉電阻
    DDRC=0x00; //
    PORTC=0x00; // 將 PORT 置0,沒有上拉電阻
	DDRD = 0x0f;    //PD0.1.2 位驅動,PD5.6.7鍵盤輸入
	PORTD = 0x0f;
	
}
/*****************************************************************************/
//函數名	:ceshi_led
//屬性		:私有
//功能		:機器初始化,測試數碼管,全亮
//輸入參數	:無
//輸出參數	:無
//返回值	:
//修改日期	:
//修改人	:
/*****************************************************************************/
void ceshi_led(void)
{
   PORTD=0x07;  //打開低三位   開機初始化畫面顯示
   PORTB=0x00;   //測試數碼管
   DelayMs(500);
   PORTB=0xff;  
   DelayMs(500);
}
/*****************************************************************************/
//函數名	:AdcConvert
//屬性		:私有
//功能		:開始AD轉換
//輸入參數	:無
//輸出參數	:無
//返回值	:
//修改日期	:2007.1.2
//修改人	:mengxy
/*****************************************************************************/

void get_adc_value(uchar adc_pin)          //開始AD轉換,單次轉換
{  
    CLI();
	ADMUX = (1<<REFS0)|(0<<REFS1)|adc_pin; //參考電壓源選擇AVCC
	ADCSRA = (1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
	SEI();		    //開中斷
	{
	ADCSRA |= (1<<ADSC);         //開始AD
	DelayMs(1); 
	//ADCSRA &= ~(1<<ADSC); 
	
    }
 
}
/*****************************************************************************/
//函數名	:adc_isr
//屬性		:中斷
//功能		:獲取AD轉換結果
//輸入參數	:無
//輸出參數	:無
//返回值	:
//修改日期	:2007.1.2
//修改人	:mengxy
/*****************************************************************************/

#pragma interrupt_handler adc_isr:iv_ADC
void adc_isr(void)          //AD轉換 計算結果,以查表方便,獲取的數值直接查表
{    uint temp,temp1,temp2,temp3;
 	 temp1 = (uint)ADCL;
	 temp2 = (uint)ADCH;
	 temp3=(temp2<<8)+temp1;
	 v = (49*temp3)/10;
	
      ADCSRA = (1<<ADEN);
	  CLI();
}
/*****************************************************************************/
//函數名	:get_degree
//屬性		:私有
//功能		:查表
//輸入參數	:v
//輸出參數	:v
//返回值	:v
//修改日期	:2007.1.2
//修改人	:mengxy
/*****************************************************************************/
uint get_degree(void)
{
	uchar x,y;
	uint v_big,v_small,v_step;	
	if (v<100)   /////傳感器斷線AD為0v
	{
	 nc_flag=1;   
	}
	if (v>4800)  /////傳感器短路,AD為5v
	{
	 no_flag=1;   
	}
    if(v>100&v<4800)    ///傳感器正常,斷線\短路標志為0
	{
	 nc_flag=0;
	 no_flag=0;
	}
	for (x=0;x<161;x++) //查表  161個數據
	{
		if (v_table[x] >= v) // 找出電壓區域
		{           
		    v_big = v_table[x]; // 區域高段
			v_small = v_table[x-1]; //區域低段
			v_step = (v_big - v_small)/10; //把區域細分成10份
			for (y=0;y<10;y++) // 細分比較
			{
				v_small += v_step;
				if(v < v_small)
				{bh_v=y;}             //溫度變化值bh_v。
			}
				
				
					v=x;
					if (x<=49) // 少于51為負溫度
					{
						v = 50-v; //加入負號標記
						flag=0;
					}
					else
					{
						v =v-51; //0度修正
						flag=1;
					}
   				    return v;  
			
		};
		
	}  
  return v; 	
}

/*****************************************************************************/
//函數名	:JS_AD_display
//屬性		:私有
//功能		:AD數值的顯示
//輸入參數	:dis_v
//輸出參數	:Data[]  顯示緩沖區的數值
//返回值	:
//修改日期	:2007.1.3
//修改人	:mengxy
/*****************************************************************************/
void JS_AD_display(void)
{ 
 uchar tempData[3];
 tempData[2]=dis_v/100;   //百位
 tempData[1]=dis_v%100/10;//十位
 tempData[0]=dis_v%10;    //個位
 Data[2]=dis_1[tempData[2]];
 Data[1]=dis_1[tempData[1]];
 Data[0]=dis_1[tempData[0]];
 if(tempData[2]==0)
  {Data[2]=0x00;          //百位為0,不顯示
    if(tempData[1]==0)
    {Data[1]=0x00;}          //十位也為零,不顯示
   }
 if(flag==0)
 {
  Data[2]=0x40;    //負號標志為0,顯示負號
 }
 if(nc_flag==1)
 {Data[2]=0x40;Data[1]=0x40;Data[0]=0x40;}//斷線顯示:---
 if(no_flag==1)
 {Data[2]=0x39;Data[1]=0x39;Data[0]=0x39;}//短路顯示:CCC
}

/*****************************************************************************/
//函數名	:AD_display
//屬性		:私有
//功能		:AD數值的顯示,顯示的時候,刷新AD 數值
//輸入參數	:Data[]
//輸出參數	:
//返回值	:
//修改日期	:2007.1.3
//修改人	:mengxy
/*****************************************************************************/
void AD_display(void)
{
 uchar i,sel=0x01,ii=0;
 uchar CNT1;
 for(i=0;i<3;i++)
   {
    LED_NUM=sel;   //打開相應的位
   if((dis_v>=20)||(flag==0))    //超溫報警,低溫報警
	{
	 LED_NUM|=0x08;   //打開PD3
	}
    LED_VALUE=~Data[i];   //共陽數碼管,共陰的則~sel,Data[i]
    DelayMs(1);
    sel=sel<<1;
   }
//////顯示的時候,刷新AD 數值

  CNT++; 


}
/*****************************************************************************/
//函數名	:pj_v
//屬性		:私有
//功能		:進行AD計算
//輸入參數	:CNT,get_adc_value(0);get_degree(); 
//輸出參數	:
//返回值	:
//修改日期	:2007.1.3
//修改人	:mengxy
/*****************************************************************************/
void pj_v(void)
{
  if (CNT==100)
  {
   CNT=0;
   //////////////////////////////////////
    // CLI();          //關中斷
	//ADMUX = (1<<REFS0);	//AVCC, AREF 引腳外加濾波電容,
	//ADCSRA = (1<<ADEN)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
	//ADEN置位即啟動ADC,ADIF: ADC 中斷標志,64分頻
   //SEI();		    //開中斷
////////////////////////////////////
   get_adc_value(0); //進行ADC取樣,通道0
   DelayMs(1);   //延時,AD中斷
   get_degree(); //查表    
 // if((bh_v>1)& (bh_en=1))  // 溫度變化超過0.5度并且bh_en置位,就傳遞
   dis_v_1=dis_v;     // 傳遞給顯示,精度整定時,bh_en=0,出廠時設置bh_en=1
   dis_v=(v+dis_v_1)/2;//本次數值和上次數值平均
  }
}
/*****************************************************************************/
//函數名	:main
//屬性		:私有
//功能		:主函數
//輸入參數	:port_init();Get_AD();JS_AD_display();AD_display();
//輸出參數	:
//返回值	:
//修改日期	:2007.1.3
//修改人	:mengxy
/*****************************************************************************/
void main(void)
{
 port_init();     //初始化
 ceshi_led();     //測試數碼管
 while(1)  
   {   
  AD_display();    //顯示
  pj_v();
  JS_AD_display(); //對AD計算,獲取顯示數據
  }
}
/*****************************************************************************/




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜免费视频| 国产91高潮流白浆在线麻豆| 激情五月激情综合网| 成人va在线观看| 精品久久久久一区| 亚洲福利电影网| av成人老司机| 国产日韩在线不卡| 久久精品国产一区二区三| 欧美午夜一区二区| 亚洲男同性视频| 丁香一区二区三区| 久久亚洲综合色一区二区三区| 亚洲第一狼人社区| 色婷婷综合久久久久中文一区二区| 国产日产欧美一区| 精品一区二区日韩| 精品毛片乱码1区2区3区| 亚洲综合清纯丝袜自拍| 色94色欧美sute亚洲线路二 | 色欧美日韩亚洲| 国产精品三级久久久久三级| 国产一区二区三区免费| 欧美不卡一区二区三区四区| 免费高清不卡av| 成人app在线| 日韩精品一区二区三区三区免费| 欧美极品美女视频| 久久99精品久久久久久国产越南 | 亚洲欧美日韩电影| 成人高清av在线| 国产精品美女一区二区在线观看| 国产精品99久| 国产精品狼人久久影院观看方式| 国产精品一区二区视频| 国产视频视频一区| 成人午夜av影视| 亚洲婷婷在线视频| 在线一区二区三区四区五区| 亚洲国产精品视频| 亚洲精品一区二区精华| 国产精品福利一区二区| 成人综合婷婷国产精品久久免费| 久久久久88色偷偷免费 | 一区二区三区在线视频播放| 日本精品免费观看高清观看| 一区二区三区国产豹纹内裤在线| 色婷婷综合久久久| 日韩和欧美一区二区| 日韩视频一区二区三区| 国产美女av一区二区三区| 欧美高清一级片在线观看| 成人av网站免费观看| 一区二区三区在线免费视频| 欧美片网站yy| 激情欧美日韩一区二区| 日韩一区在线看| 欧美日韩你懂的| 久久精品久久久精品美女| 欧美极品另类videosde| 在线视频中文字幕一区二区| 美女一区二区视频| 欧美国产一区二区在线观看| 在线影视一区二区三区| 精品中文字幕一区二区小辣椒| 国产欧美视频一区二区三区| 欧美性一区二区| 国产一区二区三区日韩| 亚洲在线成人精品| 久久久三级国产网站| 91高清视频在线| 韩国成人福利片在线播放| 亚洲精品国产视频| 久久综合久色欧美综合狠狠| 91成人国产精品| 国产综合色在线视频区| 午夜欧美一区二区三区在线播放| 国产亚洲自拍一区| 欧美剧在线免费观看网站| 大白屁股一区二区视频| 日韩高清在线一区| 一区二区三区在线看| 久久久久久久久99精品| 欧美久久久久久久久| 成人app软件下载大全免费| 日韩 欧美一区二区三区| 日韩一区欧美一区| 国产欧美日韩在线| 日韩午夜小视频| 精品视频999| 一本色道久久加勒比精品| 国产精品一二二区| 九九精品视频在线看| 性做久久久久久| 亚洲欧美一区二区三区孕妇| 久久蜜桃av一区精品变态类天堂 | 成人黄色av电影| 久久精品二区亚洲w码| 亚洲高清久久久| 一区二区三区四区蜜桃 | 日韩欧美视频一区| 在线视频国产一区| 色综合咪咪久久| 成人sese在线| 成人动漫在线一区| 成人精品小蝌蚪| 国产精品一区三区| 国产精品白丝jk黑袜喷水| 久久草av在线| 久久激五月天综合精品| 美女精品一区二区| 美腿丝袜在线亚洲一区 | 欧美美女黄视频| 欧美视频一区二区三区四区| 在线免费观看日韩欧美| 91福利视频在线| 欧美性感一区二区三区| 欧美性色欧美a在线播放| 91黄色激情网站| 在线精品视频免费播放| 欧美日韩精品一区二区三区四区| 欧美色窝79yyyycom| 欧美美女网站色| 日韩精品资源二区在线| 国产亚洲一区二区三区| 久久精品一二三| 亚洲欧美综合在线精品| 一区二区久久久| 婷婷国产在线综合| 日本乱人伦一区| 欧美日本韩国一区| 日韩欧美一级特黄在线播放| 久久久噜噜噜久久中文字幕色伊伊| 久久久久久一级片| 亚洲色图在线播放| 亚洲第一久久影院| 美国一区二区三区在线播放| 国产jizzjizz一区二区| 91亚洲大成网污www| 欧美日韩一区小说| 久久这里只有精品6| 中文字幕欧美区| 亚洲va韩国va欧美va精品| 麻豆成人在线观看| 不卡av在线网| 欧美久久久一区| 国产女人aaa级久久久级| 亚洲欧美日韩一区二区| 蜜臀av在线播放一区二区三区| 国产一区二区在线视频| 一本色道久久综合精品竹菊| 欧美一区二区三区爱爱| 国产精品国产精品国产专区不蜜 | 国产成都精品91一区二区三| 日本精品免费观看高清观看| 欧美成人精品1314www| 亚洲欧洲三级电影| 免费观看91视频大全| 99在线热播精品免费| 欧美一区二区三区白人| 成人欧美一区二区三区| 久久精品久久久精品美女| 色综合久久久网| 久久久久久久久久久久久女国产乱| 亚洲最大成人网4388xx| 国产一区二区三区观看| 欧美日韩一级黄| 亚洲人一二三区| 国产精品一二二区| 日韩欧美国产1| 午夜久久久久久电影| 色综合网站在线| 国产女人aaa级久久久级| 蜜臀久久99精品久久久久久9| 91福利在线导航| 1区2区3区欧美| 成人黄色av电影| 国产午夜精品一区二区| 男女性色大片免费观看一区二区| 日本韩国一区二区三区视频| 中文字幕免费一区| 国产真实乱对白精彩久久| 欧美夫妻性生活| 亚洲午夜久久久久久久久电影院| 风流少妇一区二区| 久久精品人人做人人综合| 日本免费新一区视频| 欧美日韩激情一区二区三区| 亚洲激情综合网| 色狠狠桃花综合| 综合久久久久综合| 99久久精品国产观看| 国产精品日韩精品欧美在线| 成人一区二区视频| 国产欧美精品一区| 国产99精品视频| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 久久久精品tv| 免费成人在线视频观看| 欧美一区二区三区思思人|