51单片机系列--led点阵屏显示汉字

news/2024/10/28 18:31:57/

LED 点阵是由发光二极管排列组成的显示器件。
通常应用较多的是 8* 8 点阵,通过进行对不同位置的点亮与熄灭,构成一个图案,这一点也被应用到了电视机的显示屏上。下面是点阵屏的原理图
在这里插入图片描述
它的DPa到DPh引脚分别对应了侧排的引脚(引脚为高电平,控制P0号引脚低电平即可点亮二极管),采用74HC595串转并芯片,需要在使用过程中对595的3个输入端进行控制。
在这里插入图片描述
跳线帽OE:OE, 输出使能控制脚,它是低电才使能输出,所以接GND,OE端会被GND下拉为0。
P34-SER:代表串行输入,我们串行输入就是把数据放到这。
P35-SCK :上升沿移位,即RCK从0-1电位变化会让数据往下移一位
P36-RCK:上升沿锁存,搬运工,即SCK从0-1电位变化会把数据搬运到芯片输出端
其中:SER负责将数据输入,SCK上升沿触发后数据插入队列,RCK则会锁存复制到输出端队列当中。
在这里插入图片描述
可以用取字模软件进行取模,下载链接在文末,下面是操作例图:
在这里插入图片描述

程序:

#include <reg52.h>
#include <intrins.h>typedef unsigned char u8; 		// 重命名类型u8简化代码编写
typedef unsigned int u16;
#define MATRIX_PORT	P0		// 点阵LED负极端口sbit SCK = P3^6; 			// SCK上升沿移位
sbit RCK = P3^5;			// RCK上升沿串行输出寄存器锁存
sbit SER = P3^4; 			// SER引脚送字节数据进去
// 点阵列选值,数组每个元素的值选中其中一列
u8 gLineCode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //位选控制哪个亮、段选控制输入内容
u8 gZhong[] = {0x00,0x3C,0x52,0x52,0x7E,0x12,0x10,0x00};/*"中",0*/void delay(u16 i);
void Hc595SendByte(u8 dat);
void MatrixDisplay(u8 *zimo);
void delay(u16 i)
{while(i--);	
}/*********************************************************************
* 函 数 名       : main
* 函数功能		 : 主函数
* 参数列表       : 无
* 函数输出    	 : 无
*********************************************************************/
void main(void)
{MatrixDisplay(gZhong);
}
/*********************************************************************
* 函 数 名       : MatrixDisplay
* 函数功能		 : 循环刷新显示字模到点阵上
* 参数列表       : zimo - 待显示的字模数组
* 函数输出    	 : 无
*********************************************************************/
void MatrixDisplay(u8 *zimo)
{u8 i = 0;while (1){for(i=0;i<8;i++){MATRIX_PORT = gLineCode[i];		  		// 位选Hc595SendByte(zimo[i]);		// 发送段选数据delay(100);Hc595SendByte(0x00);  		// 消隐}break;	}
}
/*********************************************************************
* 函 数 名       : Hc595SendByte
* 函数功能		 : 通过74HC595串行移位发送一个字节出去
* 参数列表       : dat - 待发送的字节数据
* 函数输出    	 : 无
*********************************************************************/
void Hc595SendByte(u8 dat)	 //从低位往高位移动数据
{u8 i = 0, j = 0;SCK = 0;				// 将SCK置为初始状态RCK = 0;				// 将RCK置为初始状态for (i=0; i<8; i++){SER = dat & (0x01);dat >>= 1;SCK = 1;j++;			  	// 延时代码,等同于nop指令_nop_();j++;				// 延时代码,等同于nop指令SCK = 0;	}RCK = 1;j++;					// 延时代码,等同于nop指令j++;					// 延时代码,等同于nop指令
}

效果图:
在这里插入图片描述
取字模软件下载


http://www.ppmy.cn/news/444380.html

相关文章

电子设计教程52:16*16LED点阵屏驱动-完整设计

我尝试通过移位寄存器级联三八译码器&#xff0c;实现用3跟控制线&#xff0c;驱动16*16LED点阵屏的效果。这是第四篇博客&#xff0c;讲述三电路的原理图。 通过前几篇文章的铺垫&#xff0c;本节课讲述完整的电路原理图设计。在电路设计中首先要关注LED的电流问题。由于LED屏…

五一单片机之74HC595和LED点阵屏

&#x1f353;1.LED点阵屏的介绍 LED点阵屏按颜色来分是有单色&#xff0c;双色&#xff0c;全彩&#xff0c;但是双色&#xff0c;也不一定是只有两个颜色&#xff0c;因为当两个颜色叠加起来的时候&#xff0c;就是会出现另外一种颜色啦。 &#x1f353;2.点阵屏的显示原理 …

stm32驱动LED点阵屏(LY-LED16x16)

各个引脚功能&#xff1a; OE&#xff1a;使能端&#xff0c;输出高电平关闭屏幕&#xff0c;行选和列选切换的时候需要关闭一下屏幕&#xff0c;防止产生虚影。 D/C/B/A&#xff1a;每个引脚有0、1两个状态&#xff0c;四个引脚用于存储一个四位的二进制数&#xff0c;0/0/0/…

LED点阵屏设计一

LED点阵屏设计一 象棋小子 1048272975 1. LED点阵屏显示原理概述 图1-1为一种8x8的LED点阵单色行共阳模块的内部等效电路图&#xff0c;对于红光LED其工作正向电压约为1.8v&#xff0c;其持续工作的正向电流一般10ma左右&#xff0c;峰值电流可以更大。如下图&#xff0c…

【Python从入门到进阶】24、urllib获取网站电影排行

接上篇《23、urllib使用post请求百度翻译》 上一篇我们讲解了如何使用urllib实现百度翻译的效果。本篇我们来讲解如何使用urllib抓取某某电影排行榜信息。 一、某某电影介绍 1、某某电影网站 某某电影成立于2005年&#xff0c;最初只是一个小型的电影社区&#xff0c;但随着…

51-LED点阵屏

1.LED点阵屏由若干个独立的LED组成&#xff0c;LED以矩阵的形式排列&#xff0c;以灯珠亮灭来显示文字&#xff0c;图片&#xff0c;视频等。 点阵屏的驱动关键&#xff1a;移位寄存器74HC595&#xff1b; 可位寻址:可以对寄存器中的某一位进行定义&#xff1b;例如&#xff…

51单片机学习笔记(串口通信 LED点阵屏 DS1302)

四、串口通信 1.基本概念 通信中最重要的两个方面&#xff1a; 信息表示和解析方法&#xff1b; 信息的传输方法。 通信双方事先需要约定好信息的表示方法和解析方法&#xff0c;做到一致&#xff0c;否则信息不能有效传递。 信号的传输方法是指经过编码后的通信信息如何在传…

按键控制8*8led点阵C语言程序,单片机按键控制8X8LED点阵屏显示图形 程序的几个问题...

/* 名称:按键控制8X8LED点阵屏显示图形 说明:每次按下K1时,会使8X8LED点阵屏循环显示不同图形。 本例同时使用外部中断和定时中断。 */ #include #include #define uchar unsigned char #define uint unsigned int //待显示图形编码 uchar code M[][8]= {{0x00,0x7e,…