发布网友 发布时间:2022-05-01 22:34
共4个回答
热心网友 时间:2022-06-24 10:23
74LS164是串入并出转换芯片,可以借助串口来实现,也可以用普通IO口模拟实现。举例如下:
#include<reg51.h>
#define uchar unsigned char
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f};
sbit keyup=P3^6;
sbit keydn=P3^7;
void delay()
{
int i=1000;
while(i--);
}
main()
{
uchar i;
i=0;
SCON=0x00;
TI=1;
while(1)
{
SBUF=table[i];
while(TI==0);
TI=0;
delay();
if(keyup==0)
{
i++;
while(keyup==0);
}
if(keydn==0)
{
if(i>0)i--;
while(keydn==0);
}
i%=10;
}
}
热心网友 时间:2022-06-24 10:24
数据每有变化一次就连从串口打出这变化后的三字节的八位数码就完成了。这还是自己想一想吧,很简单的。最多就是要有一个数码转换表。把打出去的数先转换成显示的对应段码的。追问那个程序应该如何编写,就上图,显示123汇编语言
热心网友 时间:2022-06-24 10:24
74LS164是个串进并出的移位寄存器,每个并口对着一个LED的管脚,如果你的LED是共阳的话,那么需要点亮的段为0,不需要点亮的段为1,你只要一位位的将数据送出就可以了,从图上看你将3个74LS164串在一起,就要一次送出24位数字追问那个程序应该如何编写,就上图,显示123汇编语言追答这个显示程序编得好坏,关键是74LS164的驱动程序,用到2个端口,数据端(A和B)和控制端(CKL),在程序中专门安排一个寄存器作为送数,控制端按照74LS164的推荐时序,进行高低电平切换,将送数寄存器的数据一位位移出去即可。编好后可以作为一个子程序,要改变显示时,调用一下即可。74LS164可以参考芯片的资料。
热心网友 时间:2022-06-24 10:25
我的百度空间有这样的例程。