单片机问题:74hc165怎样并行置入数据

单片机问题:74hc165怎样并行置入数据,第1张

165是并行输入数据的。

----------------

接收一字节的程序如下:

ORG 0000H

LJMP KIN

ORG 0100H

KIN:

MOV SCON, #0

CLR P1.0令165并入.

SETB P1.0令165锁定数据、且允许移位.

SETB REN 令其串入单片机.

JNB RI, $ 等待.

CLR RI

CLR REN 不收了.

MOV A, SBUF 取出数据.

MOV P0, A 显示.

SJMP KIN

END

程序中for循环里的或运算的作用,INT_data是由引脚P1.7输入的74HC165的每一个位,要转换成并行数据。或运算是与1或结果是1。假如,开始 indata=0,INT_data=1,或结果就是,indata=0000 0001,读进一位。向左移一位,indata=0000 0010,再或一位,indata=0000 0011。依此类推读完8位。

问题应该出在:实际接线时开关并了104电容,这会产生延迟的。

当程序读按键时,因延时按键还没有接触上。

解决方法,换成小一些电容,在调用读键盘子程序时,加延时。

因为仿真是没有延迟的,就算是加了电容,仿真时也不起作用。所以,仿真可以通过。但实物,电容就起作用了。

或者,先拿掉电容,执行一下程序,看能不能通过,就知道,是不是因为电容的原因了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7791750.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存