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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

讀溫感DS18B20數碼管顯示溫度值整數 單片機源碼下載

[復制鏈接]
跳轉到指定樓層
樓主
段控制P0到P17(共8條線)。位控制P1.0連接P16的Q1B;P1.1連接Q2B;P1.2連接Q3BP;1.3連接Q4B。
P15的2腳18B20輸出腳,連接到P3.2。


單片機源程序如下:
  1. /***************************************************************************
  2. 標題:        溫感實驗
  3. 效果:        讀取溫度值數碼管顯示
  4. 工作于:光匯i51開發板
  5. 作者:        光匯科技
  6. 說明:        板使用12M晶振
  7. ******************************************************************************/

  8. //頭文件:
  9. #include "reg51.h"
  10. #include "ds18b20.h"        //引入DS18B20頭文件

  11. //變量定義:
  12. unsigned char ly_dis[4];//定義顯示緩沖區
  13. code unsigned char table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc6};
  14. unsigned int i=0;
  15.         char ltemp;                                        //表:共陽數碼管 0-9 C
  16. unsigned char l_posit=0;        //顯示位置

  17. //引腳定義:        
  18. sbit SMG_q = P1^0;        //定義數碼管陽級控制腳(千位)
  19. sbit SMG_b = P1^1;        //定義數碼管陽級控制腳(百位)
  20. sbit SMG_s = P1^2;        //定義數碼管陽級控制腳(十位)
  21. sbit SMG_g = P1^3;        //定義數碼管陽級控制腳(個位)
  22. sbit SMKG=P3^6;

  23. //函數聲明:
  24. void display(void);//顯示函數,顯示緩沖區內容
  25. void delay(void);

  26. //主函數,C語言的入口函數:        
  27. void main()
  28. {
  29.         
  30.         while(1){
  31.                
  32.                 display();        //調用顯示        
  33.                 delay();
  34.         }
  35. }

  36. //顯示函數,參數為顯示內容
  37. void display()
  38. {
  39.     SMKG=0;
  40.         P0=0XFF;                        //        
  41.         switch(l_posit){
  42.         case 0:                //選擇千位數碼管,關閉其它位
  43.                 SMG_q=0;
  44.                 SMG_b=1;        
  45.                 SMG_s=1;               
  46.                 SMG_g=1;
  47.                 P0=table[ly_dis[0]];        //輸出顯示內容
  48.                 break;
  49.         case 1:                //選擇百位數碼管,關閉其它位
  50.                 SMG_q=1;
  51.                 SMG_b=0;        
  52.                 SMG_s=1;               
  53.                 SMG_g=1;
  54.                 P0=table[ly_dis[1]];
  55.                 break;
  56.         case 2:                //選擇十位數碼管,關閉其它位
  57.                 SMG_q=1;
  58.                 SMG_b=1;        
  59.                 SMG_s=0;               
  60.                 SMG_g=1;
  61.                 P0=table[ly_dis[2]];
  62.                 break;
  63.         case 3:                //選擇個位數碼管,關閉其它位
  64.                 SMG_q=1;
  65.                 SMG_b=1;        
  66.                 SMG_s=1;               
  67.                 SMG_g=0;
  68.                 P0=table[ly_dis[3]];
  69.                 break;
  70.         }
  71.         l_posit++;                //每調用一次將輪流顯示一位
  72.         if(l_posit>3)
  73.                 l_posit=0;        
  74.                 if(i==0)                                //先發轉換命令,再讀數值,以減少速度慢帶來的顯示抖動
  75.                         tmpchange();              //溫度轉換
  76.                 if(i==100){
  77.                         ltemp=tmp()/16;                //得到十進制溫度值,因為DS18B20可以精確到0.0625度,這里取整數顯示
  78.                         if(ltemp<0){                //判斷第一位顯示整數還是負號
  79.                                 ly_dis[0]=0xbf;
  80.                                 ltemp=0-ltemp;        
  81.                         }
  82.                         else
  83.                         //        ly_dis[0]=ltemp/100;//顯示百位值
  84.                         ltemp=ltemp/100%100;
  85.                         ly_dis[0]=ltemp/10;        //顯示溫度十位值
  86. ……………………

  87. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
12 數碼管顯示18B20溫度.rar (86.34 KB, 下載次數: 60)





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

使用道具 舉報

5#
無效樓層,該帖已經被刪除
地板
ID:253209 發表于 2018-5-28 00:33 來自觸屏版 | 只看該作者
應該是接的溫度傳感器的數據口吧
回復

使用道具 舉報

無效樓層,該帖已經被刪除
沙發
ID:277014 發表于 2018-5-13 22:12 | 只看該作者
p3。6是干嘛的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表