标题: 单片机热敏电阻温度计proteus仿真及程序 [打印本页]

作者: 51黑ff    时间: 2016-9-12 11:47
标题: 单片机热敏电阻温度计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, 下载次数: 200, 下载积分: 黑币 -5


作者: 七颗星星    时间: 2016-10-27 15:08
楼主可以分析下电路吗?
作者: zryZRY    时间: 2016-12-16 12:32
顶!顶!顶!顶!
作者: hzf11    时间: 2016-12-27 20:31
数字显示怎么不能调节?温度数值怎么不会变啊?
作者: 越快乐越堕落    时间: 2017-2-5 22:03
我想知道热敏电阻你接哪里了 我没看到啊 而且7474不好找 能用哪些芯片代替吗
作者: xiuyueyuan2013    时间: 2017-2-6 19:43
好动西啊,感谢分享,收藏了
作者: mirage    时间: 2017-2-7 10:26
感谢分享,收藏了
作者: a3211900    时间: 2017-5-12 22:32
谢谢楼主的分享
作者: a3211900    时间: 2017-5-12 22:34
谢谢楼主的分享
作者: 这东西123    时间: 2017-5-15 20:32
楼主,我下了这个,但是打开,发现调节滑动变阻器,显示屏数值不会改变,这是怎么回事?
作者: 这东西123    时间: 2017-5-15 20:37
越快乐越堕落 发表于 2017-2-5 22:03
我想知道热敏电阻你接哪里了 我没看到啊 而且7474不好找 能用哪些芯片代替吗

热敏电阻用滑动变阻器代替了
作者: noStudying    时间: 2017-6-29 09:29
谢谢楼主 很有用
作者: noStudying    时间: 2017-6-29 09:59
楼主能教一下如何改变电阻值电容值调整显示数字么
作者: 垒神    时间: 2017-9-7 13:25
没什么用处,一直显示-273
作者: llkillercl    时间: 2017-10-1 10:55
下载了,谢谢楼主资源,先看看再评价
作者: llkillercl    时间: 2017-10-1 21:28
确实显示不会变化,楼主能否给个说明呢
作者: 刘小七    时间: 2018-9-12 10:28
下载了,谢谢楼主资源,先看看再评价
作者: 北京路对面的    时间: 2020-5-25 12:11
感谢分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1