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

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

?? ds18b20-shm-c51-avr.c

?? 8個數碼管顯示時鐘程序,LED數字鐘,流水燈程序,紅外遙控,鍵控看門狗程序
?? C
字號:
/*******************************************************************/
/*                                                                 */
/* ME300B單片機開發系統演示程序 - DS18B20溫度顯示                  */
/*                                                                 */
/* 6數碼管顯示                                                     */
/*                                                                 */
/*工作芯片:ATMGA8515L   工作頻率:8MHz                            */
/*                                                                 */
/* 版本: V1.0 (2006/11/20)                                        */
/* 作者: gguoqing (Email: gguoqing@willar.com)                    */
/* 網站: www.willar.com(偉納電子)   www.mcusj.com(偉納單片機世界) */
/* 郵箱: support@willar.com                                       */
/*                                                                 */                                                               
/*【版權】Copyright(C)偉納電子 www.willar.com  All Rights Reserved */
/*【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!       */
/*                                                                 */
/*******************************************************************/

#include "avr/io.h"      //頭文件
#include "avr/delay.h"   //頭文件

#define  BEEP  PD7       //蜂鳴器
#define  DQ    PD3	     //ds18b20的DQ
#define  FREQ  8         //芯片工作頻率

unsigned char presence,flash=0;

unsigned char  LEDData[ ]   = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
                                 0x80,0x90,0xff};
									  
unsigned char temp_data[2] = {0x00,0x00};

unsigned char display[5] =   {0x00,0x00,0x00,0x00,0x00};

unsigned char ditab[16] =    {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,
                                0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09};
 
/********************************************************/
/*                                                      */
/* N*ms延時函數                                         */
/*                                                      */
/********************************************************/    
void delay_nms(unsigned int n)        
   { 
      unsigned int i=0 ; 
      for (i=0 ;i<n ;i++) 
      _delay_loop_2(250*FREQ) ;
   }
 
/********************************************************/
/*                                                      */
/* y*us延時函數                                         */
/*                                                      */
/********************************************************/   
void  Delay(unsigned int y)
  { 
    _delay_loop_2(2*y);
  }
  
/********************************************************/
/*                                                      */
/* 蜂鳴器驅動函數                                       */
/*                                                      */
/********************************************************/
void beep(void)
  {
    unsigned char i;
    for (i=0;i<100;i++)
    {
      PORTD&=~_BV(BEEP);
      Delay(500);
      PORTD=_BV(BEEP);
      Delay(500);
    } 
    PORTD|=_BV(BEEP);           //關閉蜂鳴器
	delay_nms(200); 
  } 
   
/********************************************************/
/*                                                      */
/* IO口初始化                                            */
/*                                                      */
/********************************************************/
void  init_io(void)
  {
    DDRA=0xFF;       //置PA口輸出
    PORTA=0xFF;      //PA口設置內部上拉電阻 
    DDRB=0xFF;       //置PB口輸出
    PORTB=0xFF;      //PB口設置內部上拉電阻
    DDRC=0xFF;       //置PC口輸出
    PORTC=0xFF;      //PC口設置內部上拉電阻
    DDRD=0xFF;       //置PD口輸出
    PORTD=0xFF;      //PD口設置內部上拉電阻
  }

/*********************************************************/
/*                                                       */
/* 初始化DS18B20                                         */ 
/*                                                       */ 
/*********************************************************/
int Init_DS18B20(void)
{    
    PORTD|=_BV(DQ);       //DQ復位
    Delay(70);            //稍做延時70us    

    PORTD&=~_BV(DQ);      //將DQ拉低  
    Delay(780);           //精確延時780us 大于 480us
    PORTD|=_BV(DQ);       //拉高總線
    
    DDRD&=~_BV(DQ);       //置PD3為輸入
    Delay(70);            //稍做延時
   
    if(PIND&_BV(DQ))      //如果=0則初始化成功 =1則初始化失敗
     presence = 1;
    else  
	 presence = 0;
          
    Delay(870);           //精確延時870us
    DDRD  |=_BV(DQ);      //置PD3為輸出 
    PORTD |=_BV(DQ);      //釋放總線 
     
    return(presence);    //返回信號,0=presence,1= no presence
}
/*********************************************************/
/*                                                       */
/* 讀一個字節                                            */
/*                                                       */
/*********************************************************/
int ReadOneChar(void)
{
unsigned char i = 0;
unsigned char dat = 0;

for (i = 8; i > 0; i--)
  {
    PORTD&=~_BV(DQ);      //總線為低電平
    dat >>= 1;
    
    PORTD|=_BV(DQ);       //總線為高電平(釋放總線)   
    DDRD&=~_BV(DQ);       //置PD3為輸入
        
    if(PIND&_BV(DQ))
    dat |= 0x80;
    Delay(70);
    DDRD |=_BV(DQ);  
    PORTD|=_BV(DQ);  
  }
   return (dat);
}

