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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于DS18B20和51單片機的溫度采集系統仿真和源碼

[復制鏈接]
跳轉到指定樓層
樓主
這是我最近做的一個項目。
用DS18B20單總線檢測溫度;
用STC89C51編程,
用4位數碼管顯示溫度值;
親測效果良好;
資料中有程序源代碼,還有PROTEUS仿真。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include<reg51.h>
  2. #define  uchar unsigned char
  3. #define uint unsigned int
  4. uchar m,n,p;
  5. sbit DQ=P3^4;//定義DS18b20的管腳

  6. sbit L1=P3^0;//定義控制數碼管的管腳
  7. sbit L2=P3^1;
  8. sbit L3=P3^2;
  9. sbit L4=P3^3;
  10. sbit LS=P3^6;
  11. unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,
  12. 0x82,0xF8,0x80,0x90,0x7f,0xbf,0xa7};//0-9數字,后面為". - C"

  13. void Delay_DS18B20(int num)
  14. {
  15. while(num--) ;
  16. }

  17. void Init_DS18B20(void)
  18. {
  19. unsigned char x=0;
  20. DQ = 1; //DQ復位
  21. Delay_DS18B20(8); //稍做延時
  22. DQ = 0; //單片機將DQ拉低
  23. Delay_DS18B20(80); //精確延時,大于480us
  24. DQ = 1; //拉高總線
  25. Delay_DS18B20(14);
  26. x = DQ; //稍做延時后,如果x=0則初始化成功,x=1則初始化失敗
  27. Delay_DS18B20(20);
  28. }

  29. unsigned char ReadOneChar(void)
  30. {
  31. unsigned char i=0;
  32. unsigned char dat = 0;
  33. for (i=8;i>0;i--)
  34. {
  35. DQ = 0; // 給脈沖信號
  36. dat>>=1;
  37. DQ = 1; // 給脈沖信號
  38. if(DQ)
  39. dat|=0x80;
  40. Delay_DS18B20(4);
  41. }
  42. return(dat);
  43. }

  44. void WriteOneChar(unsigned char dat)
  45. {
  46. unsigned char i=0;
  47. for (i=8; i>0; i--)
  48. {
  49. DQ = 0;
  50. DQ = dat&0x01;
  51. Delay_DS18B20(5);
  52. DQ = 1;
  53. dat>>=1;
  54. }
  55. }

  56. unsigned int ReadTemperature(void)
  57. {
  58. unsigned char a=0;
  59. unsigned char b=0;
  60. unsigned int t=0;
  61. float tt=0;
  62. Init_DS18B20();
  63. WriteOneChar(0xCC); //跳過讀序號列號的操作
  64. WriteOneChar(0x44); //啟動溫度轉換
  65. Init_DS18B20();
  66. WriteOneChar(0xCC); //跳過讀序號列號的操作
  67. WriteOneChar(0xBE); //讀取溫度寄存器
  68. a=ReadOneChar(); //讀低8位
  69. b=ReadOneChar(); //讀高8位
  70. t=b;
  71. t<<=8;
  72. t=t|a;
  73. tt=t*0.0625;
  74. t= tt*10+0.5; //放大10倍輸出并四舍五入
  75. return(t);
  76. }

  77. void display()//數碼管掃描函數
  78. {
  79. P2=table[m];
  80. L1=1;//暫未1,如用三極管驅動要改為0
  81. Delay_DS18B20(250);
  82. L1=0;//后關閉顯示

  83. P2=table[n];
  84. //P1=table[10];//第二位后顯示中間點
  85. L2=1;
  86. Delay_DS18B20(250);
  87. L2=0;
  88. P2=table[10];
  89. L2=1;
  90. Delay_DS18B20(250);
  91. L2=0;

  92. P2=table[p];//小數部分
  93. L3=1;
  94. Delay_DS18B20(250);
  95. L3=0;

  96. P2=table[12];
  97. L4=1;
  98. Delay_DS18B20(250);
  99. L4=0;
  100. }
  101. /*主函數部分程序*/
  102. void main()//主函數
  103. {
  104. unsigned int j;
  105. while(1)
  106. {
  107. j=ReadTemperature();//讀取溫度
  108. m=j/100;//分離出十位
  109. n=(j%100)/10;//分離出個位
  110. p=j%10;//分離出小數位
  111. display();//掃描數碼管
  112. }
  113. }
復制代碼

所有資料51hei提供下載:
基于DS18B20和單片機的溫度檢測.zip (67.55 KB, 下載次數: 54)


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

使用道具 舉報

沙發
ID:337888 發表于 2018-5-31 15:28 | 只看該作者
仿真的怎么打開?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品福利视频 | 午夜小视频在线播放 | 欧美在线观看一区 | 免费黄色的网站 | 精品久久久久久久久久 | 国产专区在线 | 成人做爰www免费看视频网站 | 欧美日韩高清一区二区三区 | 欧美日高清 | 综合网视频 | 亚洲欧美在线观看 | 亚洲成人国产精品 | 国产一区二区精品在线观看 | 久久av网| 国产中文字幕亚洲 | 亚洲最大福利网 | 日韩在线视频一区二区三区 | 精品亚洲永久免费精品 | 亚洲h色 | 欧美一区2区三区4区公司二百 | 欧美精品一区二区在线观看 | 国产日韩电影 | 日日夜夜精品视频 | 日本小视频网站 | 亚洲成人网在线播放 | 精品一区二区免费视频 | 国产精品毛片久久久久久 | 99久久99| 亚洲免费精品 | 国产精品久久久久无码av | 欧美激情在线一区二区三区 | 色又黄又爽网站www久久 | 男女激情网站免费 | 国产视频观看 | 91久色| 一级黄色影片在线观看 | 视频二区 | 成人小视频在线观看 | 亚洲视频欧美视频 | 国产美女精品视频 | 九九精品在线 |