74LS164驱动数码管的控制方式和程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 20:19:27
如以下两个图,加如我想同时显示34,该怎么控制?采用这种控制后盖怎么编程?(汇编最好,C也行)
那若以图2的方式去驱动多个数码管时,数据怎么传递给后边的数码管呢?比如P3.1给了8个脉冲,第一片74LS164得到P3.0发送的8位数据,但是这8个脉冲中,只能给第2片74LS164发送来一个第1片74LS164中Q7这一位的数据啊!在相同的时钟信号下,怎么同步发送数据到2片74LS164呢?不明白。再请LONGER44解释下呀

CLR不用接的
可以用串行工作方式0(8位同步输出)
你这显示就用该用动态扫描了,点亮一个数字延时后点亮两一个数字
你第二个图好像不大好用,用一个164足够了,用P1.6P1.7选一下点亮那个管足矣,不用再加两个164的,浪费。

串行口发送8位数据低位在前。
如果164接受数据每一位是从Q7进入的话,可以解释,P3.0给数据D0,时钟有效,数据进入第一片Q7,由于两片同一时钟,而Q7为第二片输入,所以第二片也获得P3.0数据,P3.0给数据D1,D0进入Q6,D1进入Q7 ...
如果164接收数据每一位是从Q0进入的话,我就解释不通了。
我在找找相关资料,你也找找,确定一下164接收的第一位先出现在哪一位。

又看了一下,164接收数据第一位先出现在Q0,然后顺序后移,所以图二中两片164不能同时接收数据,只有给16个脉冲,先发送的8位数据进入第二片,后发送的8位数据进入第一片。
例如你想在第一片显示3,二片显示4,则mov sbuf,#(4段码数据),再mov sbuf,#(3段码数据)。!注意sbuf中的高位将被送入Q0中,即高低位反了