欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17513|回復(fù): 26
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)數(shù)碼管顯示溫度測量資料程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:34643 發(fā)表于 2017-7-13 20:59 | 只看該作者 |只看大圖 回帖獎勵(lì) |倒序?yàn)g覽 |閱讀模式
       下面是51單片機(jī)數(shù)碼管顯示溫度測量設(shè)計(jì)源程序,測量范圍-9.9~99.9℃,當(dāng)溫度高于定值時(shí),蜂鳴器發(fā)出滴、滴、滴報(bào)警志響,同時(shí)發(fā)光二極管閃光。溫度低于-9.9℃時(shí),顯示 L L .L C ,溫度高于99.9℃時(shí),顯示 H H.H C”。
下載:
單片機(jī)數(shù)碼管顯示溫度測量報(bào)警程序.zip (2.05 MB, 下載次數(shù): 389)

如下列圖所示:





















    源程序:

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char           //宏定義
sbit DQ=P3^7;                                     //定義DS18B20 的 I/O        
sbit DIAN = P0^7;                        //顯示小數(shù)點(diǎn)用
sbit LED=P1^7;
sbit LED1=P2^0;
sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
sbit BEEP=P3^6;
uchar x=0;                                      //計(jì)數(shù)器
signed char m;                                     //溫度值全局變量
uchar n,zf,l;                                              //溫度值全局變量
uint z;
int c;
uint gaowen=28;                         //高溫報(bào)警溫度,默認(rèn)值為35
uint diwen=0;                                    //低溫報(bào)警溫度,默認(rèn)值0
uchar code  LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar Data[]={0,0,0};


