找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6586|回复: 8
打印 上一主题 下一主题
收起左侧

有关74HC597读取问题,弄了好久只能读取第一块(也就是前8bit),后面的就是读不出来!!

[复制链接]
跳转到指定楼层
楼主
本帖最后由 eveloves 于 2017-4-1 19:56 编辑

74HC597只能读第一个芯片,第二个芯片就无法读取!!!!
#include <reg51.h>
#include <intrins.h>

typedef unsigned char u8  ;
typedef unsigned int  u16 ;

sbit PL   = P3^7;
sbit SHCP = P3^6;
sbit SO   = P3^5;

u16 Read_74hc579()
{     
        u8  i = 0;   
        u16  read_data = 0;  

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

        for(i=0; i<16; i++)
        {      
                read_data <<= 1;
               
                if(SO) read_data |= SO;      
               
                SHCP = 0; _nop_();
                SHCP = 1; _nop_();
         }
         return read_data;
}

void main()
{
        u16 temp = 0;
        u8 *pos = (u8*)(&temp);
        while(1)   
        {
                temp = Read_74hc579();
                P1 = pos[0];
                P2 = pos[1];
        }
}



597.JPG (129.62 KB, 下载次数: 93)

读取74HC597实验

读取74HC597实验
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:142678 发表于 2017-4-1 20:05 | 只看该作者
自已先顶一下
回复

使用道具 举报

板凳
ID:142678 发表于 2017-4-1 20:06 | 只看该作者
自已先顶一下了.
回复

使用道具 举报

地板
ID:155507 发表于 2017-4-2 07:45 | 只看该作者
  1. union Data {
  2.    u16 temp;
  3.    u8 pos[2];
  4. };

  5. void main()
  6. {
  7.         //u16 temp = 0;
  8.         //u8 *pos = (u8*)(&temp);
  9.                 union Data data;  
  10.         data.temp = 0;
  11.         while(1)   
  12.         {
  13.                 data.temp = Read_74hc579();
  14.                 P1 = data.pos[0];
  15.                 P2 = data.pos[1];
  16.         }
  17. }
复制代码
回复

使用道具 举报

5#
ID:142678 发表于 2017-4-6 19:39 | 只看该作者
你好!4楼的朋友.
     首先谢谢你的解答! 不过---结果是和原代码一样的没有效果. 你使用的联合体和我使用的指针强转从某种意义来说,没有什么不同.
回复

使用道具 举报

6#
ID:215494 发表于 2017-6-28 15:28 | 只看该作者
我是初学者,上站来找597的资料,看到了你的设计和程序。有一个问题想问下,597_U1 & 597_U2 的SHCP 难道是共用一个IO口么??
回复

使用道具 举报

7#
ID:57657 发表于 2023-7-23 21:38 | 只看该作者
74HC597的仿真模型可能有问题,具体需要用实物验证。
回复

使用道具 举报

8#
ID:1085441 发表于 2023-7-24 01:04 | 只看该作者
PIN12和PIN13接在一起对吗?应该是PIN12先发正脉冲先将IO电平装载到输入寄存器,然后PIN13再发负脉冲将输入寄存器数据装载到移位寄存器。
这个597我也没用过,可否将12,13脚分开控制试试?
回复

使用道具 举报

9#
ID:275826 发表于 2023-7-24 10:06 | 只看该作者
你仿真的效果是正确的呀,没有问题
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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