找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6590|回复: 10
收起左侧

ds1302用数码管显示时间及调整

[复制链接]
ID:427492 发表于 2019-7-1 12:59 | 显示全部楼层 |阅读模式
/*************************************************************************************
*                          ds1302实现时间的显示和调整
* 步骤及现象:程序下载前,stc-isp选择IRC频率:12MHz,程序下载后,数码管显示时间为
*     “ 12-00-00 ”,按按键0,这时数码管显示“ 2019.01.01 ”,并且LED8亮。按按键1,
*      LED8灭,表示退出设置年月日功能。这时按2或3,进入时分秒界面。
*   (1)若设置时分秒(按键1是位选,按键2是加,按键3是减),按按键1这时LED1灯亮
*      (LED1灯亮表示进入设置时分秒状态),这时代表小时的两位数码管1s闪烁一次,这时
*      按按键2一次加1,长按连续加。按按键3一次减1,长按连续减。分、秒操作、现象一样。
*   (2)若设置年月日(按键0是位选,按键2是加,按键3是减),按按键0这时LED8灯亮
*      (LED8灯亮表示进入设置年月日状态),这时代表年的前两位的两位数码管1s闪烁一次
*      这时按按键2加1,长按连续加。按按键3一次减1,长按连续减。年的后两位、月、日操作
*      和现象一样。
*************************************************************************************/
#include <stc8.h>
#include "ds1302.h"
#include "key.h"
#include "HC595.H"
#include "TIM.h"
#include "showtime.h"
#include "settime.h"
char TIMED[7] = {0};
unsigned char num=0;
bit Flg = 0;
extern uchar code WRITE_RTC_ADDR[7];
void main()
{
        unsigned char keys=16, bekey=16;
        Ds1302Init();
        Timer0Init();
        while(1)
        {
                keys = key_scan();               
                if(16 != keys)
                        bekey = keys;               // 最近一次按下的按键的键值
                Ds1302ReadTime();               
                settime(keys);                       // 设置秒分时,日月年函数,keys的值决定是调整秒分时还是日月年。           
                ShowTime(bekey);                //  工作状态下,时间的显示函数。         
        }
}

void TM0_Isr() interrupt 1 using 1
{
        num++;
        if(150 == num)
        {
                num = 0;
                Flg = ~Flg;                           // 被选中的两位数码管,闪烁标志位
        }
}

5.jpg

本人初学,仅供参考,存在错误和不足之处,请大家回帖多多指教,切勿照搬,文件下载:
ds1302数码管时间显示及调整.rar (84.77 KB, 下载次数: 87)
回复

使用道具 举报

ID:590427 发表于 2019-7-25 19:00 | 显示全部楼层
文件很好
回复

使用道具 举报

ID:590427 发表于 2019-7-25 21:31 来自手机 | 显示全部楼层
怎么不把工程文件加进去
回复

使用道具 举报

ID:427492 发表于 2019-7-26 10:27 来自手机 | 显示全部楼层
不可思议的晴朗 发表于 2019-7-25 21:31
怎么不把工程文件加进去

那个就是完整代码啊,用keil5写的!不明白你说工程文件是什么意思
回复

使用道具 举报

ID:427492 发表于 2019-7-26 10:47 | 显示全部楼层
不可思议的晴朗 发表于 2019-7-25 21:31
怎么不把工程文件加进去

这个只是我把ds1302和1602综合一块做的小项目,并不是应付期末做的大作业。所以没有关于这个项目要完成哪些功能之类的任务说明书。
回复

使用道具 举报

ID:92556 发表于 2019-7-29 02:35 来自手机 | 显示全部楼层
好东西,正需要按键和数码管部分
回复

使用道具 举报

ID:591880 发表于 2019-7-29 10:13 | 显示全部楼层
不错,收藏一波
回复

使用道具 举报

ID:427492 发表于 2019-7-29 10:54 | 显示全部楼层
qwa1234 发表于 2019-7-29 02:35
好东西,正需要按键和数码管部分

我们的数码管表应该有差异,如果显示不一致或乱码,你就要根据你的数码管段选去修改。
回复

使用道具 举报

ID:468209 发表于 2019-12-10 12:51 来自手机 | 显示全部楼层
找你找得好苦 一直不懂怎么去设置时器 正好学习下 谢谢
回复

使用道具 举报

ID:737450 发表于 2020-4-25 08:34 | 显示全部楼层
好东西,收藏了
回复

使用道具 举报

ID:999983 发表于 2022-9-3 21:05 来自手机 | 显示全部楼层
文件不完整,都是些边边角角,主要的组合程序没看到
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表