找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8281|回復: 8
收起左側

有關74HC597讀取問題,弄了好久只能讀取第一塊(也就是前8bit),后面的就是讀不出來!!

[復制鏈接]
ID:142678 發(fā)表于 2017-4-1 19:51 | 顯示全部樓層 |閱讀模式
本帖最后由 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];
        }
}



讀取74HC597實驗

讀取74HC597實驗
回復

使用道具 舉報

ID:142678 發(fā)表于 2017-4-1 20:05 | 顯示全部樓層
自已先頂一下
回復

使用道具 舉報

ID:142678 發(fā)表于 2017-4-1 20:06 | 顯示全部樓層
自已先頂一下了.
回復

使用道具 舉報

ID:155507 發(fā)表于 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. }
復制代碼
回復

使用道具 舉報

ID:142678 發(fā)表于 2017-4-6 19:39 | 顯示全部樓層
你好!4樓的朋友.
     首先謝謝你的解答! 不過---結果是和原代碼一樣的沒有效果. 你使用的聯(lián)合體和我使用的指針強轉從某種意義來說,沒有什么不同.
回復

使用道具 舉報

ID:215494 發(fā)表于 2017-6-28 15:28 | 顯示全部樓層
我是初學者,上站來找597的資料,看到了你的設計和程序。有一個問題想問下,597_U1 & 597_U2 的SHCP 難道是共用一個IO口么??
回復

使用道具 舉報

ID:57657 發(fā)表于 2023-7-23 21:38 | 顯示全部樓層
74HC597的仿真模型可能有問題,具體需要用實物驗證。
回復

使用道具 舉報

ID:1085441 發(fā)表于 2023-7-24 01:04 | 顯示全部樓層
PIN12和PIN13接在一起對嗎?應該是PIN12先發(fā)正脈沖先將IO電平裝載到輸入寄存器,然后PIN13再發(fā)負脈沖將輸入寄存器數(shù)據(jù)裝載到移位寄存器。
這個597我也沒用過,可否將12,13腳分開控制試試?
回復

使用道具 舉報

ID:275826 發(fā)表于 2023-7-24 10:06 | 顯示全部樓層
你仿真的效果是正確的呀,沒有問題
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

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