发新帖我要提问
12
返回列表
打印

74LS165求助

[复制链接]
楼主: 西安周公
手机看帖
扫描二维码
随时随地手机跟帖
21
awey| | 2008-4-30 16:48 | 只看该作者 回帖奖励 |倒序浏览

请问周公:这里是否有点问题?

     DO  N = 0    TO  7  ;
    IF  KDAT = 0  THEN  KEY = KEY OR 01H  ;;/*读口状态*/
=================================
按C的理解,上面的语句连着执行的8次,而没有执行下面的移位操作。
这与你只得到H键的输入的结果相吻合。


    KCLK = 1  ;/*时钟变高*/
    KEY = ROL ( KEY , 1 )  ;/*字节左移*/
    KCLK = 0  ;;/*时钟变低*/
=================================
上面的语句是在循环体外的,只执行了一次。

使用特权

评论回复
22
hotpower| | 2008-5-1 12:20 | 只看该作者

时钟的时序不对

    KDAT = 1  ; /*释放数据总线*/
    KEY = 0  ;  /* 变量赋 0,没必要!!! */
    KLOAD = 0  ;/*锁存按键状态*/
    KLOAD = 1  ;
    DO  N = 0    TO  7  ;/*移动8位串行数据*/
      KEY = ROL ( KEY , 1 )  ;/*字节左移,应该先移动!!!*/
      KCLK = 0  ;/*时钟变低,在下降沿要读数据*/
      IF  KDAT = 0  THEN  KEY = KEY OR 01H  ;/*此时才能读口状态,有键为1*/
      KCLK = 1  ;/*时钟变高,此时内部数据才开始移动*/
    END  ;

使用特权

评论回复
23
西安周公|  楼主 | 2008-5-1 17:20 | 只看该作者

去了P2.0(数据接收)的上拉排阻10K好了。讲不通,可是行了

多谢大家费心!近处个别同志可以来喝酒。

使用特权

评论回复
24
hotpower| | 2008-5-1 20:53 | 只看该作者

建议用22楼的程序~~~楼主的非标呀~~~

使用特权

评论回复
25
西安周公|  楼主 | 2008-5-27 10:23 | 只看该作者

第二块板子什么问题没有,工作正常。

10K还在,没有影响。怪哉!

使用特权

评论回复
26
ht_chb| | 2010-7-23 12:27 | 只看该作者
我也遇到同样的情况了,查了2天,郁闷中,
后来还是发现了原因,就是那个时钟线受到了,数据线的干扰,后来把时钟线和数据线分开就解决了

使用特权

评论回复
27
ht_chb| | 2010-7-23 12:28 | 只看该作者
就是距离加大,解决了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则