#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"
#include "delay.h"
#include "led.h"
#include "key.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
#include "lcd.h"
#include "rtc.h"
#include "wkup.h"
#include "adc.h"
#include "dma.h"
#include "24cxx.h"
#include "flash.h"
#include "touch.h"
#include "24l01.h"
#include "mmc_sd.h"
#include "remote.h"
#include "ds18b20.h"
int main(void)
{
u8 key;
u16 adcx;
float temp1;
float temperate;
short temp;
Stm32_Clock_Init(9);//系统时钟设置
delay_init(72); //延时初始化
uart_init(72,9600); //串口1初始化
LCD_Init(); //初始化液晶
LED_Init();
Adc_Init(); //LED初始化
Remote_Init(); //初始化红外接收
while(1)
{
if(Remote_Rdy)
{
key=Remote_Process();
switch(key)
{
case 162:
LCD_ShowString(86,150, "POWER");
  OINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,170,"TEMP_VAL:");
LCD_ShowString(60,190,"TEMP_VOL:0.000V");
LCD_ShowString(60,210,"TEMPERATE:00.00C");
while(1)
{
adcx=Get_Temp();
LCD_ShowNum(132,170,adcx,4,16);//显示ADC的值
temp1=(float)adcx*(3.3/4096);
temperate=temp1;//保存温度传感器的电压值
adcx=temp1;
LCD_ShowNum(132,190,adcx,1,16); //显示电压值整数部分
temp1-=(u8)temp1; //减掉整数部分
LCD_ShowNum(148,190,temp1*1000,3,16);//显示电压小数部分
temperate=(1.43-temperate)/0.0043+25;//计算出当前温度值
LCD_ShowNum(140,210,temperate,2,16); //显示温度整数部分
temperate-=(u8)temperate;
LCD_ShowNum(164,210,temperate*100,2,16);//显示温度小数部?
LED0=!LED0;
delay_ms(250);
}
break;
case 226:
LCD_ShowString(86,150, "ALIEN ");
while(DS18B20_Init())//初始化DS18B20,兼检测18B20
{
LCD_ShowString(60,170,"DS18B20 Check Failed!");
delay_ms(500);
LCD_ShowString(60,190,"Please Check! ");
delay_ms(500);
}
LCD_ShowString(60,170,"DS18B20 Ready! ");
  OINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,190, "Temperate: . C");
while(1)
{
temp=DS18B20_Get_Temp();
if(temp<0)
{
temp=-temp;
LCD_ShowChar(140,150,'-',16,0);//显示负号
}
LCD_ShowNum(148,190,temp/10,2,16);//显示温度值
LCD_ShowNum(172,190,temp%10,1,16);//显示温度值
delay_ms(200);
}
break;
}
}
}
}
|