小弟刚学单片机 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的中断中。这样显示的内容就可以单独更新,适合显示动态的输入。