資源簡介
很好不錯 選對了就得啦 實時時鐘代碼

代碼片段和文件信息
/*******************************************************
?????????????天狼星電子版權所有?
?????????????->產品網站?http://www.tlxmcu.com/
?????????????->產品網店?http://shop59388970.taobao.com/
?????????????->產品咨詢?QQ:1412840915?
?->Email:tlxmcu@163.com
??
********************************************************/
//********************************************************/
//版????本:V1.0
//
//功能描述:上電之后就可以看到數碼管開始計時
//********************************************************/
#include
#include?
#define?uchar?unsigned?char?
#define?uint?unsigned?int?
sbit?sck=P1^0;
sbit?io=P1^1;
sbit?rst=P3^6;
sbit?smgen=P2^3;
unsigned?char?code?smg_du[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7c0x390x5e0x790x710x000x10};
unsigned?char?code?smg_we[]={0x080x180x280x380x480x580x680x78};
uchar?time_data[7]={106417115830}; //年周月日時分秒
uchar?write_add[7]={0x8c0x8a0x880x860x840x820x80};
uchar?read_add[7]={0x8d0x8b0x890x870x850x830x81};
uchar?disp[8];
void?write_ds1302_byte(uchar?dat);
void?write_ds1302(uchar?adduchar?dat);
uchar?read_ds1302(uchar?add);
void?set_rtc(void);
void?read_rtc(void);
void?time_pros(void);
void?display(void);
//************************************************
//延時函數,在12MHz的晶振頻率下
//大約50us的延時
//************************************************
void?delay_50us(uint?t)
{
uchar?j;
for(;t>0;t--)
????????for(j=19;j>0;j--);
}
//************************************************
//延時函數,在12MHz的晶振頻率下
//大約50ms的延時
//************************************************
void?delay_50ms(uint?t)
{
uint?j;
for(;t>0;t--)
for(j=6245;j>0;j--);
}
void?write_ds1302_byte(uchar?dat)
{
uchar?i;
for(i=0;i<8;i++)
{
sck=0;
io=dat&0x01;
dat=dat>>1;
sck=1;
}
}
void?write_ds1302(uchar?adduchar?dat)
{
rst=0;
_nop_();
sck=0;_nop_();
rst=1;
_nop_();
write_ds1302_byte(add);
write_ds1302_byte(dat);
rst=0;
_nop_();
io=1;
sck=1;
}
uchar?read_ds1302(uchar?add)
{
uchar?ivalue;
rst=0;
_nop_();
sck=0;
_nop_();
rst=1;
_nop_();
write_ds1302_byte(add);
for(i=0;i<8;i++)
{
value=value>>1;
sck=0;
if(io)
value=value|0x80;
sck=1;
}
rst=0;
_nop_();
sck=0;
_nop_();
sck=1;
io=1;
return?value;
}
void?set_rtc(void)
{
uchar?ij;
for(i=0;i<7;i++)
{
j=time_data[i]/10;
time_data[i]=time_data[i]%10;
time_data[i]=time_data[i]+j*16;
}
write_ds1302(0x8e0x00); //去除寫保護
for(i=0;i<7;i++)
{
write_ds1302(write_add[i]time_data[i]);
}
write_ds1302(0x8e0x80); //加寫保護
}
void?read_rtc(void)
{
uchar?i;
for(i=0;i<7;i++)
{
time_data[i]=read_ds1302(read_add[i]);
}
}
void?time_pros(void)
{
disp[0]=time_data[6]%16;
disp[1]=time_data[6]/16;
disp[2]=16;
disp[3]=time_data[5]%16;
disp[4]=time_data[5]/16;
disp[5]=16;
disp[6]=time_data[4]%16;
disp[7]=time_data[4]/16;
}
void?display(void)
{
uchar?i;
for(i=0;i
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????7512??2010-05-16?16:46??DS1302實時時鐘\ds1302
?????文件???????3301??2010-05-16?16:45??DS1302實時時鐘\ds1302.c
?????文件???????1663??2010-05-16?16:46??DS1302實時時鐘\ds1302.hex
?????文件?????????44??2010-05-16?16:46??DS1302實時時鐘\ds1302.lnp
?????文件???????7872??2010-05-16?16:46??DS1302實時時鐘\ds1302.LST
?????文件??????10583??2010-05-16?16:46??DS1302實時時鐘\ds1302.M51
?????文件???????8545??2010-05-16?16:46??DS1302實時時鐘\ds1302.OBJ
?????文件????????988??2012-08-30?15:07??DS1302實時時鐘\ds1302.Opt
?????文件????????188??2012-08-30?15:04??DS1302實時時鐘\ds1302.plg
?????文件???????2152??2010-05-16?16:46??DS1302實時時鐘\ds1302.Uv2
????.......???????987??2010-05-16?16:46??DS1302實時時鐘\ds1302_Opt.Bak
?????文件???????2152??2010-05-16?16:45??DS1302實時時鐘\ds1302_Uv2.Bak
????..AD...?????????0??2012-08-30?15:07??DS1302實時時鐘
-----------?---------??----------?-----??----
????????????????45987????????????????????13
評論
共有 條評論