74HC573锁存器是单向输出锁存器。
我向这个锁存器发送0x00,然后读取发送端口,(注意是读取的发送端口,而不是接收端口)读到的结果却是0x01
而我发送其他的八位数,比如0x03,0xf1,得到的结果是和输入的数字一样的。
为什么发送0x00后读取发送端口的数据,会是0x01?
是不是单向锁存器都有这个特点?传入0x00,读发送端读出的是0x01?
锁存器的输出口作为数据总线连接到液晶显示屏,液晶显示屏没有显示。。我想回读液晶的存储器,看有没有成功的将指令传过去。但后来记起了74HC573是单向的锁存器。没办法反向读取。
不过却偶然发现,传0X00过去,然后读发送端口,读出的值的却是0X01,很搞不懂为什么。
你读的是单片机的输出口?还是573的输出口?用万用表量过电平吗?
读的单片机的输出口。我不太清楚怎么用万用表量这个。麻烦知道的朋友给点思路,我就想弄明白为什么会出现这样的情况。
建议用万用表测下单片机IO口。用电压档,红的接IO口,黑的找个地接了,看在单片机输出你要的数据0x00时,端口是高还是低,高一般是5v,低就接近0.具体要看你什么片子了。这样看下。
又发现了,如果我进函数单步调试,执行的结果是0x01,但是不进函数,直接执行过去,运行的结果又是0x00.我猜可能是延时的问题,我在用单步调试,慢慢的一步一步执行时,输出端口的有效数据时间可能已经过了,端口被未知的原因改成了0x01.不过这未知的原因,我还是没弄明白。