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

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

?? led.c

?? 一款電力行業使用的溫濕度控制器源代碼 濕度傳感器采用HF3223 溫度采用DS18B20 單片機采用mega8 編程采用winavr2007
?? C
字號:
#include"inc/config.h"



u08     LedData[11];        //各位顯存的初始化
u08     fLedDotMap=0x00 ;   //對應WEI為1 則數碼管加“.”
BOOL    fledalrm    ;       //主要是0-4位

/**共陰***/


 const u08 PROGMEM LedSeg[29]=
{
        0x3f,/*0*/
        0x06,/*1*/
        0x5b,/*2*/
        0x4f,/*3*/
        0x66,/*4*/
        0x6d,/*5*/
        0x7d,/*6*/
        0x07,/*7*/
        0x7f,/*8*/
        0x6f,/*9*/
        0x77,/*a*/   //10
        0x7c,/*b*/        //11
        0x39,/*c*/        //12
        0x58,/*c*/        //13
        0x5e,/*d*/        //14
        0x79,/*e*/        //15
        0x71,/*f*/        //16
        0x76,/*h*/        //17
        0x74,/*h*/        //18
        0x38,/*l*/        //19
        0x54,/*n*/        //20
        0x37,/*n*/        //21
        0x5c,/*o*/        //22
        0x73,/*p*/        //23
        0x50,/*r*/        //24
        0x78,/*t*/        //25
        0x3e,/*u*/       //26
        0x40,/*-*/      //27
        0x00/*消隱碼*/  //28 

 }; 


void   DispSeperateShow( unit8 content,unit8 position )
{
	DIG_RST();//共陰極。消隱,防止數據亂碼,可去,因ByteTo164中已經包含
	ByteToHC164(  content  );
 
		 if(position == DIG1){ LED1 = LED_ON;}
	else if(position == DIG2){ LED2 = LED_ON;}
	else if(position == DIG3){ LED3 = LED_ON;}
	else if(position == DIG4){ LED4 = LED_ON;}
	else if(position == DIG5){ LED5 = LED_ON;}
	else if(position == DIG6){ LED0 = LED_ON;}
	else if(position == DIG7){ LED6 = LED_ON;} 
	else if(position == DIG8){ LED6 = LED_ON;}
 	else if(position == DIG9){ LED6 = LED_ON;}
 
 
}
void ByteToHC164(uint8 ledbuffer)
{

     //DIG_RST();    //令所有位選置1
	 SEG_A = (ledbuffer&(1<<0))>>0;
	 SEG_B = (ledbuffer&(1<<1))>>1;
	 SEG_C = (ledbuffer&(1<<2))>>2;
	 SEG_D = (ledbuffer&(1<<3))>>3;
	 SEG_E = (ledbuffer&(1<<4))>>4;
	 SEG_F = (ledbuffer&(1<<5))>>5;
	 SEG_G = (ledbuffer&(1<<6))>>6;
	 SEG_DP= (ledbuffer&(1<<7))>>7;
}


void    Hex2Bcd( uint16 bytevalue,uint8 bcdval[5] )
{
	   u08 j;
     for ( j = 0; j < 5 ;j++)
         {
            bcdval[j]= 0;
         }
     //萬位處理
    while( bytevalue >= 10000)   //20060402 判斷中的>=不能寫成>,否則有錯,特別是會
                                 //各位數為10,在顯示時顯示成“a” 
         { 
            bcdval[0]++;
            bytevalue-=10000;
          }
     //千位處理
    while( bytevalue >= 1000)
        {
            bcdval[1]++;
            bytevalue-=1000;
         }
    //百位處理
    while( bytevalue >= 100)
         { 
           bcdval[2]++;
           bytevalue-=100;
         }
    //十位處理
    while(bytevalue  >= 10)
        { 
          bcdval[3]++;    
          bytevalue-=10;
         }
    //個位處理
     bcdval[4]=bytevalue;

}


/**************************************************************
* functionname: signal(sig_overflow0)
***************************************************************/
static uint16   cnt         = 0 ;    	/*軟定時器,用于設定時標   */
static uint8    LedCnt      = 0 ;    	/*用于數碼管的刷新計數     */
static uint16   fLedFlashMap= 0 ;       /*用于閃爍位的指示         */
static uint8    fFlashison  = 0 ;    	/*指示閃爍中的明暗兩種狀態 */
static u08     tick_15ms    = 0 ;     
static u16     tick_500ms   = 0 ;
static u16     tick_1s      = 0 ;
static u16     tick_5s      = 0 ;
static u16     tick_60s     = 0 ;

