亲爱的朋友 帮小弟我一下 74ls138 74ls47点亮数码管有关问题 小弟我是新手很简单的有关问题小弟我都搞不懂 帮小弟一把 多谢

亲爱的朋友帮我一下74ls138 74ls47点亮数码管问题我是新手很简单的问题我都搞不懂帮小弟一把谢谢小弟刚学

亲爱的朋友 帮我一下 74ls138 74ls47点亮数码管问题 我是新手很简单的问题我都搞不懂 帮小弟一把 谢谢
小弟刚学单片机 89c52 实验板的原理图已经传上来了 我想用74ls138 74ls47 同时点亮所有的 数码管 不过74ls138说明书上 只能同时输出一个低电平这样 我只能点亮一个数码管 要同时点亮六个数码管 需要六个低电平 能不能用c语言给我编个同时点亮六个数码管的程序呀 谢谢 我没有老师自己学 希望大家能帮小弟一下 谢谢谢谢谢谢谢谢!  

#include<reg52.h>
sbit D1=P0^0;
sbit D2=P0^1;
sbit D3=P0^2;
sbit D4a=P0^4;
sbit D5b=P0^5;
sbit D6c=P0^6;
sbit D7d=P0^7;

void main()
{

D1=1;
D2=0;
D3=0;

//以上是选择那个数码管 控制74ls138最多只能输出一个低电平所以只能点亮一数码管
D5b=0;
 D6c=0;
 D7d=0;
D4a=0;
//以上是控制那个数码管显示的 数字

}

反正这个程序最多只能点亮一个数码管 我希望能同时点亮六个数码管 谢谢大家了 每帖必结

[解决办法]
你可以一次顯示一個,然後在顯示下一個,速度快點就可以做到,亮的東西轉快了就是一個亮圈,是人的視覺殘留效果,
例子????????????????現在找不到了,自己做吧,很容易的!
[解决办法]
第一种方法:整体循环,显示内容固定(示意语法,具体请根据51语法替换)

void main() 

byte i;
while(1)
{
for(i=0;i<6;i++)
p0|=i;//让p0的低三位更新,因为i<6;
//D1=1; 
//D2=0; 
//D3=0; 

//以上是选择那个数码管 控制74ls138最多只能输出一个低电平所以只能点亮一数码管 
D5b=0; 
D6c=0; 
D7d=0; 
D4a=0; 
//以上是控制那个数码管显示的 数字 
}


方法2:
把上面代码中的数码管选择语句移植到timer的中断中。这样显示的内容就可以单独更新,适合显示动态的输入。