标题: ds1302用数码管显示时间及调整 [打印本页]

作者: 枫树566    时间: 2019-7-1 12:59
标题: ds1302用数码管显示时间及调整
/*************************************************************************************
*                          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;                           // 被选中的两位数码管,闪烁标志位
        }
}



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

作者: 不可思议的晴朗    时间: 2019-7-25 19:00
文件很好
作者: 不可思议的晴朗    时间: 2019-7-25 21:31
怎么不把工程文件加进去
作者: 枫树566    时间: 2019-7-26 10:27
不可思议的晴朗 发表于 2019-7-25 21:31
怎么不把工程文件加进去

那个就是完整代码啊,用keil5写的!不明白你说工程文件是什么意思
作者: 枫树566    时间: 2019-7-26 10:47
不可思议的晴朗 发表于 2019-7-25 21:31
怎么不把工程文件加进去

这个只是我把ds1302和1602综合一块做的小项目,并不是应付期末做的大作业。所以没有关于这个项目要完成哪些功能之类的任务说明书。
作者: qwa1234    时间: 2019-7-29 02:35
好东西,正需要按键和数码管部分
作者: 零零九    时间: 2019-7-29 10:13
不错,收藏一波
作者: 枫树566    时间: 2019-7-29 10:54
qwa1234 发表于 2019-7-29 02:35
好东西,正需要按键和数码管部分

我们的数码管表应该有差异,如果显示不一致或乱码,你就要根据你的数码管段选去修改。
作者: 1860774xxxx    时间: 2019-12-10 12:51
找你找得好苦 一直不懂怎么去设置时器 正好学习下 谢谢
作者: 315安    时间: 2020-4-25 08:34
好东西,收藏了
作者: 15527262695    时间: 2022-9-3 21:05
文件不完整,都是些边边角角,主要的组合程序没看到




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1