51单片机-实机演示(LED点阵)

目录

前言:

一.线位置

二.扩展

三.总结


前言:

这是一篇关于51单片机实机LED点阵的插线图和代码说明.另外还有一篇我写的仿真的连接在这:http://t.csdnimg.cn/ZNLCl,欢迎大家的点赞,评论,关注.

一.线位置

接线实机图.

引脚位置注意:

  1. *-*

P00->RE8

P01->RE7

P02->RE6

P03->RE5

P04->RE4

P05->RE3

P06->RE2

P07->RE1

  1. *-*

P34->SE

P35->RC

P36->SC
3. *-*

QQ1->Dp

.....

QA8->A

接下来上代码

cpp 复制代码
#include <reg51.h>
 
 
 
// void delay(unsigned int t)
// {
//     unsigned int i, j;
//     for (i = 0; i < t; i++) {
//         for (j = 0; j < 1275; j++) {
//             ; // 空循环,等待时间过去
//         }
//     }
// }
 
 
void main(void)
{
	
	P0 = 0 ;
	P2 = 0 ;
	while(1)
	{	 
		P0 = ~0x01 ;
		P2 = 0x01 ;
	}
}
	

就可以看到.随着P0,P2的改变,灯就会改变.

二.扩展

既然基本的已经会了,接下来就可以做点进阶的,比如显示数字0到9;

可以封装一下

u8 gled_row[8]={0x00,0x7C,0x82,0x82,0x82,0x7C,0x00,0x00};//LED点阵显示数字0的行数据

u8 gled_col[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED点阵显示数字0的列数据

然后加上一个循环

while(1)

{

for(i=0;i<8;i++)//循环8次扫描8行、列

{

LEDDZ_COL_PORT=gled_col[i];//传送列选数据

write_data(gled_row[i]);//传送行选数据

delay_us(100);//延时一段时间,等待显示稳定

write_data(0x00);//消影

}

}

就可以实现了.下面是实机效果图,和完整的代码

cpp 复制代码
#include "reg52.h"

typedef unsigned int u16;	
typedef unsigned char u8;

sbit SRCLK=P3^6;	//移位寄存器时钟输入
sbit RCLK1=P3^5;		//存储寄存器时钟输入
sbit SER=P3^4; 		//串行数据输入

#define LEDDZ_COL_PORT	P0	//点阵列控制端口

u8 gled_row[8]={0x00,0x7C,0x82,0x82,0x82,0x7C,0x00,0x00};//LED点阵显示数字0的行数据
u8 gled_col[8]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//LED点阵显示数字0的列数据

void delay_us(u16 ten_us)
{
	while(ten_us--);	
}

void write_data(u8 dat)
{
	u8 i=0;
	
	for(i=0;i<8;i++)//循环8次即可将一个字节写入寄存器中
	{
		SER=dat>>7;//优先传输一个字节中的高位
		dat<<=1;//将低位移动到高位
		SRCLK=0;
		delay_us(1);
		SRCLK=1;
		delay_us(1);//移位寄存器时钟上升沿将端口数据送入寄存器中	
	}
	RCLK1=0;
	delay_us(1);
	RCLK1=1;//存储寄存器时钟上升沿将前面写入到寄存器的数据输出	
}

void main()
{	
	u8 i=0;

	while(1)
	{			
		for(i=0;i<8;i++)//循环8次扫描8行、列
		{
			LEDDZ_COL_PORT=gled_col[i];//传送列选数据
			write_data(gled_row[i]);//传送行选数据
			delay_us(100);//延时一段时间,等待显示稳定
			write_data(0x00);//消影	
		}								
	}		
}

三.总结

以下是关于 51 单片机实机演示 LED 点阵的总结:

51 单片机的作用

  • 作为控制核心,负责数据处理和信号输出。

LED 点阵特点

  • 可以显示各种图形、字符等丰富信息。
  • 由多个 LED 灯按矩阵排列组成。

实机演示的关键

  • 硬件连接:正确将 LED 点阵与 51 单片机引脚连接。
  • 编程控制:通过编写代码来控制 LED 点阵的显示内容。

实现步骤

  • 硬件搭建,确保连接可靠。
  • 初始化 51 单片机相关设置。
  • 设计显示数据和刷新逻辑。
  • 不断循环更新显示。

显示效果

  • 可以实现静态图像显示。
  • 也能实现动态的图像变化或动画效果。

注意事项

  • 要考虑电流驱动能力,避免损坏器件。
  • 优化显示算法以提高显示效果和效率。

应用领域

  • 电子广告牌。
  • 简单的信息显示设备。

通过 51 单片机实机演示 LED 点阵,能够直观地展现单片机的控制能力和 LED 点阵的显示功能,为进一步开发更复杂的显示应用提供了基础和经验。

相关推荐
代码游侠6 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
CODECOLLECT10 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
BackCatK Chen10 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制
全栈游侠13 小时前
STM32F103XX 02-电源与备份寄存器
stm32·单片机·嵌入式硬件
Lsir10110_13 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
深圳市九鼎创展科技15 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计16 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
小龙报17 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业17 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能17 小时前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微