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

相关推荐
易知嵌入式小菜鸡38 分钟前
CCS-MSPM0G3507-3-基础篇-PWM输出
stm32·单片机·嵌入式硬件
悟空胆好小4 小时前
分音塔科技(BABEL Technology) 的公司背景、股权构成、产品类型及技术能力的全方位解读
网络·人工智能·科技·嵌入式硬件
Meraki.Zhang5 小时前
【STM32实践篇】:最小系统组成
stm32·单片机·嵌入式硬件·最小系统
Do vis8246 小时前
STM32第二十一天定时器TIM
stm32·单片机·嵌入式硬件
丁满与彭彭7 小时前
嵌入式学习笔记--MCU阶段--day03中断
笔记·单片机·学习
森焱森7 小时前
一文理解锂电池充电、过放修复与电量测量:从原理到实战
c语言·单片机·架构
逼子格8 小时前
滤波电路Multisim电路仿真实验汇总——硬件工程师笔记
笔记·嵌入式硬件·硬件工程·硬件工程师·硬件工程师真题·multisim电路仿真·滤波电路
熬夜的猪仔10 小时前
【Freertos实战】零基础制作基于stm32的物联网温湿度检测(教程非常简易)持续更新中.........
stm32·嵌入式硬件·物联网
景彡先生11 小时前
STM32中的RTC(实时时钟)详解
stm32·嵌入式硬件·实时音视频
EutoCool19 小时前
Qt:布局管理器Layout
开发语言·c++·windows·嵌入式硬件·qt·前端框架