標(biāo)題:
制冷溫度控制STM32
[打印本頁(yè)]
作者:
小喬流水要回家
時(shí)間:
2017-4-6 10:46
標(biāo)題:
制冷溫度控制STM32
#include "stm32f10x.h"
#include "delay.h"
#include "sys.h"
#include "math.h"
#include "usart.h"
#include "tl5616.h"
#include "AD7705.h"
#include "led.h"
#include "stm32f10x_tim.h"
#include "tad.h"
#include "ivd.h"
#include "dv.h"
#include "adt.h"
/*********外部接口設(shè)計(jì)************/
u16 T;
int main(void)
{
u16 i=0; //溫度計(jì)數(shù)
u8 j=0; //溫度判斷計(jì)數(shù)
//熱敏電阻數(shù)字值
double da;
double it;
double V;
double ad_t;
u8 sign=0; //符號(hào)標(biāo)志
//溫度正負(fù) 1-正,2-負(fù)
// u16 ts; //溫度設(shè)定值
double dts1; //溫度差值
u8 s1; //溫度控制標(biāo)志符
double ts;
double x;
float tempure; //溫度值
double rt;
double t1;
double t;
double tt;
// double ad_t;
double id;
u16 ad;
u16 ac;
u16 tem;
double dt;
double l;
int a;
NVIC_Configuration();
delay_init(); //延時(shí)函數(shù)初始化
uart_init(9600); //轉(zhuǎn)換為38400
AD7705_AllInit();
AD7705_Init();
delay_ms(20);
TLV5616_Init();
TLV5616I_SPI_SendByte(0);
LED_Init();
LED1_ON;
LED2_ON;
delay_ms(100);
LED1_OFF;
LED2_OFF;
/*****/
//s2=1; //負(fù)溫度
/*****/
while(1)
{
//ts=-10;
i=i+1; //計(jì)數(shù)
delay_ms(5); //需要延時(shí) delay_ms(20)
//這里測(cè)出的ad采樣值是對(duì)的
// ad=35000;
AD7705_Init();
ad=ReadAD7705();
delay_ms(1000);
//;
/* tem=recieves_data[1] ;
ts=-(tem);
ad_t= RT_AD(ts); //目標(biāo)溫度的數(shù)字量
V=(ad_t*2.4950)/65535;
id=(V*4096)/(2*1.216);
TLV5616I_SPI_SendByte(id); */
while(1)
{
tem=recieves_data[1];
ac=recieves_data[2];
//ac=3;
// ts=-10;
ad_t= RT_AD(ts); //目標(biāo)溫度的數(shù)字量
V=(ad_t*2.4950)/65535;
ad=ReadAD7705();
id=(V*4096)/(2*1.145);
if(ad_t>ad)
{
if(ac==5)
{id=id-1100;} //1000對(duì)應(yīng)的是0.5,
else if(ac==3)
{id=id-700;} // 500對(duì)應(yīng)的是0.2
else if(ac==1)
{id=id-400;} // 200對(duì)應(yīng)的是0.1
delay_ms(5);
TLV5616I_SPI_SendByte(id);
}
else if(ad_t<ad)
{
if(ac==5)
{id=id+1200;} //1000對(duì)應(yīng)的是0.5
else if(ac==3)
{id=id+600;} // 500對(duì)應(yīng)的是0.2
else if(ac==1)
{id=id+400;} //200對(duì)應(yīng)的是0.1
delay_ms(5);
TLV5616I_SPI_SendByte(id);
}
if(USART_RX_BUF==0x77) //0x77發(fā)送0x88 聯(lián)機(jī)
{
USART1_SEND(0x88);
delay_us(100);
USART_RX_BUF=0x00;
}
else if(USART_RX_BUF==0x58) //測(cè)量
{
USART1_SEND16(ac);
delay_us(100);
USART_RX_BUF=0x00;
}
}
}
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1