电子技术论坛

 找回密码
 快速注册

QQ登录

只需一步,快速开始

搜索
下载方法|用单线程|避免多扣帖子规范|求助必读|发帖建议积分策略|勋章介绍|新人必读获取金币|推广论坛|出售帖子基本礼节|致会员信|版规总则
禁涉政治|反对低俗|举报专帖征集相片|留下足迹|推荐精华上传附件|制作分卷|使用网盘禁发qq群|恶意灌水|纯表情帖加入团队|监督机制|安全上网
查看: 6252|回复: 18

简易数字钟

[复制链接]
发表于 2011-5-13 11:46:22 | 显示全部楼层 |阅读模式

注册家电维修技术论坛,与同行畅聊维修技术,享更多技术论坛功能。

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
简易数字钟

#include <at89x51.h>
#include <DS1302.h>
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
unsigned char time[]={0,0,0,0,0,0};//用来储存时间
SYSTEMTIME  time1;   //在ds1302.h文件中已经定义了一个名字为SYSTEMTIME的结构体,在这里我们定义一个变量名
                     //为time的SYSTEMTIME结构体        
void delay(unsigned char i)     //延时子程序  
{
  unsigned char j;
  while((i--)!=0)
  {
    for(j=123;j>0;j--);
  }
}
void display(qian,bai,shi,ge,fen,miao)    //显示子程序
unsigned char qian,bai,shi,ge,fen,miao;  
{
  P2=0xfe;
  SBUF=dispcode[qian];
  P3_2=1;
  delay(3);
  P3_2=0;

  P2=0xfd;
  SBUF=dispcode[bai];
  P3_2=1;
  delay(3);
  P3_2=0;

  P2=0xfb;
  SBUF=0x40;
  P3_2=1;
  delay(3);
  P3_2=0;

  P2=0xf7;
  SBUF=dispcode[shi];
  P3_2=1;
  delay(3);
  P3_2=0;

  P2=0xef;
  SBUF=dispcode[ge];
  P3_2=1;
  delay(3);
  P3_2=0;

  P2=0xdf;
  SBUF=0x40;
  P3_2=1;
  delay(3);
  P3_2=0;

  P2=0xbf;
  SBUF=dispcode[fen];
  P3_2=1;
  delay(3);
  P3_2=0;

  P2=0x7f;
  SBUF=dispcode[miao];
  P3_2=1;
  delay(3);
  P3_2=0;
}   
void main()
{
   Initial_DS1302();                    //初始化DS1302这个时钟芯片,   
   while(1)                             //无限地循环
   {
       DS1302_GetTime(&time1);          //读取时间参数            
       time[5]=(time1.Second)%10;       //把秒的个位数据存入time[5]
       time[4]=(time1.Second)/10;       //把秒的十位数据存入time[4]
       time[3]=(time1.Minute)%10;       //把分的个位数据存入time[3]
       time[2]=(time1.Minute)/10;       //把分的十位数据存入time[2]
       time[1]=(time1.Hour)%10;         //把时的个位数据存入time[1]
       time[0]=(time1.Hour)/10;             //把时的十位数据存入time[0]
    display(time[0],time[1],time[2],time[3],time[4],time[5]);                        //显示时间
  }            
    }        
        void uart() interrupt 4
{
    TI=0;
}
7SKTE7`2O4YM8NGI{_X1BQR.jpg
发表于 2011-5-13 13:03:35 | 显示全部楼层
回复 1# 泽锐

硬件电路图画的不完整,太笼统,包括单片机,是89C51还是89C2051?重新编辑。
发表于 2011-5-13 13:06:37 | 显示全部楼层
路过学习。。。。。。。。
 楼主| 发表于 2011-5-13 15:55:06 | 显示全部楼层
谢谢您做出批评 继续努力
 楼主| 发表于 2011-5-13 15:55:27 | 显示全部楼层
谢谢您做出批评 继续努力
发表于 2011-5-20 21:36:19 | 显示全部楼层
回复 2# 吕复清


    数一数2051几个I/O,再看看图上的.还分不清吗?
发表于 2011-5-22 10:03:52 | 显示全部楼层
有意思,  要是加调时间的按钮就更好了。
发表于 2011-5-24 18:13:19 | 显示全部楼层
还有点意思,路过看看
发表于 2011-5-31 00:32:45 | 显示全部楼层
回复 2# 吕复清
一看就知道这不是S51,就是C51的啦,怎么会是2051的呢。
发表于 2011-5-31 00:40:25 | 显示全部楼层
为什么我在编译时第二步和第五步怎么是错的呢,我用的是Keil uVision3软件,不知道是怎么回事。
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|家电维修技术论坛 ( 鄂ICP备09003585号-2 )

GMT+8, 2025-1-18 18:05 , Processed in 0.074953 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

CopyRight © 电子技术论坛
电子邮箱:8794149@qq.com | 联系 QQ:3081868839 | 官方网址:www.dzdu.com

Qiji. All Rights Reserved


服务条款 | 站长声明

Wuhan Qiji Technology Co., Ltd.武汉奇迹科技有限公司版权所有


鄂ICP备09003585号-2鄂公网安备42010602000420号

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