⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 20081001_spi.c

📁 单片机控制74HC595的程序
💻 C
字号:
/****************************************************************************
程序说明:
****************************************************************************/
#include  <reg52.h>

sbit   SPI_DATA = P1^0;
sbit   SPI_CS   = P1^1;
sbit   SPI_CLK	= P1^2;
sbit   led	= P1^7;

#define uint unsigned int
#define uchar unsigned char

void    delayms(uint n)            //延时10×n毫秒程序
                   {
                      uint i,j;
                      for(i=0;i<n;i++)
                         for(j=0;j<2000;j++);
                   }
/****************************************************************************
* 名称:HC595_SendDat()
* 功能:向74HC595发送一字节数据
* 入口参数:dat		要发送的数据
* 出口参数:无
* 说明:发送数据时,高位先发送。
****************************************************************************/
void  HC595_SendDat(uchar dat)
{  uchar  i;

   SPI_CS = 0;			    		// SPI_CS = 0
delayms(40);
led=0;
   for(i=0; i<8; i++)					// 发送8位数据
   {  SPI_CLK = 0;					// SPI_CLK = 0
delayms(40);
      /* 设置SPI_DATA输出值 */
      if( (dat&0x80)!=0 ) SPI_DATA = 1;
        else SPI_DATA = 0;
delayms(20);
      dat <<= 1;
      SPI_CLK = 1;					// SPI_CLK = 1
delayms(10);
   }
   
    SPI_CS= 1;			    		// SPI_CS = 1,输出显示数据
led=1;
delayms(10);
}

main()
{
    uchar i;
	i=1;
	while(1)
	{
		//HC595_SendDat(~0x08); 
       HC595_SendDat(~i);
		//i++;
		//if(i==16) i=1;
		//delayms(5);
		//HC595_SendDat(~0x02);
      
		//delayms(5);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -