久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

自制帶有開機音樂的可顯數字溫度計

作者:胡明麗   來源:本站原創   點擊數:  更新時間:2010年06月11日   【字體:

      因為一個朋友要過生日,而且已經大三了,相聚的日子屈指可數,所以就想盡自己的所能給她做一件禮物。

      說來也不順,知道她過生日的時候,已經距她過生日還有僅僅4天的時間,時間很緊,也不知道送些啥,一想,自己這些天一直在做關于單片機的東西,索性利用身邊的材料,做一個東西給她,也挺有意義的。但因為平時忙著復習考研,所以注定做得東西不能太復雜了,否則根本完成不了,后來也就決定做這個溫度計了。電路也不難,程序自己也見過,大概改改也就差不多了。后來感覺僅僅顯示溫度也太單調了,就加了音樂功能,一首《隱形的翅膀》也不錯。

     從周三開始,每天晚上11:00開始做,到今天,總算研制成功吧!有點遺憾的是,身邊沒有2-4譯碼器,所以LED驅動的不好,就算加了兩個上拉排阻,顯示的還是挺暗!





由于本文篇幅有限部分文件請從這里下載:
http://www.zg4o1577.cn/ziliao/file/SoundPlay.rar  這個是音樂播放文件

#include <REG52.H>
#include "SoundPlay.h"
#define  uchar  unsigned  char 
#define  uint   unsigned  int
sbit  DATA = P3^7; //DS18B20接入口
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
char  bai,shi,ge; //定義變量

/*延時子函數*/
void delay(uint num)
{
 while(num--) ;
}

void Delay1ms(unsigned int count)
{
 unsigned int i,j;
 for(i=0;i<count;i++)
 for(j=0;j<120;j++);
}


/*************DS18b20溫度傳感器函數*********************/
Init_DS18B20(void)     //傳感器初始化
{
  uchar x=0;
  DATA = 1;    //DQ復位
  delay(10);  //稍做延時
  DATA = 0;    //單片機將DQ拉低
  delay(80); //精確延時 大于 480us    //450
  DATA = 1;    //拉高總線
  delay(20);
  x=DATA;      //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
  delay(30);
}

//讀一個字節
ReadOneChar(void)
{
 uchar i=0;
 uchar dat = 0;
 for (i=8;i>0;i--)
  {
    DATA = 0; // 給脈沖信號
    dat>>=1;
    DATA = 1; // 給脈沖信號
    if(DATA)
     dat|=0x80;
    delay(8);
  }
  return(dat);
}

//寫一個字節
WriteOneChar(unsigned char dat)
{
  uchar i=0;
  for (i=8; i>0; i--)
  {
    DATA = 0;
    DATA = dat&0x01;
   delay(10);
   DATA = 1;
   dat>>=1;
  }
 delay(8);
}

//讀取溫度
int ReadTemperature(void)
{
 uchar a=0;
 uchar b=0;
 int t=0;
 float tt=0;
 Init_DS18B20();
 WriteOneChar(0xCC); // 跳過讀序號列號的操作
 WriteOneChar(0x44); // 啟動溫度轉換
 Init_DS18B20();
 WriteOneChar(0xCC); //跳過讀序號列號的操作
 WriteOneChar(0xBE); //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度
 a=ReadOneChar();//低位
 b=ReadOneChar();//高位
 t=b;
 t<<=8;
 t=t|a;
 tt=t*0.0625;
 t= tt*10+0.5; 
 return(t);
}

/*顯示子函數*/
void  display(int bai,int shi,int ge)
{

 P2=0XFB; //顯示小數點
 P0=0X80; //顯示小數點
 delay(50);//顯示小數點

 P2=0xf7;
 P0=table[bai];//顯示千位
 delay(50);//一小段延時動態顯示
 P2=0xfb;
 P0=table[shi];//顯示百位
 delay(50);
 P2=0xfd;
 P0=table[ge];//顯示十位
 delay(100);
}


