51例程---led点阵


一、LED点阵发光原理

(1)8*8单色单片机结构图如下:


从电路图中很简单的就可以看出来,想要点亮点阵中的某一个LED灯。只要使得那个灯所在的行输出高电平,所在列输出低电平就好。

(2)51单片机中一般用74HC595芯片驱动led点阵,单片机端口直接驱动。因为直接驱动8*8的点阵需要2个IO端口(16个IO口)、要驱动16*16的点阵需要4个IO端口(32个IO口)。使用74HC595驱动16*16点阵只需要4个74HC595+3个IO口即可(数据口、SCLK、RCLK)。

74HC595芯片原理图如下图:


(3)74HC595的三个关键端口为SEG、SCLK、RCLK。SER进行数据的串行输入,SCLK提供移位时钟,RCLK提供锁存时钟。SCLK是移位时钟,595芯片内部在每个SCLK的上升沿会对SER引脚进行一次采样输入,就向595内部输入了1位,如此循环8次就输入了8位二进制。RCLK是锁存时钟,QA-QH的8位并行输出信号在RCLK的上升沿进行一次锁存更新。

二、例程,点亮16*16led点阵
(1)、编程需要单独操作1个IO引脚,譬如要操作P3.4,但是直接写P3.4的话C语言是不认识的,而必须使用sbit关键字来定义一个引脚。
           eg:sbit SER = P3^4;

#include <reg51.h>


sbit SER  = P3^4;			// 74HC595的串行输入端
sbit RCLK = P3^5;			// 锁存时钟
sbit SCLK = P3^6;			// 移位时钟


void main(void)
{
	unsigned char i = 0;
	unsigned char d1, d2, d3, d4;  	// 要给4个595并行输出端输出的值

	d1 = 0;
	d2 = 0;
	d3 = 0xff;
	d4 = 0xff;  //d1和d2是接点阵负极的,d3和d4接点阵正极,所以只有给d1和d2低电平,d3和d4高电平,led点阵才会全亮

	SCLK = 0;
	RCLK = 0;

	for (i=0; i<8; i++)
	{	
		SER = d1 >> 7;	 		// 将d1的最高bit取出来给SER	
		SCLK = 0;	
		SCLK = 1;  				// 2步制造了一个SCLK的上升沿
		d1 = d1 << 1;
	}
	// 至此已经在8个SCLK上升沿把d1的8位依次全部发出去了
	// 但是还没有进行锁存,所以QA-QH还没东西

	for (i=0; i<8; i++)
	{
		SER = d2 >> 7;	 		// 将d2的最高bit取出来给SER
		SCLK = 0;
		SCLK = 1;  				// 2步制造了一个SCLK的上升沿
		d2 = d2 << 1;
	}
	// 至此已经把d1和d2都发出去了,并且d1已经被d2挤到第2个595芯片里面去了
	// 但是还没有进行锁存,所以QA-QH还没东西


	for (i=0; i<8; i++)
	{
		SER = d3 >> 7;	 		// 将d3的最高bit取出来给SER
		SCLK = 0;
		SCLK = 1;  				// 2步制造了一个SCLK的上升沿
		d3 = d3 << 1;
	}
	// 至此已经把d1和d2和d3都发出去了,并且d1已经被d2和d3挤到第3个595芯片里面去了
	// 但是还没有进行锁存,所以QA-QH还没东西


	for (i=0; i<8; i++)
	{
		SER = d4 >> 7;	 		// 将d4的最高bit取出来给SER
		SCLK = 0;
		SCLK = 1;  				// 2步制造了一个SCLK的上升沿
		d4 = d4 << 1;
	}
	// 至此已经把d1和d2和d3和d4都发出去了,并且d1已经被d2、d3、d4挤到第4个595芯片里面去了
	// 但是还没有进行锁存,所以QA-QH还没东西


	// 截至这里,4个字节的数据d1、d2、d3、d4已经顺着74HC595的SER->QH'的串行输入
	// 串行输出路线,已经爬满了4个74HC595(最先送出去的到了最后没一个595中)
	// 但是目前为止4个595的QA-QH还都没有输出呢,点阵自然不会亮。

	// 然后要进行一次锁存,4个595芯片同时在进行锁存,各自锁存住了自己的数据
	RCLK = 0;
	RCLK = 1;
	// 这两句之后595就完成了锁存,d1-d4就会影响4个595芯片的并行输出端,进而
	// 会影响点阵中LED的正负极的值,然后LED就会亮或者灭。

}



猜你喜欢

转载自blog.csdn.net/qq_35576988/article/details/78424303