用51单片机八位共阴极数码管三极管,设计单片机动态扫描显示系统,八位数码管稳定同时显示1-8数字。

最好是C语言程序啦,当然单片机汇编语言也行。求大神解答!在线等!
用此图哦,求大神了!

第1个回答  2013-07-10
#include <reg51.h>

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

void show();
void delay();

void main()
{
while(1)
show();
}

void show()
{
unsigned char i;
for(i=0;i<8;++i)
{
P0=table[i+1];
P2=~(0x01<<i);
delay();
P2=0xFF;
}
}

void delay()
{
int i=100;
while(i--);
}来自:求助得到的回答本回答被提问者采纳
第1个回答  2013-07-10
#include"reg52.h"

#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
uchar aa;
uchar code table[]={0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void delay(uint x)
{uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);}
void main()
{int num;
while(1)
{
num=0;aa=0xfe;
for(;num<8;num++)
{
dula=1;
P0=table[num];
dula=0;
P0=aa;
wela=1;
P0=0xfe;
wela=0;
aa=_cror_(aa,1);
delay(500);

}

}
}
}追问

好像有错误,你在检查检查

追答

对不起啊,当时没有看到你的原理图!

第2个回答  2013-07-10
楼上的程序不是看你图编写的,当然会错,他那程序里应该用到锁存器了,你这儿是直接控制段选,位选的。追问

那应该怎么改啊?急求啊!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网