资源简介
很好不错 选对了就得啦 实时时钟代码
代码片段和文件信息
/*******************************************************
天狼星电子版权所有
->产品网站 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
相关资源
- 基于机器学习方法(SVM和NB)的MIMO天
- flex与Bison小手册包含一个编译器的实
- 遗传算法源代码
- STM32F103的LoRa模块驱动源代码
- 压缩感知代码-沙威
- QT 小游戏 加农炮 源码 +教程刚刚把源
- 数据结构上机实验_栈和队列的应用
- Struts2+Spring+Hibernate在线商城项目源代
- 改变树控件背景颜色的VC源代码
- NI_数据交换规格书 NIMIF1.3.1便携类(代
- K-medoids聚类源代码K-means改进
- Ymodem 源代码
- 图像分割ncut代码
- 威纶通TK6070IP触摸屏和51通信的MODBUS代
- 禁忌搜索算法的车辆调度问题代码
- spring-boot-websocket-client代码
- JS留言板添加和删除代码,简单,漂亮
- 面波频散曲线求解代码
- 飞思卡尔智能汽车赛代码XS128
- 学习vmm的好,用SV写的代码
- cuda实现LU分解线性方程源代码
- arx培训含源代码
- FIR滤波器的verilog代码
- handlebars官方及源代码
- 广工操作系统课设代码及文档
- 博客文章《完成端口详解》配套代码
- k近邻算法knn的c代码
- 网络编码机会路由Opportunistic Routing源
- Arx自定义实体代码.rar
- 差图法源代码,两图片做差图比较,
评论
共有 条评论