资源简介
很好不错 选对了就得啦 实时时钟代码

代码片段和文件信息
/*******************************************************
天狼星电子版权所有
->产品网站 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
相关资源
- bp神经网络源代码,可直接运行
- 随机森林R语言代码
- 计算机图形学 边填充算法实现代码
- 直流无刷电机方波驱动 stm32 例程代码
- 仿知乎界面小程序源代码
- 贪吃蛇源代码.fla
- 周立功开发板ProASIC3实验-syn_FIFO代码
- IMX385驱动代码.zip
- dotnet 写字板 实验 源代码 不好请要不
- 图像二维小波变换的实现源代码
- 八三编码器设计 VHDL代码 简单,包附
- linux应用层的华容道游戏源代码
- 交通咨询模拟系统完整代码
- http请求状态代码
- 数值分析所有实验代码
- 网上拍卖系统完整源代码
- 音乐代码转换软件 单片机编程时用
- CSMA/CD等动画演示加源代码
- silicon lab公司的收音IC SI47XX全套开发工
- 用51单片机实现G代码翻译
- 合同管理系统的源代码(附数据库)
- 用VC 编写的仿QQ聊天室程序源代码
- web班级网站设计代码
- 38k单片机红外发送代码、keil
- STM32F103 串口程序(完整版)
- 网络唤醒代码
- VPC3_DPV1源代码,Profibus
- PB做的托盘程序(最小化后在左下角显
- RSA算法源码
- ubuntu9.10 可加载内核模块和字符设备驱
评论
共有 条评论