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 点阵的显示功能,为进一步开发更复杂的显示应用提供了基础和经验。

相关推荐
爱桥代码的程序媛15 分钟前
鸿蒙OpenHarmony【轻量系统芯片移植案例】标准系统方案之瑞芯微RK3568移植案例
嵌入式硬件·harmonyos·鸿蒙·鸿蒙系统·移植·openharmony·鸿蒙开发
Whappy00135 分钟前
51单片机-DA(数字转模拟)
单片机·嵌入式硬件·51单片机
鸽子汤19742 分钟前
想高效开发?从文件系统开始着手。。。
嵌入式硬件·物联网·硬件工程
Whappy0011 小时前
51单片机-AD(模拟信号转数字信号)-实验()
单片机·嵌入式硬件·51单片机
redcocal11 小时前
地平线秋招
python·嵌入式硬件·算法·fpga开发·求职招聘
辰哥单片机设计14 小时前
门磁模块详解(防盗感应开关 STM32)
stm32·单片机·嵌入式硬件·传感器
夜间去看海14 小时前
基于51单片机的自动清洗系统(自动洗衣机)
嵌入式硬件·51单片机·proteus·洗衣机
yrx02030714 小时前
stm32 IIC总线busy解决方法
stm32·单片机·嵌入式硬件
YHPsophie16 小时前
ATGM331C-5T杭州中科微BDS/GNSS全星座定位授时模块应用领域
经验分享·笔记·单片机·信息与通信·交通物流