普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 5115|回复: 0

一个困惑:单片机IO扩展--74HC165

 关闭 [复制链接]

1

主题

1

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2018-6-18 12:03:16 | 显示全部楼层 |阅读模式
/**************************************************************************************
*                单片机IO扩展--74HC165实验              *
实现现象:下载程序后,按下独立按键可以点亮对应的led
   K1--led1
   K2--led2
   K3--led3
   ...
   K8--led8
   
注意事项:必须将74HC165模块的JP165短接片短接,否则不会出现现象                     
***************************************************************************************/
#include "reg52.h"    //此文件中定义了单片机的一些特殊功能寄存器
#include "intrins.h"
typedef unsigned int u16;   //对数据类型进行声明定义
typedef unsigned char u8;
//--定义使用的IO口--//
#define GPIO_LED P0
sbit    IN_PL   = P1^6;   
sbit    IN_Data = P1^7;    //数据通过P1.7脚移进单片机内处理
sbit    SCK    = P3^6;


/*******************************************************************************
* 函 数 名         : Read74HC165
* 函数功能     : 使用165读取一个字节数据
* 输    入         : 无
* 输    出         : 无
*******************************************************************************/
u8 Read74HC165(void)
{  
  u8 i;
  u8 indata;
  
   IN_PL = 0;
   _nop_();        //短暂延时 产生一定宽度的脉冲
   IN_PL = 1;    //将外部信号全部读入锁存器中
   _nop_();
              
   indata=0;   //保存数据的变量清0  
   for(i=0; i<8; i++)
    {
   indata = indata<<1;    //左移一位
   SCK = 0;   //时钟置0  
      _nop_();
   indata |= IN_Data;
      SCK = 1;   //时钟置1   
}
   
   return(indata);  
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能   : 主函数
* 输    入       : 无
* 输    出      : 无
*******************************************************************************/
void main()
{
u8 h165Value;
GPIO_LED = 0;
while(1)
{
  h165Value = Read74HC165();
  if(h165Value != 0xFF)
  {
   GPIO_LED = ~h165Value;
  }
}   
}



问题是为什么Read74HC165函数里面的“ indata |= IN_Data;” 必须要位于“SCK = 1;   //时钟置1”之前,这个芯片不是上升沿吗触发吗?应该SCK=1触发以后再讲IN_-Data的值弄进去吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-4-20 20:01 , Processed in 0.101509 second(s), 30 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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