首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

74HC595解决方案

2012-03-13 
74HC595void In_595() //将显示数据送入74HC595内部移位寄存器{uchar ifor(i0i8i++){ temp 1DS

74HC595
void In_595() //将显示数据送入74HC595内部移位寄存器

{
 uchar i;
for(i=0;i<8;i++)
{
temp <<= 1;
DS = CY;
SH_CP = 1;
_nop_();
_nop_();
SH_CP = 0;
}
}

void Out_595() //将移位寄存器内的数据所存到输出寄存器并显示

{
 ST_CP = 0;
_nop_();
ST_CP = 1; //上升沿将数据送入输出锁存器
_nop_();
ST_CP = 0;
}

[解决办法]

temp <<= 1; 是什么意思?

temp 是一个8位二进制的整数,在for(i=0;i<8;i++)这个循环内,i 加一操作,temp这个参数就

左移一位。i由0到8,temp 左移八次,每次移位都将最高位的值发送到对应管脚。
  
实现将temp的值存进595的寄存器。


[解决办法]
temp <<= 1; 

就是
temp = temp<<1;
就是每次循环时,都将temp左移一位。


[解决办法]
上面的代码就是 一个普通IO模拟SPI功能接口,来控制74HC595。

首先74HC595是SPI接口,
而楼主所选取的单片机可能没有SPI功能接口,所以需要采用普通IO,进行模拟SPI接口,

故出现8此左移,每次移动一位;


楼主再找下IO模拟SPI的介绍看看,就会更明白啦,呵呵
[解决办法]

探讨
引用:
上面的代码就是 一个普通IO模拟SPI功能接口,来控制74HC595。

首先74HC595是SPI接口,
而楼主所选取的单片机可能没有SPI功能接口,所以需要采用普通IO,进行模拟SPI接口,

故出现8此左移,每次移动一位;


楼主再找下IO模拟SPI的介绍看看,就会更明白啦,呵呵


为什么得用 上升沿啊?

热点排行