/*********定時器2的中斷,來產生系統工作的基本時序**************/

//SIGNAL(SIG_OVERFLOW2)
SIGNAL(SIG_OVERFLOW0)
{
   u08 ledbuffer = 0;       
   //TCNT2  = TIMER2_BGN_VAL;  
   TCNT0  = TIMER0_BGN_VAL;  
   
   if( tick_15ms++ >= 15/T0_TICK &&f_15ms==false    )   {   tick_15ms =0;f_15ms=true; }
   if( tick_500ms++>= 1000/T0_TICK&&f_500ms==false  )   {   tick_500ms=0;f_500ms=true;}
   if( tick_1s++   >= 2000/T0_TICK&&f_1s==false     )   {   tick_1s   =0;f_1s=true;   }
   if( tick_5s++   >= 3000/T0_TICK&&f_5s==false     )   {   tick_5s   =0;f_5s=true;   }
   if( tick_60s++  >= 20000/T0_TICK&&f_60s==false   )   {   tick_60s  =0;f_60s=true;  }
   
    if( ++cnt > (200/T0_TICK)  )  
    {
         cnt =0;                   

         fFlashison =~ fFlashison; 
     }

	     ledbuffer =LedData[LedCnt];
//--------------------------------------------------------------------------------
    if( ( fLedFlashMap&(1<<LedCnt))!=0 )  
    {
          ledbuffer =ledbuffer&fFlashison;// 
    }
//----------------------------------------------------------------
         DispSeperateShow  (   ledbuffer , LedCnt  );   

		 LedCnt ++ ;

        if( DIGMAX == LedCnt )   LedCnt=1;
                      
}
 void  FlashDigRst(void)
{
      fLedFlashMap = 0;             
}

 
 void  FlashDigOn(uint16 whichDig)
{
	  fLedFlashMap|= (1<<whichDig);  
}
  void  FlashDigOff(uint16 whichDig)
{
      fLedFlashMap&= ~(1<<whichDig);  
}

/**************add num pot***************/
void  RmvDotAll(void)
{
      fLedDotMap = 0;            
}

 
 void  AddDotOn(uint16 whichDig)
{
	  fLedDotMap|= (1<<whichDig);    
}
  void  RmvDot(uint16 whichDig)
{
      fLedDotMap&= ~(1<<whichDig);   
}







/*******************************************************************
*  subname:     void Displayhumidity(uint8 humidity);
********************************************************************/
void DisplayHumidity(uint8 humidity)
{
    if((humidity>100))
    {	
       	LedData[4] = 0x40 ; //directly pass the value to led buffer
       	LedData[5] = 0x40 ;
       	LedData[6] = 0x40 ;
    }
    else
    {  
	   if(humidity==100)
	   {
         LedUpdateByDig(4,humidity/100 ) ;//也可用該函數
       }
	   else
	   {
	     LedData[4] = 0x00 ;  
	   }
        LedUpdateByDig(5,humidity/10 ) ;//也可用該函數
        LedUpdateByDig(6,humidity%10 ) ;//也可用該函數
    }
}



void LedUpdateByDig(uint8 Dig_n,uint8 led_val )
{

   if( ( (fLedDotMap&(1<<Dig_n)) !=0 )&& (led_val!=28))  
        //content!=0x00 消除發消隱時
   {
	    LedData[Dig_n] =pgm_read_byte(LedSeg+led_val)|0x80;
        //段碼最高位疊加小數點位  
   }
   else
   {
        LedData[Dig_n] =pgm_read_byte(LedSeg+led_val);
   }

} 

/*
*	顯示溫度工作狀態,TH TL OR NO_ALARM
*/
void DisplayTemperatureAlarm( u08 on_off)
{	
	 //根據報警狀態 點亮相應指示燈												  
     LedData[DIG7] = on_off*SEGA;

}

/*
*	顯示適度報警,直接修改對應指示燈的顯存值
*/
void DisplayHumidityAlarm(u08 on_off)
{
	 
	 LedData[DIG8] =on_off*SEGE;
 }
void DisplayPower(u08 on_off)
{
	 
	 LedData[DIG9] =on_off*SEGD;
 }
/*
*	復位軟定時器
*/
void RstSoftTimer(u08 n)
{
	if      (n==_15MS)  {   tick_15ms	= 0;	f_15ms	= false; }
	else if (n==_500MS) {   tick_500ms 	= 0;	f_500ms	= false; }
	else if (n==_1S)    {   tick_1s 	= 0;	f_1s	= false; }
	else if (n==_60S)   {   tick_60s 	= 0;	f_60s	= false; }
}


