搜索
bottom↓
回复: 14

大家看看为什么74HC165不能将并行输入转为串行输出?

[复制链接]

出390入22汤圆

发表于 2013-1-11 09:15:53 | 显示全部楼层 |阅读模式
本帖最后由 liudingding 于 2013-1-11 09:37 编辑

好几天了,一直没有解决这个问题。
先看一下74HC165的应用,从书上摘录的。

我是将多片74HC165串联,看一下我的应用,
我做了个测试,将165的3,4,5,6脚接高电位,11,12,13,14脚接地,15脚接地,1,2脚开始高电平,然后1脚电位变低,再变高,然后2脚加上时钟,先低电平再高电平,至少八个时钟,输出端9脚接发光二极管,高电位亮,多个时钟加上后发光二极管从不熄灭,就是一直输出高电位。

165我先从别的地方买的,不正常后我又从阿莫那里买的,还是一样,大家看一下这是为什么?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出390入22汤圆

 楼主| 发表于 2013-1-11 19:58:02 | 显示全部楼层
本帖最后由 liudingding 于 2013-1-12 10:28 编辑

帮帮忙,帮我看一下,这是什么原因

我的程序是先给一个锁存脉冲,然后再给移位脉冲。锁存脉冲是1脚从高电位变低电位,然后高电位,移位脉冲是2脚从高电位变低电位,再变高电位,八个脉冲,并行输入端四个端口接地,但是加上移位时钟,输出端口从不输出低电平。我在各个端口接了发光二极管,时序我确定没问题,发光二极管一直亮着,输出确定一直高电位。

程序我找不出问题。

我的芯片先是从电子市场上买的,后来从阿莫这里买的,应该没问题吧。我不知再从哪里下手了。

出0入0汤圆

发表于 2013-1-11 20:42:06 | 显示全部楼层
你好!/*加载数据给一个时钟看看*/
#define  Data   P3_2
#define  Load   P3_0 /*low*/
#define  Clock  P2_7/*high*/
/******************************************************
** 函数名称:KeyScan()
** 函数描述: 读取按键
** 输入参数: 无
** 输出参数: uint8 key_tval
*******************************************************/
uint8 ScanKey(void)
{
  uint8 key_tval=0;
  uint8 k=8;
  Load=0;
  Delay();
  Clock=1;
  Delay();
  Clock=0; /*加载数据给一个时钟*/
  Load=1;
  do
  {
   Clock=1;
   Delay();
   Clock=0;
   Delay();
   if(Data)
     {
         key_tval<<=1;
     key_tval++;
         }
         else key_tval<<=1;
  }while(--k);/*读取8位数据*/
   if((key_tval&0x40)==0)
                    {AlarmFlag=1;BeepOut = Enable;}
                        else {AlarmFlag=0;if(!DownFlag)BeepOut = Disable;}
   if((key_tval&0x04)==0)
         key_tval=Open_Key;
     else if((key_tval&0x20)==0)
           key_tval=Set_Key;
      else if((key_tval&0x10)==0)
            key_tval=Up_Key;
                else if((key_tval&0x08)==0)
                   key_tval=Down_Key;
   return(key_tval);
}

出0入76汤圆

发表于 2013-1-11 20:50:57 | 显示全部楼层
本帖最后由 foxpro2005 于 2013-1-11 20:52 编辑
liudingding 发表于 2013-1-11 19:58
帮帮忙,帮我看一下,这是什么原因


检查程序对不对??

给你一个参考程序吧,几年前用C51前写的....74165,74166都有的
参考例程:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出390入22汤圆

 楼主| 发表于 2013-1-12 10:33:48 | 显示全部楼层
这个程序和时序都很简单,我现在不知道程序哪里出了问题,我感觉我的程序应该没问题。

大家看看问题出在哪里?

出0入76汤圆

发表于 2013-1-12 12:23:34 | 显示全部楼层
不把代码贴出来....,  别人怎么帮你看.......

出0入0汤圆

发表于 2013-1-12 16:25:03 | 显示全部楼层
正好我最近做的一个东西也是用 165 来做键盘,这个可以先用 Multisim 一类仿真一下看看有没有问题再做实际的硬件



读取程序
Function ReadKey() As Byte
Local myByte As Byte
Local i As Byte
myByte = 0

For i = 0 To 7
    Rotate(Left,1,myByte)
    myByte = myByte + IO_KEY_DAT
    IO_KEY_CLK = 1
    WaitUs 1
    IO_KEY_CLK = 0
    WaitUs 1      
Next i

myByte = Not myByte
Return myByte
End Function

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-1-12 16:31:00 | 显示全部楼层
另外楼主可以这样检查 165 的 P/L 功能,就是当 P/L =0 的时候,输出 Q=D7,Q'=NOT(D7),也就是说 165 的内部寄存器状态不是在 P/L 下降沿触发变化的,而是 P/L 为低就会一直跟着 Din 变化,所以 P/L=0 的时候,你改变 D7 的状态,Q/Q' 会跟着变;如果这一步成立,把 P/L 拉高,Q/Q' 就应该在时钟上升沿依次输出内部 8 个寄存器的状态。

出0入0汤圆

发表于 2013-1-12 17:40:19 | 显示全部楼层
我没问题 我没问题 哈哈

出0入0汤圆

发表于 2013-4-9 21:19:06 | 显示全部楼层
好东西 学习啦

出0入0汤圆

发表于 2013-4-22 14:59:08 | 显示全部楼层
/************************************************************************/
  //HC165_PL_SET;
  //for(i=1;i>0;i--);  //¿ÉÄÜ»áÓÐÒ»¸öµØ·½³öÏÖÕâ¸öÎÊÌâ¾ÍÊdzöÀ´µÄÊý¾Ý´æ´¢Æ÷GHG_DataûÓÐ ÇåÁã  
  HC165_PL_CLR;
  for(i=8;i>0;i--);
  HC165_PL_SET;
  for(GHG_Number=0;GHG_Number<32;GHG_Number++)//·Ö±ðÑ¡ÔñÏàÓ¦µÄÊý¾Ý
     {
      
        for(i=0;i<8;i++)
           {   
              HC165_CLK_CLR;
              //for(i=4;i>0;i--);
              tempGHG=P5IN&0X01;
              //for(i=4;i>0;i--);
              HC165_CLK_SET;    //¶ÔÓÚÊý¾ÝÒý½Å½øÐÐ
              if(tempGHG)  //Õë¶ÔÓÚ
                 {
                    GHG_Data[GHG_Number]|=0x01<<i;
                 }
               
               //HC165_CLK_CLR;
               //for(unsigned char kk=0;kk<8;kk++);
               
            }  
        GHG_Data[GHG_Number]=~GHG_Data[GHG_Number];//½«²É¼¯µÄÊý
      }


我也遇到那样的问题,希望大虾们指点

出0入0汤圆

发表于 2013-8-14 18:41:33 | 显示全部楼层
这在学习。谢谢啊

出0入0汤圆

发表于 2013-8-14 18:59:04 | 显示全部楼层
  lz  stc的pdf有例子程序

出0入0汤圆

发表于 2013-8-14 19:07:57 | 显示全部楼层
大家看一下这是为什么?


don't worry about it: whatever it is, it is not your fault, :)

here is an example reading data from U3 and outputing its value on PFx.



Hope it helps.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-8-28 17:13:52 | 显示全部楼层
请问楼主,你的作品好了吗,可以分享吗?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 01:33

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表