社区导航

 

搜索
查看: 1512|回复: 2

[讨论] 数码管时钟问题

[复制链接]

899

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2010-8-23 15:21 | 显示全部楼层 |阅读模式
#include<reg51.h>
unsigned char hour = 12, min = 0, sec = 0;
unsigned char code SEG_TAB[ ] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //0-9数字
void Delay(unsigned char a)
{
unsigned char i;
while( --a != 0)
{
for(i = 0; i < 125; i++);
}
}
void disp(void)
{
P0 = SEG_TAB[ sec % 10 ];//显示秒的个位
P2 = 0X01;
Delay(15);
P2 = 0;
P0 = SEG_TAB[ sec / 10 ];//显示秒的十位
P2 = 0X02;
Delay(15);
P2 = 0;
}
}
这个是怎么看的会显示秒的 比如要显示秒等于56那是怎么看的
此帖出自单片机论坛

291

TA的帖子

0

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

荣誉会员勋章

发表于 2010-8-23 15:49 | 显示全部楼层
这个程序两个数码管都显示0,因为你秒的值固定为0,你想显示56,可以在定义变量的时候把sec改为=56
QQ:1289535315
淘宝:http://feixue008.taobao.com
论坛:http://dianzhen.5d6d.com/bbs.php

回复

使用道具 举报

1628

TA的帖子

0

TA的资源

五彩晶圆(高级)

Rank: 9Rank: 9Rank: 9

发表于 2010-8-23 18:57 | 显示全部楼层
这个程序两个数码管都显示0,因为你秒的值固定为0,你想显示56,可以在定义变量的时候把sec改为=56


LS的已经说了。

P0 = SEG_TAB[ sec % 10 ];//显示秒的个位
sec % 10这个是取模(或者说取余)操作。所以就显示了秒的个位。
P0 = SEG_TAB[ sec / 10 ];//显示秒的十位 ,这个求商。用以计算十位。
如果想显示更高位的以此类推,让其除100,1000等。

回复

使用道具 举报

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

关闭

站长推荐上一条 1/4 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2020-4-3 05:44 , Processed in 0.133166 second(s), 18 queries , Gzip On, MemCache On.

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