搜索
bottom↓
回复: 14

利用两个LS165级联,怎么只能控制一位拨码开关?帮我看看...

[复制链接]

出0入0汤圆

发表于 2013-7-2 07:45:44 | 显示全部楼层 |阅读模式
/*******************************************************************************

********************************************************************************/
#include <reg52.H>
#include <intrins.h>

#define  NOP()   _nop_()   /* 定义空指令 */

//SPI 接口
sbit    CLK    = P1^5;           //串行时钟
sbit    IN_PL  = P1^6;    //把数据加载到锁存器中
sbit    IN_Dat = P1^7;    //数据通过P1.7脚移进单片机内处理

unsigned long ReHC74165(void);         //函数声名
//void beep();  
void Delay(void)
{
   unsigned char i , j;
   for(i=250;i>0;i--)
     for(j=250;j>0;j--);
}  

/********************************************************
*        主函数                                                                                                 *
*                                                                                                                 *
********************************************************/
main()
  {         
   unsigned char i;

  while(1)
  {
    unsigned long  Input=ReHC74165();//调用165驱动程序
     
     P2 = 0xff;          //清除
         P3 = 0xff;

         P2 = Input;
         Delay();
         Delay();
            for(i=0; i<8; i++)
    {
          Input=Input>>1;
     }
         P3 = Input;
         Delay();
         Delay();


   }   
   
}



unsigned long ReHC74165(void)
{  
  unsigned char i;
  unsigned long indata;
               
   IN_PL=0;
   NOP();    //短暂延时 产生一定宽度的脉冲
   IN_PL=1;         //将外部信号全部读入锁存器中
   NOP();
              
   indata=0;   //保存数据的变量清0  
   for(i=0; i<16; i++)
    {
          indata=indata<<1;         //左移一位
      if(IN_Dat==1)indata=indata+1;        //如果IN_Dat检测到高电平 保存数据的变量加1
          CLK=0;   //时钟置0
      NOP();
      CLK=1;   //时钟置1          
        }
   
   return(~indata);         //将保存数据的变量取反后返回
}



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

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

 楼主| 发表于 2013-7-2 07:47:55 | 显示全部楼层
本帖最后由 1501697860 于 2013-7-2 07:50 编辑

原理图请帮忙看看,多谢了

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-7-2 07:56:08 | 显示全部楼层
没看懂要说什么意思

出0入0汤圆

 楼主| 发表于 2013-7-2 08:36:27 | 显示全部楼层
程序那里不对啊?帮帮看看,多谢!

出0入0汤圆

发表于 2013-7-2 08:44:45 | 显示全部楼层
应该是程序问题,没读到16bit数据?

出0入0汤圆

发表于 2013-7-2 09:06:52 | 显示全部楼层
级联吧?你去看看STC的技术文档,后面有的。

出0入0汤圆

发表于 2013-7-2 09:11:38 | 显示全部楼层
本帖最后由 proteldxp 于 2013-7-2 09:13 编辑

attach://122740.png
attach://122741.png

本帖子中包含更多资源

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

x

出0入4汤圆

发表于 2013-7-2 10:03:01 | 显示全部楼层
本帖最后由 fulitun 于 2013-7-2 10:05 编辑

你的15脚是不是接错了

出0入0汤圆

 楼主| 发表于 2013-7-2 10:22:24 | 显示全部楼层
proteldxp 发表于 2013-7-2 09:11
attach://122740.png
attach://122741.png

多谢,我在研究研究

出0入0汤圆

 楼主| 发表于 2013-7-2 10:24:27 | 显示全部楼层
fulitun 发表于 2013-7-2 10:03
你的15脚是不是接错了

没有哦,可以这样接的,两个相反就可以了

出0入0汤圆

 楼主| 发表于 2013-7-2 10:24:52 | 显示全部楼层
不过我还准备接地,那样好布线

出0入0汤圆

 楼主| 发表于 2013-7-2 11:11:22 | 显示全部楼层
分享一个,明天用MSP430看看

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2013-7-12 23:47:16 来自手机 | 显示全部楼层
还得我看咯

出0入0汤圆

发表于 2013-7-13 05:19:42 来自手机 | 显示全部楼层
移位16次,indata怎么是unsigned char ?

出0入0汤圆

 楼主| 发表于 2013-7-13 07:27:36 | 显示全部楼层
a20084666 发表于 2013-7-12 23:47
还得我看咯

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

本版积分规则

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

GMT+8, 2024-10-3 09:07

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

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