标题: 51单片机恒温室控制电路+源程序 DCS [打印本页]

作者: 837877663    时间: 2019-4-15 23:34
标题: 51单片机恒温室控制电路+源程序 DCS
用电机驱动模块驱动加热片,温度检测采用DS18B20,显示屏为0.96寸OLED,带独立按键
电路原理图如下:



单片机源程序如下:
  1. /************************************************************************************

  2. * 1. void delay(unsigned int z) -- 主函数中用于调整显示效果的延时函数,STC89C52 12MHZ z=1时大约延时1ms,其他频率需要自己计算
  3. * 2. void main(void) -- 主函数
  4. *
  5. * History: none;
  6. *
  7. *************************************************************************************/

  8. //#include "reg52.h"
  9. #include "intrins.h"
  10. #include "codetab.h"
  11. #include "LQ12864.h"

  12. sbit GN=P1^1;
  13. sbit D0=P1^4;
  14. sbit D1=P1^5;
  15. sbit D2=P1^6;
  16. sbit D3=P1^7;
  17. sbit J1=P3^2;
  18. sbit J2=P3^3;

  19. void main(void)
  20. {
  21.         unsigned char i;
  22.         uchar str[3];
  23.         OLED_Init(); //OLED初始化
  24.         EA = 1;   //使能总中断
  25.     ConfigUART(9600);  //配置波特率为9600
  26.         OLED_CLS();
  27.         for(i=0; i<5; i++)//通过点整显示汉字 -- i表示字表数组的位置
  28.         {
  29.                 OLED_P16x16Ch(i*16,0,i);
  30.         }
  31.         for(i=0; i<2; i++)//通过点整显示汉字 -- i表示字表数组的位置
  32.         {
  33.                 OLED_P16x16Ch(i*16,2,i+5);
  34.         }
  35.         
  36.         
  37.         for(i=0; i<3; i++)//通过点整显示汉字 -- i表示字表数组的位置
  38.         {
  39.                 OLED_P16x16Ch(i*16+32,2,i+2);
  40.         }
  41.         GN=0;
  42.         J1=0;
  43.         while(1)
  44.         {
  45.                 str[0]=temp2/100+0x30;
  46.                 str[1]=temp2%100/10+0x30;
  47.                 OLED_P8x16Str(47,2,str);
  48.                 tmpchange();
  49.                 str[0]=tmp()/100+0x30;
  50.                 str[1]=tmp()%100/10+0x30;
  51.                 OLED_P8x16Str(47,0,str);
  52.                 delay(100);
  53.                 if(D0==0)
  54.                 {
  55.                         delay(10);
  56.                         if(D0==0)
  57.                         {
  58.                                    temp2+=10;
  59.                         }
  60.                         while(!D0);
  61.                         delay(10);
  62.                         while(!D0);
  63.                 }
  64.                 if(D1==0)
  65.                 {
  66.                         delay(10);
  67.                         if(D1==0)
  68.                         {
  69.                                     temp2-=10;
  70.                         }
  71.                         while(!D1);
  72.                         delay(10);
  73.                         while(!D1);
  74.                 }
  75.                 if(temp<temp2)
  76.                 {
  77.                         J2=1;
  78.                 }else J2=0;
  79.         }
  80. }
复制代码

所有资料51hei提供下载:
源代码.rar (66.19 KB, 下载次数: 17)



作者: admin    时间: 2019-4-17 01:28
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)




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