//*****************************Music******************************************************
//揮著翅膀的女孩
unsigned char code Music_Girl[]={ 0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x15,0x03,
                                  0x16,0x03, 0x17,0x03, 0x17,0x03, 0x17,0x03, 0x18,0x03,
                                  0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x02, 0x18,0x03,
                                  0x17,0x03, 0x15,0x02, 0x18,0x03, 0x17,0x03, 0x18,0x02,
                                  0x10,0x03, 0x15,0x03, 0x16,0x02, 0x15,0x03, 0x16,0x03,
                                  0x17,0x02, 0x17,0x03, 0x18,0x03, 0x19,0x02, 0x1A,0x03,
                                  0x1B,0x03, 0x1F,0x03, 0x1F,0x03, 0x17,0x03, 0x18,0x03,
                                  0x19,0x02, 0x16,0x03, 0x17,0x03, 0x18,0x03, 0x17,0x03,
                                  0x18,0x03, 0x1F,0x03, 0x1F,0x02, 0x16,0x03, 0x17,0x03,
                                  0x18,0x03, 0x17,0x03, 0x18,0x03, 0x20,0x03, 0x20,0x02,
                                  0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
                                  0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,
                                  0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,
                                  0x1A,0x03, 0x19,0x03, 0x15,0x03, 0x15,0x03, 0x17,0x03,
                                  0x16,0x66, 0x17,0x04, 0x18,0x04, 0x18,0x03, 0x19,0x03,
                                  0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x20,0x03, 0x21,0x03,
                                  0x20,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66, 0x1F,0x03,
                                  0x1B,0x03, 0x19,0x03, 0x19,0x03, 0x15,0x03, 0x1A,0x66,
                                  0x1A,0x03, 0x19,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,
                                  0x1F,0x00, 0x1A,0x03, 0x1A,0x03, 0x1A,0x03, 0x1B,0x03,
                                  0x1B,0x03, 0x1A,0x03, 0x19,0x03, 0x19,0x02, 0x17,0x03,
                                  0x15,0x17, 0x15,0x03, 0x16,0x03, 0x17,0x03, 0x18,0x03,
                                  0x17,0x04, 0x18,0x0E, 0x18,0x03, 0x17,0x04, 0x18,0x0E,
                                  0x18,0x66, 0x17,0x03, 0x18,0x03, 0x17,0x03, 0x18,0x03,
                                  0x20,0x03, 0x20,0x02, 0x1F,0x03, 0x1B,0x03, 0x1F,0x66,
                                  0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03, 0x1B,0x03,
                                  0x1F,0x66, 0x1F,0x04, 0x1B,0x0E, 0x1B,0x03, 0x19,0x03,
                                  0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,
                                  0x15,0x03, 0x15,0x03, 0x17,0x03, 0x16,0x66, 0x17,0x04,
                                  0x18,0x04, 0x18,0x03, 0x19,0x03, 0x1F,0x03, 0x1B,0x03,
                                  0x1F,0x66, 0x20,0x03, 0x21,0x03, 0x20,0x03, 0x1F,0x03,
                                  0x1B,0x03, 0x1F,0x66, 0x1F,0x03, 0x1B,0x03, 0x19,0x03,
                                  0x19,0x03, 0x15,0x03, 0x1A,0x66, 0x1A,0x03, 0x19,0x03,
                                  0x19,0x03, 0x1F,0x03, 0x1B,0x03, 0x1F,0x00, 0x18,0x02,
                                  0x18,0x03, 0x1A,0x03, 0x19,0x0D, 0x15,0x03, 0x15,0x02,
                                  0x18,0x66, 0x16,0x02, 0x17,0x02, 0x15,0x00, 0x00,0x00};
//***********************************************************************************

 

main()
{
    int  temp;
 InitialSound();
 Play(Music_Girl,0,3,360);
 Delay1ms(500);
 while(1)
 {  
     temp=ReadTemperature();//讀溫度
  bai=temp%1000/100;//顯示百位
  shi=temp%100/10;//顯示十位
  ge=temp%10;//顯示個位
  display(bai,shi,ge);//顯示函數 
 }
 
}

 

/**************************************************************************

 

 

關閉窗口

相關文章

主站蜘蛛池模板: 久久久久国产一区二区三区四区 | 你懂的在线视频播放 | 国产成人精品在线 | 日韩最新网站 | 久久99精品国产 | 亚洲乱码一区二区三区在线观看 | 成人影院一区二区三区 | 一区二区免费在线 | 亚洲一区二区免费 | 亚洲综合无码一区二区 | 国精产品一区二区三区 | 久久福利网站 | 久久99精品国产麻豆婷婷 | 好姑娘影视在线观看高清 | 国产精品久久毛片av大全日韩 | 久久久久久国产精品 | 国产精品久久久久aaaa樱花 | 91在线免费视频 | 欧美jizzhd精品欧美巨大免费 | 久久久久久久久久爱 | 日本成人福利 | 久久99视频免费观看 | 免费欧美视频 | 一呦二呦三呦国产精品 | 国产 日韩 欧美 中文 在线播放 | 日韩欧美在线观看视频 | 免费高清av| 亚洲免费精品 | 亚洲免费在线观看av | 国产精品国产三级国产aⅴ中文 | 一级毛片视频 | 日韩在线精品 | 91在线导航 | 一级日批片 | 欧美极品视频 | 久久成人免费 | 在线观看的av | 久久久久久久久久久蜜桃 | 亚洲天天干 | 91国内精品 | 精品国产免费一区二区三区演员表 |