找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 12899|回复: 17
打印 上一主题 下一主题
收起左侧

单片机热敏电阻温度计proteus仿真及程序

  [复制链接]
跳转到指定楼层
楼主
51单片机做的用热敏电阻来测温并用数码管显示,下面是电路原理图:


源程序:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. //
  5. unsigned char code dispbitcode[]=
  6. {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  7. //
  8. //

  9. unsigned char code LEDcode[]=
  10. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
  11. //
  12. //
  13. unsigned char dispbuf[8]={10,10,10,10,10,10,0,0};
  14. //
  15. unsigned char dispcount;
  16. unsigned int uiResult;
  17. bit sflag;
  18. sbit START=P3^1;
  19. sbit OE=P3^0;
  20. sbit EOC=P3^2;
  21. sbit P17=P1^7;
  22. //

  23. void delay(uint z)           //延时函数,约1ms
  24. {
  25.         uint x,y;
  26.         for(x=z;x>0;x--)
  27.                 for(y=110;y>0;y--);
  28. }
  29. void Display()
  30. {for(dispcount=0;dispcount<5;dispcount++)
  31. {P2=0xff;
  32. P1=LEDcode[dispbuf[dispcount]];
  33. if(dispcount==3)
  34. {P17=1;}
  35. P2=dispbitcode[dispcount];
  36. delay(1);
  37. P2=0xff;
  38. }
  39. }
  40. //
  41. void ADC0809()
  42. {
  43.         unsigned char i;
  44.         unsigned long y;

  45. //        START=0;
  46.         START=1;
  47.         START=0;
  48. P0=0Xff;
  49. //EOC=1;
  50. while(EOC==0);
  51. OE=1;
  52. uiResult=P0;
  53. OE=0;
  54. y=uiResult;
  55. uiResult=(y*2516)/128;
  56. if(uiResult<2732)
  57. { uiResult=2732-uiResult;sflag=1;}
  58. else
  59. { uiResult=uiResult-2732;sflag=0;}
  60. i=4;
  61. dispbuf[1]=0;
  62. dispbuf[2]=0;
  63. dispbuf[3]=0;
  64. dispbuf[4]=0;
  65. if(sflag==1)
  66. { dispbuf[0]=11;}
  67. else
  68. { dispbuf[0]=10;}
  69. dispbuf[5]=10;
  70. dispbuf[6]=10;
  71. dispbuf[7]=10;
  72. while(uiResult/10)
  73. {dispbuf[i]=uiResult%10;
  74. uiResult=uiResult/10;
  75. i--;
  76. }
  77. dispbuf[i]=uiResult;
  78. }
  79. //
  80. void main(void)
  81. {
  82.         xdata unsigned char kk = 0;
  83.        
  84.         START=0;
  85. OE=0;
  86. uiResult=148;
  87. while(1)
  88. {
  89.         kk++;
  90.         Display();
  91.         ADC0809();
  92. }
  93. }
  94. //
复制代码


热敏电阻温度计.zip

111.31 KB, 下载次数: 199, 下载积分: 黑币 -5

评分

参与人数 1黑币 +1 收起 理由
嘿,单片机 + 1 绝世好帖!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏10 分享淘帖 顶3 踩
回复

使用道具 举报

沙发
ID:143848 发表于 2016-10-27 15:08 来自手机 | 只看该作者
楼主可以分析下电路吗?
回复

使用道具 举报

板凳
ID:155228 发表于 2016-12-16 12:32 | 只看该作者
顶!顶!顶!顶!
回复

使用道具 举报

地板
ID:157204 发表于 2016-12-27 20:31 | 只看该作者
数字显示怎么不能调节?温度数值怎么不会变啊?
回复

使用道具 举报

5#
ID:99130 发表于 2017-2-5 22:03 | 只看该作者
我想知道热敏电阻你接哪里了 我没看到啊 而且7474不好找 能用哪些芯片代替吗
回复

使用道具 举报

6#
ID:68356 发表于 2017-2-6 19:43 | 只看该作者
好动西啊,感谢分享,收藏了
回复

使用道具 举报

7#
ID:73762 发表于 2017-2-7 10:26 | 只看该作者
感谢分享,收藏了
回复

使用道具 举报

8#
ID:200130 发表于 2017-5-12 22:32 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

9#
ID:200130 发表于 2017-5-12 22:34 | 只看该作者
谢谢楼主的分享
回复

使用道具 举报

10#
ID:199803 发表于 2017-5-15 20:32 来自手机 | 只看该作者
楼主,我下了这个,但是打开,发现调节滑动变阻器,显示屏数值不会改变,这是怎么回事?
回复

使用道具 举报

11#
ID:199803 发表于 2017-5-15 20:37 来自手机 | 只看该作者
越快乐越堕落 发表于 2017-2-5 22:03
我想知道热敏电阻你接哪里了 我没看到啊 而且7474不好找 能用哪些芯片代替吗

热敏电阻用滑动变阻器代替了
回复

使用道具 举报

12#
ID:215692 发表于 2017-6-29 09:29 | 只看该作者
谢谢楼主 很有用
回复

使用道具 举报

13#
ID:215692 发表于 2017-6-29 09:59 | 只看该作者
楼主能教一下如何改变电阻值电容值调整显示数字么
回复

使用道具 举报

14#
ID:185678 发表于 2017-9-7 13:25 | 只看该作者
没什么用处,一直显示-273
回复

使用道具 举报

15#
ID:235856 发表于 2017-10-1 10:55 | 只看该作者
下载了,谢谢楼主资源,先看看再评价
回复

使用道具 举报

16#
ID:235856 发表于 2017-10-1 21:28 | 只看该作者
确实显示不会变化,楼主能否给个说明呢
回复

使用道具 举报

17#
ID:396551 发表于 2018-9-12 10:28 | 只看该作者
下载了,谢谢楼主资源,先看看再评价
回复

使用道具 举报

18#
ID:760590 发表于 2020-5-25 12:11 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表