欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3751|回復: 4
打印 上一主題 下一主題
收起左側

關于89C51單片機擴展74HC165的問題

[復制鏈接]
跳轉到指定樓層
樓主
請問各位大俠,小弟剛學51單片機不久在做一個項目時需要很多輸入按鈕(大概22個按鈕)發現用hc165聯級的方式最多只能采集到兩片HC165的聯級的數據,第三片hc165的數據采集不到,代碼如下:
#include "reg51.h"
#include "intrins.h

typedef unsigned char u8;
typedef unsigned int u16

/*74HC165管腳定義*/
sbit   out_q7=P1^0;
sbit       CLK=P1^1;
sbit         PL=P1^2
sbit       test=P1^3;


u16 HC165ReadData()
{
  u16 Datavalue,inData1,inData2,inData3,i;
  inData1=0;
  inData2=0;
  inData3=0;
  Datavalue=0;

  PL=0;
  _nop_();
  PL=1;//
  _nop_();

  /*讀取第1片HC165數據*/
  for(i=0;i<8;i++)
  {
    inData1=inData1<<1
    CLK=0;
    _nop_();
    inData1|=out_q7;
    CLK=1;
    _nop_();
  }

  /*讀取第2片HC165數據*/
  for(i=0;i<8;i++)
  {
    inData2=inData2<<1
    CLK=0;
    _nop_();
    inData2|=out_q7;
    CLK=1;
    _nop_();
  }

  /*讀取第2片HC165數據*/
  for(i=0;i<8;i++)
  {
    inData3=inData3<<1
    CLK=0;
    _nop_();
    inData3|=out_q7;
    CLK=1;
    _nop_();
  }  
  Datavalue=inData1;
  Datavalue<<=8;
  Datavalue|=inData2;
  Datavalue<<=8;
  Datavalue|=inData3;
  return(Datavalue);
}



void delay(u16 y)
{
  while(y--);
}
                                            
void main()
{
  u16 hc165value;

  while(1)
  {
    hc165value=HC165ReadData();
    if((hc165value&(1<<0))==0) //此處范圍只能設置0-15,超過這個范圍結果一直是0小燈一直閃爍
    test=0;
    delay(20000);
    test=1;
    delay(20000);
  }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:111634 發表于 2018-9-8 21:10 | 只看該作者
利用虛擬串行比真串行速度要慢,但即使這樣,也不至于漏掉按鍵信號,按鍵信號至少10ms以上。要漏掉也不至于全部漏掉。因此,可以肯定,你的電路連接或程序有問題。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:111634 發表于 2018-9-8 21:13 | 只看該作者
實例39 74HC165串行輸入8-16位按鍵狀態
回復

使用道具 舉報

地板
ID:384109 發表于 2018-9-8 23:04 | 只看該作者
HC165的信號引腳最好都接一個上拉電阻,單片機的引腳可能沒有足夠的驅動力去驅動多個芯片

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

5#
ID:111634 發表于 2018-9-9 09:00 | 只看該作者
我這個案例是真串口傳送
Proteus仿真一下,確認有效。
實例39 74HC165串行輸入8-16位按鍵狀態.rar (57.52 KB, 下載次數: 67)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1.書中電路和程序設計有詳細說明,程序語句條條有注解。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表