/**********************************************************/
/*                                                        */
/* 寫一個字節                                             */
/*                                                        */
/**********************************************************/
void WriteOneChar(unsigned char dat)
{
  unsigned char i = 0;
  
  for (i = 8; i > 0; i--)
  {
    PORTD&=~_BV(DQ);
 
    if(dat&0x01)
     PORTD|=_BV(DQ);      //寫"1" 
	else     
	 PORTD&=~_BV(DQ);     //寫"0"

    Delay(70);
    PORTD|=_BV(DQ);        
    dat>>=1;
  }
}

/*********************************************************/
/*                                                       */
/* 讀取溫度                                              */
/*                                                       */
/*********************************************************/
void Read_Temperature(void)
{
   Init_DS18B20();
   if(presence==1)
   { beep();flash=1;}
   else        
   {
     flash=0;
     WriteOneChar(0xCC);  // 跳過讀序號列號的操作
     WriteOneChar(0x44);  // 啟動溫度轉換

     Init_DS18B20();
     WriteOneChar(0xCC);  //跳過讀序號列號的操作
     WriteOneChar(0xBE);  //讀取溫度寄存器
     
     temp_data[0] = ReadOneChar();   //溫度低8位
     temp_data[1] = ReadOneChar();   //溫度高8位
    }
}

/*********************************************************/
/*                                                       */
/* 數據處理與溫度顯示                                    */
/*                                                       */
/*********************************************************/
void Disp_Temperature(void)
{
  display[4]=temp_data[0]&0x0f;
  display[0]=ditab[display[4]];     //查表得小數位的值
  
  display[4]=((temp_data[0]&0xf0)>>4)|((temp_data[1]&0x0f)<<4);
  display[3]=display[4]/100;
  display[1]=display[4]%100;
  display[2]=display[1]/10;
  display[1]=display[1]%10;

  if(!display[3])        //高位為0,不顯示
  { 
    display[3]=0x0a;              
    if(!display[2])      //次高位為0,不顯示
     display[2]=0x0a;
  }

   PORTA = 0xc6;                 //顯示 C
   PORTC = 0x7f;
   delay_nms(1);

   PORTA = 0x9c;                 //顯示 °  
   PORTC = 0xbf;
   delay_nms(1);

   PORTA =LEDData[display[0]];  //顯示小數位
   PORTC = 0xdf;
   delay_nms(1);

   PORTA =LEDData[display[1]];  //顯示個位
   PORTA &=~_BV(PA7);           //顯示小數點
   PORTC = 0xef;
   delay_nms(1);

   PORTA =LEDData[display[2]];  //顯示十位
   PORTC = 0xf7;
   delay_nms(1);

   PORTA =LEDData[display[3]];  //顯示十位
   PORTC = 0xfb;
   delay_nms(1);

   PORTC = 0xff;                //關閉顯示
}

/********************************************************/
/*                                                      */
/* 主函數                                               */
/*                                                      */
/********************************************************/

