文章目录

  • 要求
  • 效果
  • 资源
  • main函数

要求

1、设置DS1302时钟芯片时间

2、读取DS1302时钟芯片时间并显示在LCD1602上

3、通过独立按键可修改当前时间,在修改模式中,对选中的属性进行闪烁以提示用户该属性被选中
K1:进入/退出修改模式
K2:选择修改的具体属性
K3:选中属性值加1
K4:选中属性值减1

4、修改后的时间增加合法判定(平年闰年,大月小月),比较简单,我写的代码没有给出,可自行添加
提示:
1、可将法和判定做成一个函数,传入time数组,函数将time数组修改为合法的时间
2、该函数紧跟在对time[flag]增减的代码之后(修改之后立马判定)

效果

资源

工程文件压缩包
链接:https://pan.baidu.com/s/1EapEC862yxjL8rWxXXnX4w
提取码:9mmm

main函数

#include <REGX52.H>
#include "Delay.H"
#include "LCD1602.H"
#include "Key.H"
#include "DS1302.H"//时间显示
void ShowTime(unsigned char *time){//静态字符初始化显示LCD_ShowString(1,3,"-");LCD_ShowString(1,6,"-");LCD_ShowString(2,3,":");LCD_ShowString(2,6,":");LCD_ShowNum(1,1,time[0],2);   //显示年LCD_ShowNum(1,4,time[1],2);    //显示月LCD_ShowNum(1,7,time[2],2);    //显示日LCD_ShowNum(2,1,time[3],2);    //显示时LCD_ShowNum(2,4,time[4],2);    //显示分LCD_ShowNum(2,7,time[5],2);    //显示秒
}//被选中时间属性闪烁
void Selected(unsigned char *time,unsigned char flag){unsigned char column;if(flag<3){column=3*flag+1;LCD_ShowString(1,column,"  ");Delayms(600);LCD_ShowNum(1,column,time[flag],2);Delayms(600);}else{column=3*(flag-3)+1;LCD_ShowString(2,column,"  ");Delayms(600);LCD_ShowNum(2,column,time[flag],2);Delayms(600);}
}void main(){unsigned char time[]={22,4,27,16,33,20,3};unsigned char KEY;unsigned char flag;//状态初始化LCD_Init();DS1302_Init();//时间初始化DS1302_SetTime(time);while(1){DS1302_ReadTime(time);        //读取时间ShowTime(time);               //显示时间KEY=get_key();if(KEY==1){                  //读取到K1按下,进入修改模式KEY=0;                  //复位flag=0;                    //指向time数组中待修改的值while(1){Selected(time,flag);//flag指向的值闪烁KEY=get_key();        //获取按键值if(KEY==2){flag=(flag+1)%6;KEY=0;Delayms(400);} //指向下一个待修改的值if(KEY==3){time[flag]+=1;KEY=0;Delayms(400);}  //将指向的值加1,复位if(KEY==4){time[flag]-=1;KEY=0;Delayms(400);}    //将指向的值减一,复位if(KEY==1){DS1302_SetTime(time);break;KEY=0;} //完成修改,退出,复位}Delays(1);               //延迟1秒(用户按下的K1时间过长,延迟一下防止被下一条get_key捕捉)}}
}

