单片机控制点阵LED灯(利用74HC595芯片)

#include 
#include "delay.h"
sbit RCK=P3^5;  //RCLK
sbit SCK=P3^6;  //SRCLK
sbit SER=P3^4;   //SER
#define MATRIX_LED_POPT P0 //¶¨ÒåP0Ϊһ¸ö¿ª¹Ø·½±ãÀí½â
void _74HC595_writebyte(unsigned char byte)
{
	unsigned char i;
	for(i=0;i<8;i++)
	{
		SER=byte&(0x80>>i);
		SCK=1;
		SCK=0;
	}
	RCK=1;
	RCK=0;
}

void matrixLED_showcolumn(unsigned char Column,Data)//columnΪÐèÒªÔÚµãÕóÆÁÖеãÁÁµÄÁÐÊý
{                                                   //dataΪÁÐÖÐÏÔʾµÄÊý¾Ý
	_74HC595_writebyte(Data);
	MATRIX_LED_POPT=~(0x80>>Column);
	delay(1);
	MATRIX_LED_POPT=0xFF;
}

void main()
{
	SCK=0;
	RCK=0;
	
	while(1)
	{
		matrixLED_showcolumn(0,0x3C);
		matrixLED_showcolumn(1,0x42);
		matrixLED_showcolumn(2,0xA9);
		matrixLED_showcolumn(3,0x91);
		matrixLED_showcolumn(4,0x91);
		matrixLED_showcolumn(5,0xA9);
		matrixLED_showcolumn(6,0x42);
		matrixLED_showcolumn(7,0x3C);
	}
}

 单片机控制点阵LED灯(利用74HC595芯片)_第1张图片

 实现的效果图

此处用到了一毫秒的延迟函数,可用软件自行生成。实现的方法主要是74HC595,将存入的数据,将每一位传入到寄存器中,再由其统一传入到点阵LED屏,后进行显示。

你可能感兴趣的:(单片机,嵌入式硬件,51单片机)