初级会员

- 积分
- 164
- 金钱
- 164
- 注册时间
- 2017-9-18
- 在线时间
- 42 小时
|

楼主 |
发表于 2018-5-7 21:31:16
|
显示全部楼层
本帖最后由 aswsd 于 2018-5-8 15:26 编辑
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "ds18b20.h"
#include "key.h"
#include "24cxx.h"
#include "myiic.h"
#include "rtc.h"
u8 save =0;
u8 x=0;
int main(void)
{
u8 t=0;
u16 t1=0;
u8 key,pm;
u8 hour,min,sec;
short temperature,tempsave;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
delay_init();
uart_init(9600);
LED_Init();
LCD_Init();
TIM1_PWM_Init(899,0);
AT24CXX_Init();
KEY_Init();
POINT_COLOR=RED;
LCD_ShowString(60,50,200,16,16,"Mini STM32");
LCD_ShowString(60,70,200,16,16,"DS18B20 TEST");
LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
LCD_ShowString(60,110,200,16,16,"2014/3/12");
while(DS18B20_Init())
{
LCD_ShowString(60,130,200,16,16,"DS18B20 Error");
delay_ms(200);
LCD_Fill(60,130,239,130+16,WHITE);
delay_ms(200);
}
LCD_ShowString(60,130,200,16,16,"DS18B20 Ready!");
while(AT24CXX_Check())
{
LCD_ShowString(60,150,200,16,16,"24C02 Check Failed!");
delay_ms(500);
LCD_ShowString(60,150,200,16,16,"Please Check! ");
delay_ms(500);
}
LCD_ShowString(60,150,200,16,16,"24C02 Ready!");
while(RTC_Init())
{
LCD_ShowString(60,170,200,16,16,"RTC ERROR! ");
delay_ms(800);
LCD_ShowString(60,170,200,16,16,"RTC Trying...");
}
LCD_ShowString(60,170,200,16,16,"RTC Ready!");
POINT_COLOR=BLUE;
while(1)
{
key=KEY_Scan(0);
if(key==KEY0_PRES)
{
LCD_Fill(60,190,239,190+16,WHITE);
for(key=0;key<5;key++)
{
LCD_ShowString(60,190+20*key,90,16,16,"Temp: . C");
LCD_ShowString(170,190+20*key,200,16,16," : : ");
temperature=AT24CXX_ReadOneByte(6*key+1);
temperature<<=8;
temperature+=AT24CXX_ReadOneByte(6*key);
temperature=(float)temperature*0.625;
pm=AT24CXX_ReadOneByte(6*key+2);
hour=AT24CXX_ReadOneByte(6*key+3);
min=AT24CXX_ReadOneByte(6*key+4);
sec=AT24CXX_ReadOneByte(6*key+5);
if(pm==0)LCD_ShowChar(60+40,190+20*key,'-',16,0);
else LCD_ShowChar(60+40,190+20*key,' ',16,0);
LCD_ShowNum(60+40+8,190+20*key,temperature/10,2,16);
LCD_ShowNum(60+40+32,190+20*key,temperature%10,1,16);
LCD_ShowNum(170,190+20*key,hour,2,16);
LCD_ShowNum(170+24,190+20*key,min,2,16);
LCD_ShowNum(170+24+24,190+20*key,sec,2,16);
}
delay_ms(1000);
delay_ms(1000);
delay_ms(1000);
LCD_Fill(60,190,239,329,WHITE);
}
LCD_ShowString(60,190,200,16,16,"Temp:");
LCD_ShowString(60+64,190,200,16,16,".");
LCD_ShowString(60+80,190,200,16,16,"C");
if(t1==500) //代表周期为5s
{
if(x==30)x=0;
save=1;
t1=0;
}
if(t%10==0)
{
temperature=DS18B20_Get_Temp();
if(temperature<0)
{
LCD_ShowChar(60+40,190,'-',16,0);
temperature=-temperature;
}else LCD_ShowChar(60+40,190,' ',16,0);
LCD_ShowNum(60+40+8,190,temperature/10,2,16);
LCD_ShowNum(60+40+32,190,temperature%10,1,16);
}
delay_ms(10);
t++;
t1++;
if(t==20)
{
t=0;
LED0=!LED0;
}
}
}
注释从MDK拷贝过来全变乱码。。我删掉了 |
|