独闷闷网

 找回密码
 立即注册
搜索
查看: 4352|回复: 4
打印 上一主题 下一主题
收起左侧

[求助] 数码管0~99999999计数

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-15 22:18:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

x
#include<reg52.h>
#define uchar unsigned char
sbit duan=P2^6;
sbit wei=P2^7;
uchar code  ledchar[]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};

uchar   ledbuff[6]= {0xff,0xff,0xff,0xff,0xff,0xff} ;
uchar i=0;
unsigned int cnt=0;

void main()
{
unsigned long sec=0;
EA=1;
TMOD=0x01;
TH1=0xfc;
TL1=0x67;
ET1=1;
TR1=1;   
while(1)
{
if(cnt>=1000)
{
cnt=0;
sec++;
}
ledbuff[0]=ledchar[sec%10];
ledbuff[1]=ledchar[sec/10%10];
ledbuff[2]=ledchar[sec/100%10];
ledbuff[3]=ledchar[sec/1000%10];
ledbuff[4]=ledchar[sec/10000%10];
ledbuff[5]=ledchar[sec/100000%10];
}
}
void interruptTimer() interrupt 1
{
TH1=0xfc;
TL1=0x67;
cnt++;
P0=0xff;
switch(i)
{
case 0:duan=1;i++0=ledbuff[0]=ledchar[0];duan=0;wei=10=0x7f;wei=0;break;
case 1:duan=1;i++0=ledbuff[1]=ledchar[1];duan=0;wei=10=0xbf;wei=0;break;
case 2:duan=1;i++0=ledbuff[2]=ledchar[2];duan=0;wei=10=0xdf;wei=0;break;
case 3:duan=1;i++0=ledbuff[3]=ledchar[3];duan=0;wei=10=0xef;wei=0;break;
case 4:duan=1;i++0=ledbuff[4]=ledchar[4];duan=0;wei=10=0xf7;wei=0;break;
case 5:duan=1;i=0;P0=ledbuff[5]=ledchar[5];duan=0;wei=1;P0=0xfb;wei=0;break;
default:break;
}
}
动态扫描部分不对 没有实现功能

QQ图片20140915221825.png (40.07 KB, 下载次数: 262)

QQ图片20140915221825.png
乐于分享,勇于质疑!
沙发
发表于 2014-9-15 22:41:24 | 只看该作者
对不起。这类问题我也不懂。你再自己仔细想想办法。
乐于分享,勇于质疑!
板凳
发表于 2014-9-16 20:01:25 | 只看该作者
伸手党        
乐于分享,勇于质疑!
地板
发表于 2014-9-26 00:07:57 | 只看该作者
没有延时,数码管是不是一片都亮呀
乐于分享,勇于质疑!
5#
发表于 2014-9-29 16:36:58 | 只看该作者
你用的时T1中断,并且是方式0,你看看高低位值是多少。还有就是case后面的语句书写可对。case 0:
P0=0xff;duan=1;duan=00=0x7f;wei=1;wei=00= ledchar[ledbuff[0]];duan=1;duan=0;break;
乐于分享,勇于质疑!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|独闷闷网 ( 粤ICP备12007667号-2 )

GMT+8, 2024-4-27 10:00 , Processed in 0.233229 second(s), 30 queries .

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