标题: 通过DS18B20结合直流电机的一个小程序 [打印本页]

作者: wddou    时间: 2017-10-28 12:01
标题: 通过DS18B20结合直流电机的一个小程序
通过DS18B20结合直流电机的一个小程序,希望赚一点黑币去下载附件,新手上路,请多指教

下载:
程序.rar (32.36 KB, 下载次数: 13)

单片机源程序如下:
  1. #include"temp.h"
  2. #include <reg52.h>


  3. typedef unsigned char u8;
  4. typedef unsigned int  u16;                  //定义字符类型


  5. sbit LSA=P2^2;
  6. sbit LSB=P2^3;
  7. sbit LSC=P2^4;
  8. sbit moto=P1^0;
  9. sbit beep=P1^6;                                  // 定义管脚
  10.                                                                        
  11. char num=0;                                                 
  12. u8 DisplayData[8];                                                                               //定义数组
  13. u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //段选显示数据

  14. void delay(u16 i)                  //   延时函数
  15. {
  16.         while(i--);       
  17. }
  18. void BeepSing(int temp)                  //蜂鸣器(脉冲)
  19. {
  20.     int WD;
  21.         beep=1;
  22.         WD=temp*0.0625*100+0.5;                        //放大100是为了保存小数点后两位,加0.5是为了四舍五入,单片机小数点后都省略
  23.         if(WD>26)
  24.         {
  25.             beep=0;
  26.                 delay(10);
  27.                 beep=1;
  28.                 delay(10);
  29.        
  30.         }
  31.         else
  32.         {
  33.             beep=1;
  34.         }

  35. }

  36. void Motorzd(int temp)                         //电机
  37. {
  38.     int wd;
  39.         moto=0;
  40.         wd=temp*0.0625*100+0.5;
  41.         if(wd>26)
  42.         {
  43.            moto=1;
  44.         }
  45.         else
  46.         {
  47.            moto=0;
  48.         }
  49. }

  50. void datazh(int temp)                                 //温度中转
  51. {
  52.     float zh;
  53.     if(temp<0)
  54.         {
  55.            DisplayData[0]=0x40;                   //显示负号
  56.            temp=temp-1;
  57.            temp=~temp;
  58.            zh=temp;
  59.            temp= zh*0.0625*100+0.5;
  60.         }
  61.         else
  62.         {
  63.            DisplayData[0] = 0x00;                   //无显示
  64.            zh=temp;
  65.            temp= zh*0.0625*100+0.5;
  66.         }
  67.         DisplayData[1] = smgduan[temp / 10000];                                        //百位
  68.         DisplayData[2] = smgduan[temp % 10000 / 1000];                        //十位
  69.         DisplayData[3] = smgduan[temp % 1000 / 100] | 0x80;                        //个位
  70.         DisplayData[4] = smgduan[temp % 100 / 10];                                    //小数点后一位
  71.         DisplayData[5] = smgduan[temp % 10];                                                //小数点后两位

  72. }
  73. void LEDDisplay()                                                                 //LED显示 ,位选
  74. {
  75.     u8 i;
  76.         for(i=0;i<6;i++)
  77.         {
  78.            switch(i)
  79.            {
  80.                      case(0):
  81.                       LSA=0;LSB=0;LSC=0;break;
  82.                   case(1):
  83.                       LSA=1;LSB=0;LSC=0;break;
  84.                   case(2):
  85.                       LSA=0;LSB=1;LSC=0;break;
  86.                   case(3):
  87.                       LSA=1;LSB=1;LSC=0;break;
  88.                   case(4):
  89.                       LSA=0;LSB=0;LSC=1;break;
  90.                   case(5):
  91.                       LSA=1;LSB=0;LSC=1;break;
  92.                   
  93.            }
  94.            P0=DisplayData[i];
  95.            delay(100);
  96.            P0=0x00;           //消隐
  97.         }
  98. }

  99. void main()
  100. {
  101.       while(1)
  102.           {
  103.            BeepSing(DS18B20RadeTemp());                                  //蜂鸣器
  104.            Motorzd(DS18B20RadeTemp());                                  //电机
  105.            datazh(DS18B20RadeTemp());                                 //数据处理
  106.            LEDDisplay();                                                        //数显
  107.           }

  108. }

复制代码

所有资料51hei提供下载:








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