程序问题

[复制链接]
 楼主| langgq 发表于 2022-11-6 15:29 | 显示全部楼层 |阅读模式
dula=0;
    P0=table[r];                                        //数码管段信号输出               
   dula=1;
    dula=0;为什么还要打开段选

   wela=0;
    P0=~(1<<c);                                        //数码管位信号输出
    wela=1;
    wela=0;这里为什么还要打开位选?
    delay(5);
shimx 发表于 2022-11-6 15:31 | 显示全部楼层
你的程序不完整,看的不知所云
jiajs 发表于 2022-11-6 15:33 | 显示全部楼层
你这个外围不是直接能通过单片机口输出显示的吧,还有其它辅助芯片
dingy 发表于 2022-11-6 15:37 | 显示全部楼层
看好像是打开使能位
llljh 发表于 2022-11-6 15:39 | 显示全部楼层

位选与段选的信号线连着你的两个74h373锁存器,用来控制锁存器的信号更新的。
renyaq 发表于 2022-11-6 15:41 | 显示全部楼层
在没有给这条线信号之前,锁存器的输出不会变化。
jiajs 发表于 2022-11-6 15:43 | 显示全部楼层
对,所以这两个芯片可以共用其他数据线,而只在有了这个信号,相应的芯片才会更新输出。否则你对它输出不起作用
yszong 发表于 2022-11-6 15:45 | 显示全部楼层
所以当你要控制其中一块锁存器的时候,你就要给他来个信号,它为什么是位选?因为你的这个位选引脚连接的那块74H373输出恰恰就是数码管的各个位。它可以控制8个位。
renyaq 发表于 2022-11-6 15:47 | 显示全部楼层

数码管每一位有一个公共线,8个段线(7段+点)
而你的段信号则连着另一片74H373,它的输出则连接着数码管8个位的所有段。
huangchui 发表于 2022-11-6 15:50 | 显示全部楼层
当你打开段选,然后输出了一个数值出去,这个数值就会存到段控制的那片74H373,而不会影响位控制的74H373的值。
jlyuan 发表于 2022-11-6 15:54 | 显示全部楼层
单片机通过先后传送数据到两片不同的74H373,来达到控制位和段的目的。
tpgf 发表于 2022-12-6 15:17 | 显示全部楼层
楼主连dula变量的定义都没有 怎么知道它是控制什么的呢
qcliu 发表于 2022-12-6 15:44 | 显示全部楼层
为什么要对公共端做一个这么小的电平转换呢
drer 发表于 2022-12-6 16:00 | 显示全部楼层
楼主位选的外围电路是不是有一个锁存器呀
coshi 发表于 2022-12-6 16:30 | 显示全部楼层
为什么需要外接锁存器呢 使用io口一直输出不可以吗
kxsi 发表于 2022-12-6 16:39 | 显示全部楼层
coshi 发表于 2022-12-6 16:30
为什么需要外接锁存器呢 使用io口一直输出不可以吗

这样运行稳定 不容易发生抖动和波动
wiba 发表于 2022-12-6 16:55 | 显示全部楼层
这种方式只能控制少量的数码管
Henryko 发表于 2022-12-26 10:39 | 显示全部楼层
为什么需要外接锁存器?
MessageRing 发表于 2023-1-19 21:10 | 显示全部楼层
没有给这条线信号之前,锁存器的输出不会变化
Stahan 发表于 2023-2-8 21:35 | 显示全部楼层
只能控制少量的数码管吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

932

主题

8762

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部