在线时间37 小时
UID3074904
注册时间2015-3-15
NXP金币0
TA的每日心情 | 开心 2022-7-25 11:05 |
---|
签到天数: 38 天 连续签到: 1 天 [LV.5]常住居民I
中级会员
 
- 积分
- 393
- 最后登录
- 2022-7-25
|
本帖最后由 雪山飞狼 于 2017-7-12 22:25 编辑
如题,请问哪位大神用过HEF4894B这个12级的串转并移位寄存器,按手册里的逻辑编程,但没有得到预想的结果,求大神指点!
附件是IC的datasheet;
自己编写的驱动如下:
/* Transform data to QP0 ~ 11*/
void HEF4894_Trans(unsigned long data,unsigned char data_len)
{
unsigned long temp_data = 0;
unsigned char i = 0;
temp_data = data;
HEF4894_STR = 0; /* 锁存关 */
HEF4894_OE = 0; /* 输出使能关 */
HEF4894_D = 0; /* 数据输入0 */
HEF4894_CP = 0; /* 时钟线0 */
/* trans data to the register of HEF4894 */
for(i=0;i<data_len;i++)
{
HEF4894_CP = 0;
if((temp_data & (unsigned long)0x0001) == 0)
{
HEF4894_D = 0;
}
else
{
HEF4894_D = 1;
}
HEF4894_CP = 1;
temp_data = temp_data>>1;
}
HEF4894_CP = 0; /* 时钟线0 */
HEF4894_STR = 1; /* 锁存使能 */
HEF4894_OE = 1; /* 输出使能 */
}
|
|