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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17309|回復: 26
打印 上一主題 下一主題
收起左側

51單片機數碼管顯示溫度測量資料程序

  [復制鏈接]
跳轉到指定樓層
樓主
       下面是51單片機數碼管顯示溫度測量設計源程序,測量范圍-9.9~99.9℃,當溫度高于定值時,蜂鳴器發出滴、滴、滴報警志響,同時發光二極管閃光。溫度低于-9.9℃時,顯示 L L .L C ,溫度高于99.9℃時,顯示 H H.H C”。
下載:
單片機數碼管顯示溫度測量報警程序.zip (2.05 MB, 下載次數: 389)

如下列圖所示:





















    源程序:

#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char           //宏定義
sbit DQ=P3^7;                                     //定義DS18B20 的 I/O        
sbit DIAN = P0^7;                        //顯示小數點用
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;                                      //計數器
signed char m;                                     //溫度值全局變量
uchar n,zf,l;                                              //溫度值全局變量
uint z;
int c;
uint gaowen=28;                         //高溫報警溫度,默認值為35
uint diwen=0;                                    //低溫報警溫度,默認值0
uchar code  LEDData[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
uchar Data[]={0,0,0};


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



評分

參與人數 1黑幣 +4 收起 理由
qjzyx + 4 贊一個!

查看全部評分

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

使用道具 舉報

沙發
ID:108622 發表于 2017-10-21 19:12 | 只看該作者
感謝完美程序
回復

使用道具 舉報

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

使用道具 舉報

地板
ID:156573 發表于 2018-2-26 10:54 | 只看該作者
感謝作者
回復

使用道具 舉報

5#
ID:266116 發表于 2018-2-26 12:00 | 只看該作者
收藏,謝謝分享
回復

使用道具 舉報

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

使用道具 舉報

7#
ID:113209 發表于 2018-3-29 11:26 | 只看該作者
感謝分享
回復

使用道具 舉報

8#
ID:369215 發表于 2018-7-11 09:26 | 只看該作者
謝謝樓主,感謝感謝
回復

使用道具 舉報

9#
ID:456932 發表于 2018-12-27 23:42 來自手機 | 只看該作者
樓主我想要完整程序,
回復

使用道具 舉報

10#
ID:456932 發表于 2018-12-27 23:51 來自手機 | 只看該作者
情誼森林 發表于 2018-3-29 11:26
感謝分享

有程序嗎
回復

使用道具 舉報

11#
ID:458606 發表于 2018-12-30 19:32 | 只看該作者
謝謝樓主,想請問您的位選頻率大概是多少?我用您這個圖和程序顯示不出來溫度值,只有初始的----和關閉顯示。數碼管八位顯示的高低電平是變化的,但是位選信號改變頻率極低,且幾乎一直保持高電平,所以沒有顯示……
回復

使用道具 舉報

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

使用道具 舉報

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

回復

使用道具 舉報

14#
ID:491024 發表于 2019-3-17 22:35 | 只看該作者
unsigned_char_ 發表于 2018-12-30 19:32
謝謝樓主,想請問您的位選頻率大概是多少?我用您這個圖和程序顯示不出來溫度值,只有初始的----和關閉顯示 ...

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

使用道具 舉報

15#
ID:532255 發表于 2019-5-10 10:16 | 只看該作者
感謝作者的分享
回復

使用道具 舉報

16#
ID:549887 發表于 2019-5-29 09:11 | 只看該作者
感謝作者
回復

使用道具 舉報

17#
ID:554057 發表于 2019-6-9 21:28 來自手機 | 只看該作者
感謝作者
回復

使用道具 舉報

18#
ID:635782 發表于 2019-11-5 09:52 | 只看該作者
感謝作者
回復

使用道具 舉報

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

使用道具 舉報

20#
ID:146041 發表于 2020-6-3 23:02 | 只看該作者
學習學習,不錯的代碼
回復

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

23#
ID:792529 發表于 2020-6-29 19:09 | 只看該作者
這是液晶吧,還數碼管坑人
回復

使用道具 舉報

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

使用道具 舉報

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

我跟你一樣 不能顯示
回復

使用道具 舉報

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

跟你一樣不行 不能顯示
回復

使用道具 舉報

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美黄色片 | 欧美高清免费 | 手机看黄av免费网址 | a视频在线 | caoporn国产精品免费公开 | 久久久久免费精品国产小说色大师 | 国产高潮av | 日韩不卡在线 | 亚洲色图网址 | 亚洲精品国产综合区久久久久久久 | 视频一二三区 | 亚洲美女网站 | 亚洲有码转帖 | 成人国产精品免费观看视频 | 久久国产欧美日韩精品 | 免费精品在线视频 | 另类一区| 一色桃子av一区二区 | 精品中文字幕视频 | 欧美一区二区三区在线观看 | 国产成人精品一区二区三区视频 | 日日操视频 | 玖玖免费| 精品一区精品二区 | 亚洲精品一区二区三区蜜桃久 | 欧美三级在线 | 国产成人综合在线 | 中文字幕99 | 一区视频在线免费观看 | 日韩精品在线一区二区 | 亚洲成人免费在线 | 国产综合精品一区二区三区 | 中文字幕综合在线 | 精品久久久久久亚洲综合网 | 欧美精品中文 | 亚洲午夜三级 | 国产成人精品999在线观看 | 99re | 麻豆视频在线免费观看 | heyzo在线| 亚洲国产欧美国产综合一区 |