#include"shumguan.h"
#include "ds1302.h"
char num=0;
sbit beep=P1^3;
u8 DisplayData[8];
u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
extern u8 TIME[7];
unsigned char NOW[4]={2,5,0,0,}; // 番茄计时终止时间25分钟
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 数 名 : datapros()
* 函数功能 : 时间读取处理转换函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void datapros()
{
Ds1302ReadTime();
DisplayData[0] = smgduan[TIME[1]/16];//分
DisplayData[1] = smgduan[TIME[1]&0x0f]+0x80;
DisplayData[2] = smgduan[TIME[0]/16];//秒
DisplayData[3] = smgduan[TIME[0]&0x0f];
}
/*******************************************************************************
* 函数名 :DigDisplay()
* 函数功能 :数码管显示函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void DigDisplay()
{
u8 i;
for(i=0;i<4;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
LSA=1;LSB=1;LSC=1; break;//显示第0位
case(1):
LSA=0;LSB=1;LSC=1; break;//显示第1位
case(2):
LSA=1;LSB=0;LSC=1; break;//显示第2位
case(3):
LSA=0;LSB=0;LSC=1; break;//显示第3位
}
P2=DisplayData[i];//发送数据
delay(100); //间隔一段时间扫描
/*P0=0x00;//消隐*/
}
}
void zhongzhi()
{
if(DisplayData[0]==NOW[0]&&DisplayData[1]== NOW[1]
&&DisplayData[2]==NOW[2]&&DisplayData[3] == NOW[3])// 设置NOW的时间与时钟时间显示比较
{
Ds1302Write(0x80,TIME[0]|0x80);
}
}
#include "ds1302.h"
char num=0;
sbit beep=P1^3;
u8 DisplayData[8];
u8 code smgduan[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
extern u8 TIME[7];
unsigned char NOW[4]={2,5,0,0,}; // 番茄计时终止时间25分钟
/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}
/*******************************************************************************
* 函 数 名 : datapros()
* 函数功能 : 时间读取处理转换函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void datapros()
{
Ds1302ReadTime();
DisplayData[0] = smgduan[TIME[1]/16];//分
DisplayData[1] = smgduan[TIME[1]&0x0f]+0x80;
DisplayData[2] = smgduan[TIME[0]/16];//秒
DisplayData[3] = smgduan[TIME[0]&0x0f];
}
/*******************************************************************************
* 函数名 :DigDisplay()
* 函数功能 :数码管显示函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void DigDisplay()
{
u8 i;
for(i=0;i<4;i++)
{
switch(i) //位选,选择点亮的数码管,
{
case(0):
LSA=1;LSB=1;LSC=1; break;//显示第0位
case(1):
LSA=0;LSB=1;LSC=1; break;//显示第1位
case(2):
LSA=1;LSB=0;LSC=1; break;//显示第2位
case(3):
LSA=0;LSB=0;LSC=1; break;//显示第3位
}
P2=DisplayData[i];//发送数据
delay(100); //间隔一段时间扫描
/*P0=0x00;//消隐*/
}
}
void zhongzhi()
{
if(DisplayData[0]==NOW[0]&&DisplayData[1]== NOW[1]
&&DisplayData[2]==NOW[2]&&DisplayData[3] == NOW[3])// 设置NOW的时间与时钟时间显示比较
{
Ds1302Write(0x80,TIME[0]|0x80);
}
}