51单片机_10-2 DS1302可调时钟相关推荐

  1. 51单片机——DS1302可调时钟

    目录 一.功能介绍 二.主要模块介绍 2.1 DS1302模块 2.1.1 DS1302芯片介绍 2.1.2  DS1302的使用 三.程序汇总 3.1测试文件test.c 3.2 LCD1602模块 ...

  2. 【DS1302可调时钟】

    DS1302可调时钟 0.原理图 1.DS1302介绍 2.引脚定义与应用电路 3.内部结构框图 4.寄存器定义 5.时序定义 6.BCD码 7.源码 ==main.c== ==DS1302.c== ...

  3. 基于51单片机 数控恒流源设计 可调电流源

    设计硬件组成: 基于51单片机 数控恒流源设计 可调电流源基于单片机可调电流源设计  项目定制觉得选题不错 分享一下 由51单片机+LCD1602液晶+变压器+整流桥+开关电源LM2596+TLC56 ...

  4. 基于51单片机数字温度报警器_DS18B20可调上下限

    51单片机数字温度报警器_DS18B20可调上下限 (仿真+程序+原理图) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/keil 5 编程语言: ...

  5. 51单片机+直流电机PWM 10级调速控制

    51单片机+直流电机PWM 10级调速控制 Proteus仿真演示 示例程序代码 #include <STC89C5xRC.H> typedef unsigned char u8; typ ...

  6. 51单片机PCB实物DCDC可调负电源负压+12V输入-2.5V~-9V输出500MA电流

    实践制作DIY- GC0048-PCB实物DCDC可调负电源 一.功能说明: 基于51单片机设计-PCB实物DCDC可调负电源 功能介绍: STC89C52单片机. LCD1602显示器 .PCF85 ...

  7. DS1302可调时钟

    文章目录 前言 模块划分 模块化编程 1. Key 2. LCD1602 3. Timer0 4. Delay 5. DS1302 6. Main 总结 前言 上节 " DS1302详解 & ...

  8. 【51单片机学习】PWM电机调速

    简单的PWM电机调速--基于51单片机 (一)51单片机需要用到的寄存器 (二)PWM波的产生及调速原理 (三)电机调速的实现 (一)51单片机需要用到的寄存器 中断允许寄存器,详情可以看STC51单 ...

  9. 51单片机—使用PWM对直流电机调速

    文章目录 - 什么是PWM - PWM是怎么对直流电机进行调速的 - 通过定时器中断实现PWM调速 - 上代码 - 什么是PWM PWM(脉宽调制),是靠改变脉冲宽度来控制输出电压,通过改变周期来控制 ...

  10. 基于51单片机 数控稳压电源设计 可调电压源

    设计硬件组成: 数控可调电压源系统 51单片机最小系统电路+数码管+TLC5615+稳压模块+LM358+TIP122+变压器设计而成. 设计功能介绍: 1.采用数码管显示当前电压数值 2.通过变压器 ...

最新文章

  1. 今年CVPR,我们填补了3D场景布局数据集空白,并向全世界开源!
  2. 人工智能数学基础----导数
  3. 小学生python编程教程入门-围观~山东省的小学生Python编程入门都学的什么?
  4. 使用Silverlight for Embedded开发绚丽的界面(4)
  5. visio2016中插入大括号
  6. 口罩日产量破1亿背后:近3000家企业疯狂增产转产
  7. css alpha滤镜
  8. 文末福利 | 学习如何构建行业知识图谱(以医疗行业为例)
  9. (转)先锋伯格:选择一条少有人走的路,所有的不同由此开始
  10. 遗传算法Python代码实现
  11. 屏蔽KEmulator的内存查看功能
  12. 国际通用计算机编码,计算机中的编码知识
  13. 如何提取微信公众号内视频 (高清 无水印)
  14. java getbytes 乱码_深入解析java String中getBytes()的编码问题
  15. 直播系统解决方案:直播平台如何开发搭建
  16. khadas与树莓派_抛弃电信机顶盒,单板电脑打造家庭多媒体中心
  17. HDU 5944 Fxx and string BestCoder Round #89 1001(细节)
  18. nginx禁止某些指定的浏览器标识来爬我们网站
  19. linux ps2键盘驱动,Linux下USB模拟ps2鼠标驱动
  20. 数据库之快照读与当前读

热门文章

  1. 浮点型数据计算面积方法
  2. Speckle核心概念【3D数据引擎】
  3. ios无限体验服务器,ios变态无限元宝的手游-ios手游无限元宝公益服
  4. 免费在线markdown转pdf
  5. 【Proteus仿真】【51单片机】交通灯控制系统设计
  6. firebase推送
  7. 污水除重金属工艺,吸附重金属的树脂
  8. 23个Python爬虫开源项目代码:爬取微信、淘宝、豆瓣、知乎、微博
  9. java狗具有特别的接飞盘的方法_【狗飞盘】狗接飞盘怎么练,好用的狗飞盘推荐_什么值得买...
  10. iPad Pro 2022版最新渲染图曝光,刘海屏来了!