?? main.c
字號:
/******************************************************************/
//#作者
// BLF。
//#功能
// 1.電子日歷,顯示年月日、時分秒、星期和溫度
// 2.利用4個按鍵調(diào)整,set鍵按下一次調(diào)解年月日星期時分秒,并閃爍,加減鍵調(diào)節(jié)閃爍的量
//#編寫時間
// 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;
/*******************************顯示函數(shù)***************************/
void display(void)
{
//F1602_clear();
gotoxy(1,0); //第一行
display_string("20");//顯示20
if(key_set_flag == 1)//顯示年的調(diào)整值并閃爍
{
if(flash)display_num(time_tmp[0]);
else display_string(" ");
}
else display_num(year);
display_string("/");
if(key_set_flag == 2)//顯示月的調(diào)整值并閃爍
{
if(flash)display_num(time_tmp[1]);
else display_string(" ");
}
else display_num(moon);
display_string("/");
if(key_set_flag == 3)//顯示日的調(diào)整值并閃爍
{
if(flash)display_num(time_tmp[2]);
else display_string(" ");
}
else display_num(date);
display_string(" WEEK");
if(key_set_flag == 4)//顯示星期的調(diào)整值并閃爍
{
if(flash)write_data(num[time_tmp[3]]);
else display_string(" ");
}
else write_data(num[week]);
gotoxy(2,0); //第二行
if(key_set_flag == 5)//顯示小時的調(diào)整值并閃爍
{
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)//顯示分的調(diào)整值并閃爍
{
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)//顯示秒的調(diào)整值并閃爍
{
if(flash)display_num(time_tmp[6]);
else display_string(" ");
}
else display_num(sec);
display_string(" T ");display_num(Temp);display_string("C");
}
/*****************************中斷服務(wù)函數(shù)**************************/
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();
}
}
/*****************************中斷初始化函數(shù)***********************/
void timer0_init(void)
{
TMOD = 0x01;
TH0 = (65536 - 4000)/256;
TL0 = (65536 - 4000)%256;
ET0 = 1;
EA = 1;
TR0 = 1;
}
/********************************主函數(shù)函數(shù)***********************/
void main(void)
{
timer0_init();
F1602_init();
F1602_clear();
while(1)
{
key();
get_ds1302_time();
Temp = Read_Temperature();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -