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

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

?? main__.c

?? 基于AVR單片機(jī)
?? C
字號:
#include <mega16.h>
#include <delay.h>
#include <1820.h>
/**************************************************************
timeset-----------------PD2
temperature-------------PD3
hour--------------------PD4
miniute-----------------PD5
**************************************************************/
//time[0]--------HOURS
//time[1]--------miniutes
//temperature[0]---溫度百位
//temperature[1]---溫度十位
//temperature[2]---溫度個位 
#define TEMPERATURE_SET  1
#define TIME_SET         2
#define RUN              3
#define time_page        1
#define T_page           2
flash  unsigned char led_7[10]={0,0,0,0,0,0,0};
flash  unsigned char position[4]={0,0,0,0};
unsigned char T;
unsigned char timeMAX;
unsigned char TMAX;
unsigned char time[3]={0,0,0};
unsigned char time_v=0;
unsigned char posit;
unsigned char temperature[4]={0,0,0,0};
unsigned char dis_buff[4]={0,0,0,0}; 
unsigned char mode;
int time_counter=0;
bit time_10s_ok=0;
bit time_1s_ok=0;
bit time_control_flag=0;
bit point_on=0;
bit T_control_flag=0;
bit time_dis_flag=1;
unsigned char get_temperature(void);
void stop_fan(void);
void time_to_disbuffer (void);
void display(unsigned char page);
unsigned char get_temperature()
{       
                unsigned int i;
                unsigned char j;
                ds1820_reset();						/*復(fù)位D18B20*/
	        ds1820_start();					/*啟動一次轉(zhuǎn)換*/
		delay_ms(1000);							/*等待轉(zhuǎn)換結(jié)束*/
		i = ds1820_read_temp();			       				/*讀取溫度數(shù)值*/  		                
                i = (i * 10) / 16;
                j=(unsigned char )i/10;	                
		 		/*將顯示信息加載到顯示緩存區(qū)*/	
		temperature[0] = (char)(i /1000); //十位 			
		temperature[1] = (char)(i %1000/ 100); //十位		
		temperature[2] = (char)(i %100/ 10);//個位
		temperature[3] = (char)(i % 10);   //小數(shù)位
		return j; 
}

void main (void )
{
   unsigned char  buttons     = 0;
   unsigned char  buttons2    = 0;
   while( 1 )//功能鍵連接端口
   {
      buttons =  PIND  & 0x3C;  
      delay_ms(10);
      buttons2 =  PIND  & 0x3C;		
      if( ( buttons == buttons2 ) && ( buttons != 0x3C ) )
      { 
          while( ( PIND  & 0xF0 ) != 0x3C ); // wait for button release 
         switch( buttons )
         {
           case 0x38  :             //PD2按下timeset
           if(mode==TIME_SET)
             {
              time_control_flag=1;
              mode=TEMPERATURE_SET;
             }
           else if (mode==RUN)
           {
                   if(time_control_flag)
                   {
                    #asm("cli");
                    time_control_flag=0;
                    time_v=0;
                    time[0]=0;
                    time[1]=0;
                    time[2]=0;
                    dis_buff[0]=0;
                    dis_buff[1]=0;
                    dis_buff[2]=0;
                    dis_buff[3]=0;
                    }
                    else
                     mode=TIME_SET;
           }         
           break;
           
           case 0x34 :                         //PD3  溫度設(shè)定temperature_set
           if (mode==TEMPERATURE_SET)
            {
             T_control_flag=1;
             TMAX=temperature[1]*10+temperature[2];         
             mode=RUN; 
            }
             else if(mode==RUN)
              {
                 if(T_control_flag)
                 {
                  T_control_flag=0;
                 }
                  else
                   mode=TEMPERATURE_SET;
              }
           break;
           
           case 0x2C :                     //PD4時間‘時’設(shè)定
           if (mode==TIME_SET)
              {
               time[0]++;
               if (time[0]>24)
                 time[0]=0;
               time_to_disbuffer();
              }
           else if (mode==TEMPERATURE_SET)
                  {
                   temperature[1]++;
                   if(temperature[1]>9)
                     temperature[1]=0;
                   }
                   else //mode==RUN
                       time_dis_flag=1;
           break;
           
           case 0x1C :                    //PD5時間‘分’設(shè)定
           if (mode==TIME_SET)
              {
               time[1]++;
               if (time[1]>60)
                 time[1]=0;
                 time_to_disbuffer();
              }
           else if (mode==TEMPERATURE_SET)
                  {
                   temperature[2]++;
                   if(temperature[2]>9)
                     temperature[2]=0;
                   } 
                   else //mode==RUN
                       time_dis_flag=0; 
           break;
           default : break;
         }
       }      
//每10S檢測一次溫度,若溫度低于設(shè)定值就關(guān)閉風(fēng)扇
//溫度控制一直有,要是不想溫度控制,可以把溫度下限設(shè)置很高,比如50度       
          if(time_10s_ok)
          { 
           time_10s_ok=0;
           T=get_temperature();
           if(T_control_flag)
           {
            if (T<TMAX)
              {
               #asm("cli");
               stop_fan();
              }
            }
          }      
 //檢測時間,如果時間超過定時上限,就關(guān)閉風(fēng)扇。由于定時功能可有可沒有,
 //所以要檢測定時標(biāo)志位      
        if(time_control_flag)
        { 
         if( time_v>timeMAX)
          { 
            #asm("cli");
            stop_fan();
          } 
         }
   }
} 
void time_to_disbuffer (void)
{
   dis_buff[0]=time[0]/10;
   dis_buff[1]=time[0]%10;
   dis_buff[2]=time[1]/10;
   dis_buff[3]=time[1]%10;
}
void stop_fan(void)
{
  PORTD&=~0x80; 
}  
interrupt [TIM0_COMP] void timer0_comp_isr (void)
{     //2ms計時器
         if(time_dis_flag)
          display(time_page);
          else 
            display(T_page);        
          if (++time_counter>=500)  //1s 
              {
             time_counter=0;
             time_1s_ok=1;                       
                   if (++time[2] >=60) 
                   { 
                   time[2]=0;
                     if (++time[1] >=60) //time 1 是分
                        {
                         time[1]=0;
                             if (++time[2] >=99)
                                time[1]=0;
                         }
                   }
               }
}