/*****延時(shí)子程序*****/
void Delay_DS18B20(int num)
{
        while(num--) ;
}
/*****初始化DS18B20*****/
void Init_DS18B20(void)
{
        unsigned char x=0;
        DQ = 1;                 //DQ復(fù)位
        Delay_DS18B20(8);   //稍做延時(shí)
        DQ = 0;                           //單片機(jī)將DQ拉低
        Delay_DS18B20(80);  //精確延時(shí),大于480us
        DQ = 1;                 //拉高總線
        Delay_DS18B20(14);
        x = DQ;                   //稍做延時(shí)后,如果x=0則初始化成功,x=1則初始化失敗
        Delay_DS18B20(20);
}
/*****讀一個(gè)字節(jié)*****/
unsigned char ReadOneChar(void)
{
        unsigned char i=0;
        unsigned char dat = 0;
        for (i=8;i>0;i--)
          {
            DQ = 0;                         //給脈沖信號
            dat>>=1;
            DQ = 1;                     //給脈沖信號
            if(DQ)
            dat|=0x80;
            Delay_DS18B20(4);
          }
          return(dat);
}
/*****寫一個(gè)字節(jié)*****/
void WriteOneChar(unsigned char dat)
{
        unsigned char i=0;
          for (i=8; i>0; i--)
          {
            DQ = 0;
            DQ = dat&0x01;
            Delay_DS18B20(5);
            DQ = 1;
            dat>>=1;
          }
}
/*****讀取溫度*****/
unsigned int ReadTemperature(void)
{
        unsigned char a=0;
          int b=0;
          int t=0;
          float tt=0;
          Init_DS18B20();
          WriteOneChar(0xCC);  //跳過讀序號列號的操作
          WriteOneChar(0x44);  //啟動溫度轉(zhuǎn)換
          Init_DS18B20();
          WriteOneChar(0xCC);  //跳過讀序號列號的操作
          WriteOneChar(0xBE);  //讀取溫度寄存器
          a=ReadOneChar();     //讀低8位
          b=ReadOneChar();         //讀高8位
          t=b;                                 //高8位轉(zhuǎn)移到t
          t<<=8;                             //t數(shù)據(jù)左移8位
          t=t|a;                             //將t和a按位或,得到一個(gè)16位的數(shù)
          tt=t*0.0625;                 //將t乘以0.0625得到實(shí)際溫度值
                                             //(溫度傳感器設(shè)置12位精度,最小分辨率是0.0625)
          t= tt*10+0.5;        //放大10倍(將小數(shù)點(diǎn)后一位顯示出來)輸出并四舍五入
          return(t);                     //返回溫度值
}
/*****延時(shí)子程序*****/
void Delay(uint num)
{
        while( --num );
}                        
/*****讀取溫度*****/
void check_wendu(void)
{
        int a,b;
        c=ReadTemperature();                  //獲取溫度值
         if(c<0)                                  //溫度正負(fù)值判斷處理
        {
                c=-(c-1);
                   zf=1;
        }
        else
        {
                zf=0;
        }
        a=c/100;                                     //計(jì)算得到十位數(shù)字
        b=c/10-a*10;                            //計(jì)算得到個(gè)位數(shù)字
        m=c/10;                                      //計(jì)算得到整數(shù)位
        if(m<=0)                                    //如果溫度小于0,限制顯示為0
        {
                m=0;
        }
        n=c-a*100-b*10;                            //計(jì)算得到小數(shù)位
        Data[0]=LEDData[n];             //顯示小數(shù)位
        Data[1]=LEDData[m%10];    //顯示個(gè)位
............................................................................................
需要完整源程序的請自己下載



評分

參與人數(shù) 1黑幣 +4 收起 理由
qjzyx + 4 贊一個(gè)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂6 踩
回復(fù)

使用道具 舉報(bào)

無效樓層,該帖已經(jīng)被刪除
板凳
ID:108622 發(fā)表于 2017-10-21 19:12 | 只看該作者
感謝完美程序
回復(fù)

使用道具 舉報(bào)

地板
ID:201936 發(fā)表于 2017-10-22 14:47 | 只看該作者
感謝樓主的分享
回復(fù)

使用道具 舉報(bào)

5#
ID:156573 發(fā)表于 2018-2-26 10:54 | 只看該作者
感謝作者
回復(fù)

使用道具 舉報(bào)

6#
ID:266116 發(fā)表于 2018-2-26 12:00 | 只看該作者
收藏,謝謝分享
回復(fù)

使用道具 舉報(bào)

7#
ID:98767 發(fā)表于 2018-3-14 18:00 | 只看該作者
謝謝樓主,收藏一份了
回復(fù)

使用道具 舉報(bào)

8#
ID:113209 發(fā)表于 2018-3-29 11:26 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報(bào)

9#
ID:369215 發(fā)表于 2018-7-11 09:26 | 只看該作者
謝謝樓主,感謝感謝
回復(fù)

使用道具 舉報(bào)

10#
無效樓層,該帖已經(jīng)被刪除
11#
ID:456932 發(fā)表于 2018-12-27 23:42 來自觸屏版 | 只看該作者
樓主我想要完整程序,
回復(fù)

使用道具 舉報(bào)

12#
ID:456932 發(fā)表于 2018-12-27 23:51 來自觸屏版 | 只看該作者
情誼森林 發(fā)表于 2018-3-29 11:26
感謝分享

有程序嗎
回復(fù)

使用道具 舉報(bào)

13#
ID:458606 發(fā)表于 2018-12-30 19:32 | 只看該作者
謝謝樓主,想請問您的位選頻率大概是多少?我用您這個(gè)圖和程序顯示不出來溫度值,只有初始的----和關(guān)閉顯示。數(shù)碼管八位顯示的高低電平是變化的,但是位選信號改變頻率極低,且?guī)缀跻恢北3指唠娖剑詻]有顯示……
回復(fù)

使用道具 舉報(bào)

14#
ID:469742 發(fā)表于 2019-1-17 16:41 | 只看該作者
好帖子 就是沒黑幣不能下完整的
回復(fù)

使用道具 舉報(bào)

