51单片机学习——7–8*8LED点阵显示

  • Post author:
  • Post category:其他




原理



点阵简介

点阵的外部

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

点阵的内部结构
在这里插入图片描述

和矩阵按键相似,将每一行或每一列的LED阳极或阳极并联一起。如左图,如果我们想让某个led灯点亮,就让某一行输出高电平,某一列输出低电平。
在这里插入图片描述

我们通过74HC595向led点阵输入段选数据,即控制每一列哪些灯亮

通过P0口输入位选数据,即控制哪一列显示

在这里插入图片描述



74HC595

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

通过控制14,11,12引脚来输入数据。

14:DS(SER)对应网络标号的P3^4

11:SHCP(SRCLK)对应网络标号中的P3^6

12:STCP(RCLK)对应网络标号中的P3^5

上升沿就是数字电路中,数字电平从低电平(数字“0”)变为高电平(数字“1”)的那一瞬间(时刻)叫作上升沿。

同理下降沿就是数字电平从高电平(1)变为低电平(0)的这一瞬间。



具体操作原理:

通过移位操作,我们将8位数据从低位到高位依次发送给SER,SER每接收一位数据后,我们手动置1让SRCLK处于上升沿状态,SRCLK寄存器就会将数据移位到原理图中的QA,循环这个过程,直到最高位数据传送到QH,再来让RCLK处于上升沿状态,RCLK就会将存储的数据发送到D0到D7口,也就是控制led灯的列控制口



代码实现

1.我们通过文字取模工具得到想要显示的图形(已经上传,可以免费下载)

在这里插入图片描述

下方生成了段选数据,我们直接复制粘贴即可,将它存储到列数组里面

2.
在这里插入图片描述

我用到的是这个点阵,从上往下是从高位到低位,从左往右也是从高位到低位。

位选:我们让哪一列亮起,就让这一列变为低电平,即对应位为0,不想让亮的变为高电平,即对应位为1

段选:相同的道理,我们让哪一行亮起,就让这一行变为高电平,即对应位为1,不想让亮的变为低电平,即对应位为0,数据已经在取模工具中生成。

#include<reg52.h>
#include<intrins.h>

typedef unsigned char u8;
typedef unsigned int u16;

sbit SRCLK=P3^6;  //11 SRCLK管脚
sbit RCLK1=P3^5; //12 RCLK管脚
sbit SER=P3^4; //14 SER管脚

u8 duan[]={0x3C,0x24,0xFF,0xBD,0xBD,0xFF,0x24,0x3C};//段选数据
u8 wei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位选数据  /0111 1111/1011 1111/1101 1111/1111 0111/1111 1011/1111 1101/1111 1110 

void delay(u16 i)//延时函数
{
   while(i--);
}

void Hc595pro(u8 dat) //发送段选数据函数
{
  	 u8 a;
     SRCLK=0;
	 RCLK1=0;
	 for(a=0;a<8;a++)
	 {
	    SER=dat<<7;	  //<<	左移	用来将一个数的各二进制位全部左移7位,高位舍弃,低位补0。
		dat>>=1;  	  //>>	右移	将一个数的各二进制位右移1位,移到右端的低位被舍弃,对于无符号数,高位补0。
		SRCLK=1;	  //上升沿执行功能
		_nop_();	  //这个过程大概十几纳秒因此,延时两个机器周期即可,_nop_()函数是<intrins.h>库里的函数
		_nop_();
		SRCLK=0;	  //手动置0,为下一次执行做准备
	 }
	 RCLK1=1;		 //上升沿将数据发送至D0到D7
	 _nop_();		 //延时两个机器周期
	 _nop_();
	 RCLK1=0;		 //手动置0,为下一次执行做准备
}

void main()
{
	u8 i;
 	while(1)
   	{
    	 for(i=0;i<8;i++)
		  {
	    	 P0=wei[i];//位选
			 Hc595pro(duan[i]);
			 delay(100);//通过延时来达到一种类似静态显示的效果
			 Hc595pro(0x00);//消影
	 	  }
	}
}


要注意的是,如果发现点阵不亮,很可能的原因是没有将点阵模块的OE和GND短接


效果展示:
在这里插入图片描述



版权声明:本文为Joker15517原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。