void display(unsigned char page)
{
  
    PORTC=0xff;
    if(page==time_page)
     { 
       PORTA=led_7[dis_buff[posit]];
       if(point_on&&posit==1)     PORTA|=0x80; 
     }
    else if(page==T_page )
         { 
           PORTA=led_7[temperature[posit]];
           if(posit==1)     PORTA|=0x80;
         } 
      PORTC=position[posit];
     if(++posit>=4)    posit=0;
}  
#include <mega16.h>
#define PD6 6
#define DQ_IN	DDRD &= ~(1 << PD6)		/*設(shè)置輸入*/
#define DQ_OUT	DDRD |= (1 << PD6)		/*設(shè)置輸出*/
#define DQ_CLR	PORTD &= ~(1 << PD6)	/*置低電平*/
#define DQ_SET	PORTD |= (1 << PD6)		/*置高電平*/
#define DQ_R	PIND & (1 << PD6)		/*讀了電平*/
unsigned char flag;						/*中斷標(biāo)志緩存*/
/*
延時函數(shù)
延時時間:10um
CPU頻率為:4MHz。
*/      
void delay_2us(void)
{  #asm("NOP");
   return;
}       
void delay_10us(unsigned char i) {

	 unsigned char j;
	
	while (i--) {   
	      j=5;
	      while(j--);	      	      		
		}
}
/*DS18B20復(fù)位函數(shù)*/
unsigned char ds1820_reset(void) {

	unsigned char i;
	flag = SREG;				/*中斷保護(hù)*/
	#asm("cli")						/*關(guān)中斷*/
	DQ_OUT;
	DQ_CLR;
	delay_10us(50);				/*延時500uS(480-960)*/
	DQ_SET;
	DQ_IN;
	delay_10us(8);				/*延時80uS*/
	i = DQ_R;
	delay_10us(50);				/*延時500uS(保持>480uS)*/
	if (flag & 0x80) {			/*恢復(fù)中斷狀態(tài)*/
		#asm("sei")
		}
	if (i) {
	  	return 0x00;
	 	}
	else {
		return 0x01;
		}
}
/*DS18B20字節(jié)讀取函數(shù)*/
unsigned char ds1820_read_byte(void) {
	unsigned char i;
	unsigned char value = 0;
	flag = SREG;				/*中斷保護(hù)*/
	#asm("cli")						/*關(guān)中斷*/
	for (i = 8; i != 0; i--) {
		value >>= 1;
		DQ_OUT;
		DQ_CLR;
		delay_2us();					/*延時4uS*/
		delay_2us();
		
		DQ_SET;
		DQ_IN;
		delay_10us(1);					/*延時10uS*/
		if (DQ_R) {
			value|=0x80;
			}
		delay_10us(6);			/*延時60uS*/
		}
	if (flag & 0x80) {			/*恢復(fù)中斷狀態(tài)*/
		#asm("sei")
		}
	return(value);
}
/*DS18B20字節(jié)寫入函數(shù)*/
void ds1820_write_byte(unsigned char value) {

	unsigned char i;
	flag = SREG;				/*中斷保護(hù)*/
	#asm("cli")						/*關(guān)中斷*/
	for (i = 8; i != 0; i--) {
		DQ_OUT;
		DQ_CLR;
		delay_2us();					/*延時4uS*/
		delay_2us();
		if (value & 0x01) {
			DQ_SET;
			}
		delay_10us(8);			/*延時80uS*/
		DQ_SET;					/*位結(jié)束*/
		value >>= 1;
		}
	if (flag & 0x80) {			/*恢復(fù)中斷狀態(tài)*/
		#asm("sei")
		}
}
/*啟動ds1820轉(zhuǎn)換*/
void ds1820_start(void) {

	ds1820_reset();
	ds1820_write_byte(0xCC);	/*勿略地址*/
	ds1820_write_byte(0x44);	/*啟動轉(zhuǎn)換*/
}
/*DS8B20讀取溫度信息*/
unsigned int ds1820_read_temp(void) 
{
	unsigned int i;
	unsigned char buf[9];
	ds1820_reset();
	ds1820_write_byte(0xCC);	/*勿略地址*/
	ds1820_write_byte(0xBE);	/*讀取溫度*/
	for (i = 0; i < 9; i++) {
		buf[i] = ds1820_read_byte();
		}
	i = buf[1];
	i <<= 8;
	i |= buf[0];	
	return i;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区黄色| 国产乱妇无码大片在线观看| 久久亚洲精精品中文字幕早川悠里| 欧美日韩视频不卡| 91九色最新地址| 日本高清无吗v一区| 色综合色综合色综合| 在线免费观看不卡av| 色一区在线观看| 欧美在线播放高清精品| 在线视频国内一区二区| 制服丝袜中文字幕亚洲| 欧美电影免费观看高清完整版在线观看| 欧美一卡2卡3卡4卡| 26uuu欧美| 国产精品免费网站在线观看| 亚洲欧美aⅴ...| 日日夜夜精品视频免费| 久久成人免费网| 成人午夜精品在线| 欧美日韩一区二区三区四区| 欧美一级欧美三级| 中文字幕av一区二区三区 | 免费高清不卡av| 久久成人免费网| 91丨国产丨九色丨pron| 在线综合亚洲欧美在线视频| 国产午夜精品美女毛片视频| 日韩理论片中文av| 亚洲妇熟xx妇色黄| 国产精品一区二区你懂的| 色88888久久久久久影院野外| 欧美一级欧美一级在线播放| 国产精品久久久久精k8 | 久久久国产精华| 亚洲免费电影在线| 久久99热这里只有精品| 91啪九色porn原创视频在线观看| 91精品国产综合久久久久久| 日本一区二区电影| 美女任你摸久久| 色av综合在线| 国产亚洲一区字幕| 免费视频一区二区| 97精品超碰一区二区三区| 日韩欧美一区二区不卡| 国产精品美女久久久久aⅴ国产馆| 亚洲国产精品精华液网站| 丁香婷婷综合激情五月色| 在线综合视频播放| 亚洲综合久久av| 国产91精品免费| 欧美大片免费久久精品三p| 亚洲一区二区在线播放相泽| 成人激情开心网| 久久久久久久久久久久久久久99 | 亚洲女人小视频在线观看| 国产在线视频不卡二| 欧美一区二区三区人| 午夜视频在线观看一区二区 | 国产在线看一区| 欧美电视剧免费观看| 日本网站在线观看一区二区三区| 94-欧美-setu| 日本成人在线视频网站| 91免费版在线看| 国产精品沙发午睡系列990531| 国产在线精品一区二区| 日韩欧美成人激情| 久久激情五月婷婷| 欧美岛国在线观看| 久久99精品国产麻豆不卡| 欧美videos中文字幕| 美腿丝袜亚洲综合| 精品国产露脸精彩对白| 国内精品嫩模私拍在线| 久久这里只有精品6| 国产精品自产自拍| 国产欧美视频在线观看| 粉嫩av一区二区三区在线播放| 国产欧美日韩三级| 91影院在线免费观看| 亚洲综合色成人| 欧美一区二区女人| 九九久久精品视频| 欧美高清在线精品一区| 91农村精品一区二区在线| 亚洲精品国产成人久久av盗摄| 91久久精品一区二区三| 日本美女一区二区| 日韩美一区二区三区| 岛国精品一区二区| 亚洲综合丁香婷婷六月香| 欧美老女人第四色| 国内成人精品2018免费看| 国产精品国产成人国产三级| 在线一区二区三区四区五区| 天涯成人国产亚洲精品一区av| 欧美不卡一区二区三区四区| 国产一区二区三区高清播放| 亚洲国产精品成人综合色在线婷婷| 91在线视频免费观看| 日本aⅴ精品一区二区三区| 久久综合久久综合亚洲| 91蜜桃视频在线| 蜜臀精品一区二区三区在线观看| 国产精品网站在线播放| 欧美日韩免费不卡视频一区二区三区 | 中文字幕视频一区| 欧美一区日本一区韩国一区| 成人免费电影视频| 日本成人在线一区| 最近日韩中文字幕| 欧美α欧美αv大片| 91国偷自产一区二区三区成为亚洲经典| 日韩激情av在线| 亚洲情趣在线观看| 亚洲精品一区二区三区99| 欧美伊人久久久久久久久影院| 久久激情五月激情| 婷婷综合久久一区二区三区| 国产精品护士白丝一区av| 日韩欧美中文字幕一区| 色综合久久天天综合网| 国产盗摄精品一区二区三区在线 | 97se亚洲国产综合在线| 国模冰冰炮一区二区| 五月天激情综合| 一区二区免费视频| 成人免费一区二区三区在线观看| 欧美zozozo| 日韩免费看网站| 欧美日韩久久久久久| 91小视频在线| 99久久综合99久久综合网站| 国模冰冰炮一区二区| 麻豆国产一区二区| 日本欧美大码aⅴ在线播放| 亚洲激情自拍视频| 亚洲天堂a在线| 成人免费一区二区三区视频| 欧美激情一区在线| 久久久99精品久久| 精品久久久久久亚洲综合网| 日韩精品在线一区二区| 欧美一卡二卡三卡四卡| 欧美一二三区在线| 91精品国产乱| 日韩欧美色电影| 337p粉嫩大胆色噜噜噜噜亚洲| 91精品国产高清一区二区三区蜜臀| 欧美亚洲动漫另类| 欧美日韩国产在线观看| 欧美日韩一区二区三区在线看 | 免费一区二区视频| 青草av.久久免费一区| 男人操女人的视频在线观看欧美| 日本女人一区二区三区| 久久激五月天综合精品| 国产美女精品一区二区三区| 国产麻豆日韩欧美久久| 成人黄色av网站在线| 91视频在线看| 欧美手机在线视频| 91麻豆精品国产91久久久久久久久| 欧美电影在线免费观看| 精品剧情v国产在线观看在线| 久久免费偷拍视频| 国产精品久久久久久久久久久免费看 | 久久久久久久久久久电影| 欧美国产欧美综合| 一区二区三区在线不卡| 天堂资源在线中文精品| 精品一区二区三区在线观看 | 日韩精品欧美精品| 国产久卡久卡久卡久卡视频精品| 成人手机电影网| 欧美亚洲一区三区| 精品国产欧美一区二区| **网站欧美大片在线观看| 日韩精品视频网| 国产99久久精品| 欧美性生活一区| 精品久久人人做人人爱| 亚洲精品菠萝久久久久久久| 美国十次综合导航| 色综合天天视频在线观看| 日韩一区二区免费在线电影| 日本一区二区三级电影在线观看| 亚洲国产日韩a在线播放性色| 国产乱码精品一区二区三| 欧美体内she精高潮| 26uuu久久天堂性欧美| 亚洲在线一区二区三区| 国内成人自拍视频| 欧美精品乱人伦久久久久久| 国产精品久久三区| 麻豆91在线播放免费| 欧美三级资源在线| 中文字幕一区二区在线播放|