int main(void)
{      
   init_io();                //初始化端口
     
   while(1)
    {
       Read_Temperature();   //讀取溫度
	   if(flash)
	   PORTC=0xff;           //DS18B20不正常關閉顯示
	   else
       Disp_Temperature();   //顯示溫度      
    }
}   
/********************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品99久久久久久久久| www.亚洲色图| 日韩一区二区视频| 久久精品久久精品| 日韩欧美的一区二区| 久国产精品韩国三级视频| 日韩欧美一级二级| 国产高清精品久久久久| 国产精品国产成人国产三级| 成人ar影院免费观看视频| 亚洲激情自拍视频| 欧美一区二区在线观看| 国产在线不卡一区| 国产精品国产三级国产专播品爱网 | 6080日韩午夜伦伦午夜伦| 日本女优在线视频一区二区| 精品91自产拍在线观看一区| 国产精华液一区二区三区| 亚洲精品视频一区| 日韩视频一区二区三区在线播放| 国产成人综合在线播放| 国产成人亚洲精品青草天美| 亚洲日本va午夜在线电影| 在线视频国内自拍亚洲视频| 裸体在线国模精品偷拍| 欧美国产国产综合| 欧美日韩在线播放一区| 精品一区二区三区在线观看国产| 国产精品久久久久久久久免费相片 | 亚洲欧洲精品一区二区精品久久久| 色综合天天综合色综合av| 日韩国产精品91| 中文字幕免费不卡在线| 欧美一区二区视频在线观看2020 | 捆绑调教一区二区三区| 中文字幕一区av| 日韩视频在线一区二区| 99久久精品国产网站| 精品在线一区二区| 亚洲一区在线观看免费观看电影高清 | 免费av成人在线| 国产精品久久三区| 日韩精品自拍偷拍| 欧美色图片你懂的| 96av麻豆蜜桃一区二区| 国产自产高清不卡| 亚洲18女电影在线观看| 一区在线中文字幕| 久久在线观看免费| 欧美一区二区三区不卡| 在线区一区二视频| 99久久综合国产精品| 国产一区二区三区四区五区美女| 亚洲国产精品一区二区www在线 | 一区二区成人在线| 国产精品久久久久久亚洲伦| 精品福利在线导航| 欧美一卡二卡三卡| 亚洲欧美一区二区三区极速播放 | 欧美三区在线视频| 一本在线高清不卡dvd| 成人国产一区二区三区精品| 国产美女久久久久| 久久成人av少妇免费| 同产精品九九九| 亚洲高清免费视频| 亚洲最大成人综合| 一区二区三区资源| 亚洲婷婷在线视频| 亚洲视频免费在线| 亚洲欧美中日韩| 国产精品区一区二区三区| 国产日产亚洲精品系列| 亚洲精品一区二区三区在线观看| 制服丝袜中文字幕亚洲| 欧美日韩成人一区| 欧美猛男gaygay网站| 欧美在线观看视频一区二区| 99久久久久久| 色婷婷狠狠综合| 欧美在线色视频| 欧美日韩国产高清一区二区三区 | 欧美成人伊人久久综合网| 欧美日本不卡视频| 欧美一区二区三区男人的天堂| 欧美日本一区二区在线观看| 欧美精选在线播放| 8x8x8国产精品| 欧美不卡一二三| 久久综合久久综合九色| 久久久久久综合| 国产精品美女一区二区三区| 亚洲欧洲无码一区二区三区| 亚洲激情图片一区| 三级一区在线视频先锋 | 日本aⅴ亚洲精品中文乱码| 热久久一区二区| 国产精品一线二线三线精华| 国产成人精品亚洲午夜麻豆| 99久久精品国产一区二区三区| 一本色道久久综合亚洲aⅴ蜜桃 | 成人激情动漫在线观看| 色香蕉久久蜜桃| 91精品久久久久久久91蜜桃| 2021国产精品久久精品| 国产精品久久久久久久久免费丝袜| 中文字幕视频一区二区三区久| 一区二区三区不卡在线观看| 奇米精品一区二区三区在线观看 | 成人深夜视频在线观看| 欧洲另类一二三四区| 日韩中文字幕不卡| 狠狠色丁香久久婷婷综合_中 | 久久精品久久99精品久久| aaa国产一区| 日韩一区二区精品葵司在线| 国产精品污污网站在线观看| 午夜av一区二区三区| 国产精品一二三区在线| 色婷婷激情综合| 久久久精品欧美丰满| 一个色综合网站| 国产精品18久久久久久久久久久久| 97超碰欧美中文字幕| 日韩三级av在线播放| 亚洲欧美日韩国产中文在线| 久国产精品韩国三级视频| 一本大道久久a久久精二百| 欧美精品一区二| 午夜不卡av在线| 91天堂素人约啪| 久久这里只有精品首页| 午夜天堂影视香蕉久久| 97久久精品人人爽人人爽蜜臀| 欧美大白屁股肥臀xxxxxx| 自拍偷拍国产亚洲| 国产成人免费在线| 欧美一区二区美女| 亚洲第一主播视频| 不卡欧美aaaaa| 国产人成亚洲第一网站在线播放 | 2017欧美狠狠色| 亚洲综合区在线| 99久久精品久久久久久清纯| 久久中文字幕电影| 久久国产精品色| 91精品国产欧美一区二区18| 一个色妞综合视频在线观看| 99久精品国产| 欧美激情自拍偷拍| 国产一区二区免费视频| 91精品国产欧美日韩| 亚洲成av人在线观看| 一本到不卡精品视频在线观看| 国产精品美女久久久久av爽李琼 | 日本aⅴ亚洲精品中文乱码| 91久久精品网| 一区二区三区精品在线| 91美女在线看| 亚洲女人的天堂| 色婷婷亚洲一区二区三区| 国产精品国产三级国产aⅴ中文| 欧美日本在线播放| 亚洲123区在线观看| 欧美性xxxxx极品少妇| 亚洲一区二区三区四区在线观看 | 制服.丝袜.亚洲.中文.综合| 亚洲影院久久精品| 欧美在线高清视频| 午夜久久久影院| 欧美美女喷水视频| 日日夜夜免费精品| 日韩欧美国产系列| 精品一区二区三区在线观看| 精品国产乱码久久久久久牛牛| 久久99精品视频| 国产三级精品视频| 99久久精品国产导航| 一区二区三区在线观看欧美| 色吊一区二区三区| 午夜精品福利视频网站| 91精品在线麻豆| 精一区二区三区| 久久亚洲免费视频| 成人国产精品免费观看动漫| 中文字幕一区二区三区四区不卡| 色婷婷激情一区二区三区| 亚洲不卡一区二区三区| 欧美电影免费观看高清完整版在| 精品制服美女久久| 中文字幕在线观看一区二区| 色婷婷综合五月| 日本aⅴ精品一区二区三区| 久久精品在线免费观看| 91麻豆国产在线观看| 婷婷夜色潮精品综合在线| 日韩免费成人网| 99视频在线观看一区三区| 天堂蜜桃一区二区三区| 久久亚洲精华国产精华液|