hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 498|回复: 2

数码管动态实时显示ds1302的功能为什么实现不了?

[复制链接]

604

主题

616

帖子

1951

积分

版主

Rank: 7Rank: 7Rank: 7

积分
1951
发表于 2024-5-11 16:07:21 | 显示全部楼层 |阅读模式
用的是HJ-2G开发学习板,想实现用动态数码管实时显示ds1302的功能?仿照网上程序试了好多遍,为什么老是实现不了呢?现贴出显示那部分程序。
void Delay(unsigned long x)
{
     while(x--);
}

show(uchar time[])
{
      uchar time0,gw,sw, time1,time2;//
unsigned long t=500;
//uint t=2;
time0=time[0];     time[0]为得到的秒BCD码
sw=time0/16;      求十位;
gw=time0%16;    求个位;

DDRA|=BIT(3);//把PA3设为输出
DDRA|=BIT(4);//把PA4设为输出
DDRB=0XFF;//把PB口设为输出型,全为高

PORTA|=BIT(3);
PORTB=Number[sw];
PORTA&=~BIT(3);

PORTB=0XFF;
PORTB&=~BIT(4);//位选四显示分十位
PORTA|=BIT(4);
PORTA&=~BIT(4);
      Delay(t);

PORTA|=BIT(3);
PORTB=Number[gw];
PORTA&=~BIT(3);

PORTB=0XFF;
PORTB&=~BIT(5);//位选四显示分个位
PORTA|=BIT(4);
PORTA&=~BIT(4);
Delay(t);
}
哪位大侠指点一下迷津?
补充:假设先前输入的秒是50,理想情况在数码管显示出50并不断加1,但最后显示是AE, AE也不动,不知道错误在哪。
时间在1602上显示正常,当然输入1602的数据提前转为ascii码了。



本文来自EEWORLD电子工程世界,转载请注明出处: http://bbs.eeworld.com.cn/thread-448246-1-1.html
回复

使用道具 举报

8

主题

206

帖子

44

积分

新手上路

Rank: 1

积分
44
发表于 2024-5-11 16:08:07 | 显示全部楼层
哪位大侠能给点思路?
回复

使用道具 举报

0

主题

201

帖子

71

积分

关内侯

Rank: 2

积分
71
发表于 2024-5-11 16:08:32 | 显示全部楼层
是问题太简单,还是热心人太少,有点不懂
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2025-1-5 13:34 , Processed in 0.062679 second(s), 21 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

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