void DisplayTemperature(int16 temperature)
{
    u08 offset;
	if(SystemStatus==RUN)
	{
	   offset =0;
	
	}
	else
	{
	   offset =3;
	}
	
    	RmvDot(2+offset);                            

    if( ( temperature >1250) || (temperature<-400) )
    {
         RmvDot(2+offset);;         				
         LedUpdateByDig(1+offset,27);      					  
         LedUpdateByDig(2+offset,27);      					   
         LedUpdateByDig(3+offset,27);
    }
    else
    {
         uint8 tempconvertbuffer[5]={0,0,0,0,0};  

         if (temperature >= 1000)    					      
         {

         RmvDot(2+offset);;                          	  
         Hex2Bcd(temperature,tempconvertbuffer);  
         LedUpdateByDig(1+offset,tempconvertbuffer[1]);  
         LedUpdateByDig(2+offset,tempconvertbuffer[2]);   
         LedUpdateByDig(3+offset,tempconvertbuffer[3]);      	 
         }
         else if(temperature >= 100)                   
         {
         AddDotOn(2+offset);                        		 
         Hex2Bcd(temperature,tempconvertbuffer);      	 
         LedUpdateByDig(1+offset,tempconvertbuffer[2]);      	 
         LedUpdateByDig(2+offset,tempconvertbuffer[3]);      	 
         LedUpdateByDig(3+offset,tempconvertbuffer[4]);      	       
         }
         else if(temperature >= 0)                   	 
         {
         AddDotOn(2+offset);  
         LedUpdateByDig(1+offset,28);                        	 
         LedUpdateByDig(2+offset,temperature/10);            	  
         LedUpdateByDig(3+offset,temperature%10);            	          
         }                                            
         else if(temperature > -100)                   	  
         {                                             	 
          
         temperature=-temperature;  
         AddDotOn(2+offset);  
         LedUpdateByDig(1+offset,27); 
         LedUpdateByDig(2+offset,temperature/10);            	  
         LedUpdateByDig(3+offset,temperature%10);            	           

         }
         else if(temperature >=-400)                   	     
         {
          temperature=-temperature;                    	  
          RmvDot(2+offset);                          	  
          LedUpdateByDig(1+offset,27);                        	  
          LedUpdateByDig(2+offset,temperature/100);              
          LedUpdateByDig(3+offset,temperature%100/10);                    
         }

    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品久久久久久久久| 日韩精品欧美精品| 久久久九九九九| 国产精品毛片大码女人| 亚洲一区二区在线视频| 水野朝阳av一区二区三区| 国产福利一区二区三区视频在线| 91亚洲永久精品| 日韩一区二区三区在线| 欧美激情一区二区三区不卡| 亚洲综合久久av| 久久99国产精品久久99| 色吊一区二区三区| 91麻豆精品国产91久久久使用方法 | 蜜臀av国产精品久久久久| 午夜久久久久久久久| 欧美a级一区二区| 成人久久久精品乱码一区二区三区| 在线精品亚洲一区二区不卡| 精品国免费一区二区三区| 亚洲免费高清视频在线| 国产乱人伦精品一区二区在线观看| 欧美日韩视频在线一区二区| 久久蜜臀中文字幕| 免费在线一区观看| 91极品美女在线| 中文字幕国产一区| 国产一区二区三区在线看麻豆 | 亚洲黄色片在线观看| 国产精品香蕉一区二区三区| 欧美日韩在线三区| 亚洲欧美一区二区久久| 国产高清亚洲一区| 欧美成人精品高清在线播放| 国产精品三级视频| 国产1区2区3区精品美女| 欧美一区二区三区四区高清 | 成人免费一区二区三区在线观看| 久久99精品国产| 日韩一区国产二区欧美三区| 午夜视频在线观看一区二区| 色综合久久久久网| 欧美国产禁国产网站cc| 久久99精品一区二区三区| 欧美日产在线观看| 午夜欧美大尺度福利影院在线看| 日本道在线观看一区二区| 亚洲欧洲日产国产综合网| 东方aⅴ免费观看久久av| 国产亚洲综合性久久久影院| 狠狠色综合色综合网络| 久久久久久综合| 国产夫妻精品视频| 中文字幕精品三区| 97精品久久久久中文字幕| 亚洲乱码一区二区三区在线观看| 99久久伊人久久99| 亚洲美女视频在线| 欧美伊人久久久久久久久影院 | 日本在线不卡视频一二三区| 一本一道久久a久久精品综合蜜臀| 国产女人18水真多18精品一级做| 国产xxx精品视频大全| 中文字幕欧美日韩一区| 99久久伊人精品| 亚洲一区二区三区在线| 欧美美女一区二区| 青青草97国产精品免费观看无弹窗版| 日韩亚洲欧美一区| 国产精品一区二区91| 久久久精品日韩欧美| 99精品桃花视频在线观看| 亚洲国产一区二区在线播放| 91精品国产综合久久精品性色| 日韩一区精品视频| 国产欧美一二三区| 99精品偷自拍| 久久疯狂做爰流白浆xx| 国产精品久久久一本精品| 欧美亚洲动漫精品| 国产一区二区三区高清播放| 国产精品成人一区二区三区夜夜夜| 91理论电影在线观看| 亚洲夂夂婷婷色拍ww47| 精品处破学生在线二十三| 成人免费精品视频| 肉色丝袜一区二区| 国产亚洲欧美在线| 欧美日韩dvd在线观看| 国产精品一二三四五| 亚洲欧美一区二区三区久本道91| 制服.丝袜.亚洲.另类.中文| 国产 欧美在线| 婷婷国产在线综合| 国产精品女主播av| 777欧美精品| 91一区在线观看| 亚洲激情av在线| 国产三级久久久| 91精品国产综合久久久久久久| 成人一级片网址| 久久成人羞羞网站| 午夜精品福利一区二区蜜股av| 中文欧美字幕免费| 欧美色图天堂网| av亚洲产国偷v产偷v自拍| 久久不见久久见中文字幕免费| 亚洲激情自拍偷拍| 中文字幕av资源一区| wwwwxxxxx欧美| 日韩一区二区三区视频在线| 97se狠狠狠综合亚洲狠狠| 国产一区二区免费看| 天堂成人免费av电影一区| 中文字幕中文字幕一区二区| 2019国产精品| 欧美电影免费观看高清完整版在线观看 | 国产成人免费视频一区| 婷婷激情综合网| 亚洲综合色婷婷| 国产精品二三区| 国产精品灌醉下药二区| 亚洲天堂中文字幕| 亚洲精品国产精华液| 一区二区三区四区视频精品免费 | 日韩美女一区二区三区| 日韩欧美电影一二三| 日韩欧美中文字幕制服| ww亚洲ww在线观看国产| 欧美国产精品中文字幕| 亚洲欧美一区二区久久| 一区二区久久久| 秋霞av亚洲一区二区三| 国产最新精品免费| av电影天堂一区二区在线观看| 色8久久精品久久久久久蜜| 色婷婷亚洲一区二区三区| 91精品在线免费观看| 精品国产91洋老外米糕| 中文字幕av不卡| 亚洲一区影音先锋| 激情国产一区二区| 91亚洲国产成人精品一区二区三 | 国产精品美女视频| 亚洲女厕所小便bbb| 天天av天天翘天天综合网色鬼国产| 日韩av二区在线播放| 国产精品99久久久久久久vr| 一本大道av伊人久久综合| 正在播放亚洲一区| 国产精品国产三级国产专播品爱网 | 69堂国产成人免费视频| 国产日韩综合av| 亚洲妇熟xx妇色黄| 国产成人亚洲综合色影视| 欧美日韩一区二区电影| 国产色产综合产在线视频| 亚洲丰满少妇videoshd| 国产精品一区二区不卡| 欧美日韩亚洲不卡| 国产精品欧美极品| 久久99国产精品久久99 | 成人永久免费视频| 欧美一级电影网站| 日一区二区三区| 成人av免费在线| 欧美成人女星排名| 亚洲3atv精品一区二区三区| 成人午夜伦理影院| 欧美不卡视频一区| 亚洲综合激情网| 99re成人在线| 久久精品免视看| 日本女优在线视频一区二区| 91黄色在线观看| 亚洲三级在线观看| 成人精品高清在线| 精品精品欲导航| 日本不卡视频在线观看| 精品污污网站免费看| 中文字幕在线一区| 国产a区久久久| 久久久精品日韩欧美| 久久精品国内一区二区三区| 欧美日韩精品一区二区| 亚洲自拍偷拍九九九| 色综合一个色综合亚洲| 亚洲三级电影网站| 成人av资源站| 日韩一区在线免费观看| a在线欧美一区| 中文字幕中文在线不卡住| 白白色 亚洲乱淫| 国产精品色哟哟| 成人av先锋影音| 国产精品热久久久久夜色精品三区| 国产福利一区在线| 国产精品无人区| 99久久99久久精品免费观看| 国产精品盗摄一区二区三区|