微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ARM7单片机(学习ing)—(一)、输入/输出端口GPIO编程—01

ARM7单片机(学习ing)—(一)、输入/输出端口GPIO编程—01

时间:05-02 来源:互联网 点击:

大概介绍一下74HC595吧:

//74HC595是具有8位移位寄存器和一个存储器,三态输出功能。

//移位寄存器和存储器是分别的时钟。

//数据在SH_CP的上升沿输入到移位寄存器中,在ST_CP的上升沿输入到存储寄存器中去。

//如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲(一般不会这么用吧~~)。

//移位寄存器有一个串行移位输入(DS),和一个串行输出(Q7’),和一个异步的低电平复位。

//存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线。

void HC595_send_data(uchar dat)

{

uchar i;

IOCLR=SPI_CS; //SPI_CS=0

for(i=0;i<8;i++) //模拟SPI~~

{

IOCLR=SPI_CLK; //SPI_CLK=0

if((dat&0x80)!=0) //设置SPI_DA的输出值

IOSET=SPI_DA; //要从最高位发送,当最高位为1时,置位SPI_DA

else

IOCLR=SPI_DA; //当最高位为0时,清零SPI_DA

dat<<=1; //dat循环左移一位

IOSET=SPI_CLK; //SPI_CLK为1,一个脉冲上升沿,将数据移入移位寄存器

}

IOSET=SPI_CS; //SPI_CS=1,输入到存储寄存器中,由于片选一直为低,所以直接就输出显示的数据

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top