课程设计——DS1302数码管显示数字钟的设计1(5)

来源:网络收集 时间:2025-04-30 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

××大学××学院××系××课程设计报告

/**********************向DS1302写入数据************************/ void Write_ds1302(uchar address,uchar indata) {

SCLK = 0; RST = 1;

Write_byte(address); //写入地址 Write_byte(indata);

//写入数据

SCLK = 0; RST = 0; }

/**********************从DS1302读取数据*****************************/ uchar Read_ds1302(uchar addr) {

uchar backdata; SCLK = 0; RST = 1;

Write_byte(addr);

//先写地址

backdata=Read_byte(); //然后读数据

SCLK = 0; RST = 0; return (backdata); }

/************************按键扫描及操作******************************/ void Key_Process(void)

//通过按键调整时间

{

uchar min16,hour16;

//定义16进制的分钟和小时变量 Write_ds1302(0x8e,0x00);

//DS1302写保护控制字,允许写 Write_ds1302(0x80,0x80); //时钟停止运行 if(K2 == 0) //K2键用来对小时进行加1调整

{

Delay(5);

//延时去抖

17

××大学××学院××系××课程设计报告

if(K2 == 0) {

while( !K2);

//等待K2键释放

time_buf[2] ++; //小时加1 if(time_buf[2] == 24) { }

time_buf[2] = 0;//当变成24时初始化为0

hour16 = time_buf[2]/10*16 + time_buf[2];

}

Write_ds1302(0x84,hour16); //将调整后的小时数据写入DS1302

//将所得的小时数据转变成16进制数据

}

if(K3 == 0) {

Delay(5);

// K3键用来对分钟进行加1调整

//延时去抖

if(K3 == 0)

{

while( !K3);

//等待K3键释放

time_buf[1] ++; //分钟加1 { }

time_buf[1] = 0;//当分钟加到60时初始化为0 if(time_buf[1] == 60)

min16 = time_buf[1]/10*16 + time_buf[1];

}

18

//将所得的分钟数据转变成16进制数据

Write_ds1302(0x82,min16); //将调整后的分钟数据写入DS1302

}

××大学××学院××系××课程设计报告

if(K1 == 0)

//K4键是确认键

{ Delay(5);

//延时去抖

if(K1 == 0) { while( !K1);

//等待K1键释放

Write_ds1302(0x80,0x00); //调整完毕后,启动时钟运行 Write_ds1302(0x8e,0x80);

//写保护控制字,禁止写

K1_FLAG = 0;

//将K1键按下标志位清0

}

} }

/*---------------------------------------------------------------------------*/ void Key_Clock(void)

//按键设置闹钟时间

{

Write_ds1302(0x8e,0x00); //DS1302写保护控制字,允许写

// Write_ds1302(0x80,0x80); //时钟停止运行 if(K2 == 0)

//K2键用来对小时进行加1调整

{ Delay(5);

//延时去抖

if(K2 == 0) { while( !K2);

//等待K2键释放

temp[0] = time_buf[2]; temp[0]++;

//小时加1

if(temp[0] == 24) { temp[0] = 0;//当变成24时初始化为0

} //

time_hour[] = time_buf[2];

//将所得的小时数据转变成16进制数据

19

××大学××学院××系××课程设计报告

Write_ds1302(0x84,hour16); //将调整后的小时数据写入

//

DS1302

}

if(K3 == 0) {

Delay(5);

//延时去抖

// K3键用来对分钟进行加1调整

}

if(K3 == 0) {

Write_ds1302(0x82,min16); //将调整后的分钟数据写入

while( !K3);

//等待K3键释放

temp[1] = time_buf[1]; temp[1]++;

//分钟加1

if(temp[1] == 60) { }

time_min[] = time_buf[1];

//将所得的分钟数据转变成16进制数据 temp[1] = 0;//当分钟加到60时初始化为0

//

//

DS1302 }

/*************获取秒、分钟、小时、日、月、年的值******************************/ void get_time(void) {

uchar sec,min,hour,date,mouth,year;

//定义秒、分和小时变量

}

}

Write_ds1302(0x8e,0x00); //控制命令,WP=0,允许写操作

20

Write_ds1302(0x90,0xab); //涓流充电控制

××大学××学院××系××课程设计报告

sec = Read_ds1302(0x81); //读取秒 min = Read_ds1302(0x83); //读取分 hour = Read_ds1302(0x85); //读取时

time_buf[0] = sec/16*10 + sec; //将读取到秒的16进制数转化为10进制

time_buf[1] = min/16*10 + min; //将读取到分的16进制数转化为10进制

time_buf[2] = hour/16*10 + hour; //将读取到时的16进制数转化为10进制

time_buf[3] = date/16*10 + date;

//将读取到日的16进制数转化为

date = Read_ds1302(0x86);

//读取日 //读取月 //读取年

mouth= Read_ds1302(0x88); year = Read_ds1302(0x8c);

10进制

time_buf[4] = mouth/16*10 + mouth;

//将读取到月的16进制数转化为

10进制

time_buf[5] = year/16*10 + year;

//将读取到年的16进制数转化为

10进制 }

/********************数码管显示时间程序**********************************/ void Time_Display(void) {

wela(); P0 = 0xfd;

21

//秒-分-时显示

wela(); P0 = 0xfe; dula();

P0 = table[time_buf[0]/10]; //显示秒十位 Delay(5);

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库课程设计——DS1302数码管显示数字钟的设计1(5)在线全文阅读。

课程设计——DS1302数码管显示数字钟的设计1(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/555246.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219