📄 main.c
字号:
#include <at89x52.h>
#include <stdio.h>
#include "da1302.h"
#include "lcd1602.h"
#include "18B20.H"
#include "voice.h"
unsigned char keytemp;
unsigned char hourf,minutef;
void Delay1ms(unsigned int count)
{
unsigned int i,j;
for(i=0;i<count;i++)
for(j=0;j<120;j++);
}
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
SYSTEMTIME CurrentTime;
void main(void)
{
unsigned int i,a;
uchar time[8]={0x00,0x46,0x20,0x22,0x08,0x03,0x07,0x00}; //1302的时间预设值
LCD_initial();
Initial_DS1302();
set_time(time); /* //设置1302的初始值
DS1302_SetTime(DS1302_SECOND, 10);
DS1302_SetTime(DS1302_MINUTE, 52);
DS1302_SetTime(DS1302_HOUR, 10);
DS1302_SetTime(DS1302_WEEK, 2);
DS1302_SetTime(DS1302_DAY, 24);
DS1302_SetTime(DS1302_MONTH, 8);
DS1302_SetTime(DS1302_YEAR, 7); */
LCD_set_position(0x00);
LCD_prints("D: ");
LCD_set_position(0x40);;
LCD_prints("T: ");
i=ReadTemperature(3); //读温度
a=i; // 继续当前温度
IntToStr(i,&TempBuffer[0],3);
LCD_set_position(0x0B);
LCD_printc(TempBuffer[0]);
LCD_printc(TempBuffer[1]);
LCD_printc('.');
LCD_printc(TempBuffer[2]);
//LCD_printc(' ');
LCD_printc(0xDF);
LCD_printc('C');
while(1)
{unsigned char week;
i=ReadTemperature(3);
if (i!=a ) //如果有变化
{ a=i;
IntToStr(i,&TempBuffer[0],3);
LCD_set_position(0x0B);
LCD_printc(TempBuffer[0]);
LCD_printc(TempBuffer[1]);
LCD_printc('.');
LCD_printc(TempBuffer[2]);
//LCD_printc(' ');
LCD_printc(0xDF);
LCD_printc('C');
}
/* DS1302_GetTime(&CurrentTime);
DateToStr(&CurrentTime);
TimeToStr(&CurrentTime);
LCD_set_position(0x06);
LCD_prints(CurrentTime.DateString);
LCD_set_position(0x46);
LCD_prints(CurrentTime.TimeString);
*/
Initial_DS1302();
DS1302_GetTime(&CurrentTime);
if((CurrentTime.Hour==7)&&(CurrentTime.Minute==15)&&(CurrentTime.Second==0))
{
LCD_initial();
LCD_set_position(0x00);
LCD_prints("time to get up");
Time0_Init();
Play_Song(0); //播放
}
week=CurrentTime.Week+'0';
Delay1ms(1);
DateToStr(&CurrentTime);
TimeToStr(&CurrentTime);
LCD_set_position(0x02);
LCD_prints(CurrentTime.DateString);
LCD_set_position(0x42);
LCD_prints(CurrentTime.TimeString);
LCD_set_position(0x4c);
LCD_printc(week);
Delay1ms(100);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -