⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 热敏电阻温度计.c

📁 这是我用热敏电阻做的一个热敏电阻温度计程序!这样大大节约了成本!
💻 C
字号:
sfr ADC_CONTR  = 0xc5;
sfr ADC_DATA   = 0xc6;
sfr P1M0  = 0x93;
sfr P1M1  = 0x94;


#include <reg51.h>
#define uchar unsigned  char
#define uint  unsigned  int
#include   <math.h>     
#include   <stdio.h> 
      
/***************************/ 
/*           延时           */
/***************************/
void  delayMs(unsigned int number)
    {
     unsigned char  temp;
     for(;number!=0;number--)
      {
       for(temp=0;temp<124;temp++)
           ;
      } 
    }
/*****************************/
/*       串口发送程序,9600bps */
/*****************************/   
 void str(void)
   {
      PCON=0X00;
      TL1=0XFD;
      TH1=0XFD;
      TMOD=0X20;
      TR1=1;
     SCON=0X50;
         } 

/*****************************/
/*       主程序              */ 
/*****************************/  

void main(void)
{ 
  uchar i;
  float v;
  float R;
  uint T;
  float ADC_DATA_SUM ;
  float ADC_DATA_AVG;
  
 str();
for(i=0;i<8;i++)
  {
   ADC_CONTR = ADC_CONTR|0x80;  //1000,0000打开A/D转换电源
   P1M0 = 0x80;                 //0000,1000用于A/D转换的P1.7口,先设为开漏
   P1M1 = 0x80;                 //0000,1000P1.7先设为开漏。断开内部上拉电阻
   delayMs();                  //20
   ADC_CONTR = ADC_CONTR&0xE0; //1110,0000 清ADC_FLAG,ADC_START位和低3位
   ADC_CONTR = ADC_CONTR|0x07; //设置当前通道号P1.7delay(1);                 //延时使输入电压达到稳定
   ADC_DATA = 0;               //清A/D转换结果寄存器
   ADC_CONTR = ADC_CONTR|0x88; //0000,1000ADCS = 1,启动转换    
do { ; }        
while((ADC_CONTR & 0x10)==0);   //0001,0000等待A/D转换结束
ADC_CONTR &=0xe7; 
ADC_DATA_SUM+=ADC_DATA;
    }
     
ADC_DATA_AVG=ADC_DATA_SUM/8;
              
v=5*(ADC_DATA_AVG/256.0);          //AD转换出电压
R=v/((5-v)/10000);              //求出热敏电阻的阻值
if(R=12535)
T=20;
else if(R=11974)
T=21;
else if(R=11441)
T=22;
else if(R=10935)
T=23;
else if (R=10455)
T=24;
else if(R=10000)
T=25;
else if(R=9566)
T=26;
else if(R=9155)
T=27;
else if(R=8763)
T=28;
else if(R=8391)
T=29;
else if(R=8037)
T=30;
SBUF=T;                            //串口输出
 while(TI==0);
   TI=0;
   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -