标题:
有关74HC597读取问题,弄了好久只能读取第一块(也就是前8bit),后面的就是读不出来!!
[打印本页]
作者:
eveloves
时间:
2017-4-1 19:51
标题:
有关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, 下载次数: 122)
下载附件
2017-4-1 19:48 上传
读取74HC597实验
作者:
eveloves
时间:
2017-4-1 20:05
自已先顶一下
作者:
eveloves
时间:
2017-4-1 20:06
自已先顶一下了.
作者:
angmall
时间:
2017-4-2 07:45
union Data {
u16 temp;
u8 pos[2];
};
void main()
{
//u16 temp = 0;
//u8 *pos = (u8*)(&temp);
union Data data;
data.temp = 0;
while(1)
{
data.temp = Read_74hc579();
P1 = data.pos[0];
P2 = data.pos[1];
}
}
复制代码
作者:
eveloves
时间:
2017-4-6 19:39
你好!4楼的朋友.
首先谢谢你的解答! 不过---结果是和原代码一样的没有效果. 你使用的联合体和我使用的指针强转从某种意义来说,没有什么不同.
作者:
futurehuan2011
时间:
2017-6-28 15:28
我是初学者,上站来找597的资料,看到了你的设计和程序。有一个问题想问下,597_U1 & 597_U2 的SHCP 难道是共用一个IO口么??
作者:
npn
时间:
2023-7-23 21:38
74HC597的仿真模型可能有问题,具体需要用实物验证。
作者:
cnfloatleaf
时间:
2023-7-24 01:04
PIN12和PIN13接在一起对吗?应该是PIN12先发正脉冲先将IO电平装载到输入寄存器,然后PIN13再发负脉冲将输入寄存器数据装载到移位寄存器。
这个597我也没用过,可否将12,13脚分开控制试试?
作者:
tyrl800
时间:
2023-7-24 10:06
你仿真的效果是正确的呀,没有问题
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1