- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数字万年历程序
#include reg51.h
#include intrins.h
#define uchar unsigned char
#define uint unsigned int
#define LED_DAT P0 //LED数据端口
#define LED_SEL P2 //LED位选端口
sbit IO=P1^0; //DS1302数据口
sbit SCLK=P1^1; //DS1302时钟口
sbit RST=P1^2; //DS1302复位
sbit ADD=P3^1; //数字加
sbit SUB=P3^4; //数字减
uchar year=0x14;
uchar month=0x01;
uchar dae=0x01;
uchar hour=0;
uchar minute=0;
uchar second=0;
uchar f=0;//显示时间或日期的标志位
uchar tf=0xfe;//时间标志位
uint count=0;
uchar num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0X40};
uchar sel[]={0,1,2,4,8,16,32,64,128};
void display(uchar dat,uchar cmd) //显示函数,dat为显示的数据,cmd为显示在第几位
{
LED_SEL=0xff;
LED_DAT=num[dat];
_nop_();
LED_SEL=~sel[cmd];
}
void delayus(uchar us) //us级延时函数
{
while(us--)
{
_nop_();
}
}
void DS1302WriteByte(uchar dat) //写8位数据
{
uchar i;
SCLK=0;//初始时钟线置为0
delayus(2);
for(i=0;i8;i++)//开始传输8个字节的数据
{
IO=dat0x01;//取最低位,注意DS1302的数据和地址都是从最低位开始传输的
delayus(2);
SCLK=1;//时钟线拉高,制造上升沿,IO的数据被传输
delayus(2);
SCLK=0;//时钟线拉低,为下一个上升沿做准备
dat=1;//数据右移一位,准备传输下一位数据
}
}
uchar DS1302ReadByte() //读8位数据
{
uchar i,dat;
delayus(2);
for(i=0;i8;i++)
{
dat=1;//要返回的数据左移一位
if(IO==1)//当数据线为高时,证明该位数据为1
dat|=0x80;//要传输数据的当前值置为1,若不是,则为0
SCLK=1;//拉高时钟线delayus(2);
SCLK=0;//制造下降沿
delayus(2);
}
return dat;//返回读取出的数据
}
uchar DS1302Read(uchar cmd) //读取DS1302中的数据,cmd为相应寄存器的地址
{
uchar dat;
RST=0;//初始RST线置为0
SCLK=0;//初始时钟线置为0
RST=1;//初始RST置为1,传输开始
DS1302WriteByte(cmd);//传输命令字,要读取的时间/日历地址
dat=DS1302ReadByte();//读取要得到的时间/日期
SCLK=1;//时钟线拉高
RST=0;//读取结束,RST置为0,结束数据的传输
return dat;//返回得到的时间/日期
}
void DS1302Write(uchar cmd,uchar dat) //修改DS1302中的数据,cmd为相应寄存器的地址,dat为相应的数值
{
RST=0;//初始RST线置为0
SCLK=0;//初始时钟线置为0
RST=1;//初始RST置为1,传输开始
DS1302WriteByte(cmd);//传输命令字,要写入的时间/日历地址
DS1302WriteByte(dat);//写入要修改的时间/日
您可能关注的文档
- 单片机技术与应用课设1.doc
- 南京师范大学2017年文学院考研经验回顾.docx
- 南水北调配套工程分部工程施工管理报告.doc
- 卷宗横标签.doc
- 参考资料建设高效团队之OJMH371高效团队的三大特点.doc
- 发电企业税负分析.docx
- 反馈力法微小推力测量系统标定实验实验报告段毓.docx
- 双色注塑技术.doc
- 参数估计-例题讲解.doc
- 古代汉语学生参考书目.doc
- 中国国家标准 GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- GB/T 4214.17-2024家用和类似用途电器噪声测试方法 干式清洁机器人的特殊要求.pdf
- 《GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法》.pdf
- GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法.pdf
- 中国国家标准 GB/Z 43202.1-2024机器人 GB/T 36530的应用 第1部分:安全相关试验方法.pdf
- 中国国家标准 GB/T 32455-2024航天术语 运输系统.pdf
- GB/T 32455-2024航天术语 运输系统.pdf
- 《GB/T 32455-2024航天术语 运输系统》.pdf
- GB/T 44369-2024用于技术设计的人体运动生物力学测量基础项目.pdf
- 中国国家标准 GB/T 44369-2024用于技术设计的人体运动生物力学测量基础项目.pdf
文档评论(0)