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

📄 main.c

📁 单片机项目19-电子日历(1602显示)
💻 C
字号:
/******************************************************************/
//#作者
//	BLF。
//#功能
//	1.电子日历,显示年月日、时分秒、星期和温度
//	2.利用4个按键调整,set键按下一次调解年月日星期时分秒,并闪烁,加减键调节闪烁的量
//#编写时间
//	2011年5月31日。
/******************************************************************/
#include<reg51.h>
#include"ds1302.c"
#include"1602.c"
#include"ds18b20.c"
#include"key.c"
#define uchar unsigned char
#define uint unsigned int
uchar cp,flash,Temp;
/*******************************显示函数***************************/
void display(void)
{
	//F1602_clear();
	gotoxy(1,0);	//第一行
	display_string("20");//显示20
	if(key_set_flag == 1)//显示年的调整值并闪烁
	{
		if(flash)display_num(time_tmp[0]);
		else display_string("  ");
	}
	else display_num(year);
	display_string("/");
	if(key_set_flag == 2)//显示月的调整值并闪烁
	{
		if(flash)display_num(time_tmp[1]);
		else display_string("  ");
	}
	else display_num(moon);
	display_string("/");
	if(key_set_flag == 3)//显示日的调整值并闪烁
	{
		if(flash)display_num(time_tmp[2]);
		else display_string("  ");
	}
	else display_num(date);
	display_string(" WEEK");
	if(key_set_flag == 4)//显示星期的调整值并闪烁
	{
		if(flash)write_data(num[time_tmp[3]]);
		else display_string(" ");
	}
	else write_data(num[week]);
	gotoxy(2,0);   	//第二行
	if(key_set_flag == 5)//显示小时的调整值并闪烁
	{
		if(flash)display_num(time_tmp[4]);
		else display_string("  ");
	}
	else display_num(hour);
	if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
	if(key_set_flag == 6)//显示分的调整值并闪烁
	{
		if(flash)display_num(time_tmp[5]);
		else display_string("  ");
	}
	else display_num(min);
	if(flash == 0x00)display_string(":");else if(flash == 0xff)display_string(" ");//冒号闪烁
	if(key_set_flag == 7)//显示秒的调整值并闪烁
	{
		if(flash)display_num(time_tmp[6]);
		else display_string("  ");
	}
	else display_num(sec);
	display_string("   T ");display_num(Temp);display_string("C");
}
/*****************************中断服务函数**************************/
void timer0_isr(void) interrupt 1
{
	TMOD = 0x01;
	TH0 = (65536 - 4000)/256;
	TL0 = (65536 - 4000)%256;
	cp++;
	if(cp >= 100)		//半秒
	{
		cp = 0;
		flash = ~flash;
		display();
	}	
}
/*****************************中断初始化函数***********************/
void timer0_init(void)
{
	TMOD = 0x01;
	TH0 = (65536 - 4000)/256;
	TL0 = (65536 - 4000)%256;
	ET0 = 1;
	EA = 1;
	TR0 = 1;
}
/********************************主函数函数***********************/
void main(void)
{
	timer0_init();
	F1602_init();
	F1602_clear();
	while(1)
	{
		key();
		get_ds1302_time();
		Temp = Read_Temperature();
	}
}

⌨️ 快捷键说明

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