15#
ID:469846 發(fā)表于 2019-1-17 20:00 | 只看該作者
感謝分享加油

回復(fù)

使用道具 舉報(bào)

16#
無效樓層,該帖已經(jīng)被刪除
17#
ID:491024 發(fā)表于 2019-3-17 22:35 | 只看該作者
unsigned_char_ 發(fā)表于 2018-12-30 19:32
謝謝樓主,想請問您的位選頻率大概是多少?我用您這個(gè)圖和程序顯示不出來溫度值,只有初始的----和關(guān)閉顯示 ...

同志我和你問題一樣 ,如果你解決了的話 ,麻煩也給我解下惑 不勝感激
回復(fù)

使用道具 舉報(bào)

18#
ID:532255 發(fā)表于 2019-5-10 10:16 | 只看該作者
感謝作者的分享
回復(fù)

使用道具 舉報(bào)

19#
ID:549887 發(fā)表于 2019-5-29 09:11 | 只看該作者
感謝作者
回復(fù)

使用道具 舉報(bào)

20#
ID:554057 發(fā)表于 2019-6-9 21:28 來自觸屏版 | 只看該作者
感謝作者
回復(fù)

使用道具 舉報(bào)

21#
無效樓層,該帖已經(jīng)被刪除
22#
ID:635782 發(fā)表于 2019-11-5 09:52 | 只看該作者
感謝作者
回復(fù)

使用道具 舉報(bào)

23#
ID:645126 發(fā)表于 2019-11-19 16:10 | 只看該作者
剛需 謝謝樓主分享
回復(fù)

使用道具 舉報(bào)

24#
ID:146041 發(fā)表于 2020-6-3 23:02 | 只看該作者
學(xué)習(xí)學(xué)習(xí),不錯(cuò)的代碼
回復(fù)

使用道具 舉報(bào)

25#
ID:774414 發(fā)表于 2020-6-10 10:48 | 只看該作者
有protues仿真文件嗎,搭出一樣的圖,但功能顯示不了
回復(fù)

使用道具 舉報(bào)

26#
ID:785004 發(fā)表于 2020-6-26 17:33 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

27#
無效樓層,該帖已經(jīng)被刪除
28#
ID:792529 發(fā)表于 2020-6-29 19:09 | 只看該作者
這是液晶吧,還數(shù)碼管坑人
回復(fù)

使用道具 舉報(bào)

29#
ID:293363 發(fā)表于 2020-6-29 20:31 | 只看該作者
感謝樓主,數(shù)碼管太坑了,準(zhǔn)備用液晶,看到你的又準(zhǔn)備用數(shù)碼管了
回復(fù)

使用道具 舉報(bào)

30#
ID:787020 發(fā)表于 2020-7-1 16:01 來自觸屏版 | 只看該作者
unsigned_char_ 發(fā)表于 2018-12-30 19:32
謝謝樓主,想請問您的位選頻率大概是多少?我用您這個(gè)圖和程序顯示不出來溫度值,只有初始的----和關(guān)閉顯示 ...

我跟你一樣 不能顯示
回復(fù)

使用道具 舉報(bào)

31#
ID:787020 發(fā)表于 2020-7-1 16:02 來自觸屏版 | 只看該作者
unsigned_char_ 發(fā)表于 2018-12-30 19:32
謝謝樓主,想請問您的位選頻率大概是多少?我用您這個(gè)圖和程序顯示不出來溫度值,只有初始的----和關(guān)閉顯示 ...

跟你一樣不行 不能顯示
回復(fù)

使用道具 舉報(bào)

32#
ID:722258 發(fā)表于 2020-7-3 19:04 | 只看該作者
數(shù)碼管不顯示是為什么啊
回復(fù)

使用道具 舉報(bào)

33#
無效樓層,該帖已經(jīng)被刪除
34#
無效樓層,該帖已經(jīng)被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表