51单片机点阵屏应用

目录

1.实现功能

1.在8*8点阵屏显示数字

2.在16*16点阵屏显示数字,汉字,图案

2.实现原理

行接GND,列接VCC

左到右,左是高位,右是低位

上到下,上是高位,下是低位

例如当我要显示数字9的时候,一行一行的去看,每一行哪几颗灯亮了,然后这一行亮的几个灯用行列怎么表示

例如第一行亮了3个灯

只显示第一行0111 1111表示0x7F

这三个灯列则是,0001 1100 表示0x1C

第二行亮了2个灯

只显示第二行 1011 1111表示0XBF

列 0010 0100 表示0x24

第三行亮了2个灯

只显示第三行1101 1111 表示0xDF

列 0010 0100 表示0x24

第四行亮3个灯

值显示第四行 1110 1111 表示EF

列 0001 1100 表示0X1C

后面5,6,7,8都是一样都亮一个灯,位置也一样

行分别表示 1111 0111,1111 1011, 1111 1101, 1111 1110对应0XF7, 0XFB, 0XFD, 0XFE

列 0000 0100 表示0x04

3.8*8点阵显示数字代码

显示数字9

c 复制代码
#include <reg51.h>

typedef unsigned int u16;
typedef unsigned char u8;

sbit DS = P3^4; 
sbit SH_CP = P3^6; 	  //输入时钟脉冲
sbit ST_CP = P3^5; 	  //输出

#define LEDDZ_ROW_POST P0

u8 gled_row[8] = {0x7F, 0XBF, 0XDF, 0XEF, 0XF7, 0XFB, 0XFD, 0XFE};
u8 gled_col[8] = {0x1C,0x24,0x24,0x1C,0x04,0x04,0x04,0x04};

void delay_50us(u16 us) {
	while(us--);
}

void delay_ms(u16 ms)
{
	u16 i,j;
	for(i=ms;i>0;i--)
		for(j=110;j>0;j--);
}
void hc595_write_data(u8 dat) {
	u8 i = 0;

	for (i = 0; i < 8; i++) {
		DS = dat >> 7;
		dat <<= 1;
		SH_CP = 0;
		delay_50us(1);
		SH_CP = 1;
		delay_50us(1);
	}

	ST_CP = 0;
	delay_50us(1);
	ST_CP = 1;
}
void main() {
	u8 i = 0;
	while(1) {
		for (i = 0; i < 8; i++) {
			LEDDZ_ROW_POST = gled_row[i];	
		    hc595_write_data(gled_col[i]);
			delay_50us(100);
			hc595_write_data(0x00);
		}		
	}		   
}

4.8*8点阵电路图

5.16*16点阵显示数字代码

显示数字10

c 复制代码
#include <reg51.h>
#include <intrins.h>
typedef unsigned int u16;
typedef unsigned char u8;

sbit DS = P3^4; 
sbit SH_CP = P3^6; 	  //输入时钟脉冲
sbit ST_CP = P3^5; 	  //输出

//行数据
u8 gled_row[32] = {0XFE, 0XFF, 0XFD, 0XFF, 0XFB, 0XFF, 0XF7, 0XFF, 0XEF, 0XFF, 0XDF, 0XFF, 0XBF, 0XFF, 0X7F, 0XFF, 
				   0XFF, 0XFE, 0XFF, 0XFD, 0XFF, 0XFB, 0XFF, 0XF7, 0XFF, 0XEF, 0XFF, 0XDF, 0XFF, 0XBF, 0XFF, 0X7F};

//列数据
u8 gled_col[32] = {
/*0x00,0x00,0x00,0x00,0x30,0x1C,0x38,0x22,0x20,0x41,0x20,0x41,0x20,0x41,0x20,0x41,
0x20,0x41,0x20,0x41,0x20,0x41,0x20,0x22,0x20,0x1C,0x00,0x00,0x00,0x00,0x00,0x00 */    //数字0

//汉字 国
/*0x00,0x00,0xFE,0x3F,0x02,0x20,0x02,0x20,0xFA,0x2F,0x82,0x20,0x82,0x20,0xF2,0x27,
0x82,0x20,0x82,0x22,0x82,0x24,0xFA,0x2F,0x02,0x20,0x02,0x20,0xFE,0x3F,0x02,0x20*/

//在16*16点阵上可以划分4个8*8点阵,在划分出来的其中一个8*8显示图案
0x24, 0X00, 0x7E, 0X00, 0xFF,0X00, 0xFF, 0X00, 0xFF, 0X00, 0x7E,0X00, 0x3C, 0X00, 0x18, 0X00,
0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00
};

void delay_10us(u16 us) {
	while(us--);
}

void delay_ms(u16 ms)
{
	u16 i,j;
	for(i=ms;i>0;i--)
		for(j=110;j>0;j--);
}
void hc595_write_data(u8 dat1, u8 dat2, u8 dat3, u8 dat4) {
	u8 i = 0;

	for (i = 0; i < 8; i++) {
		DS = dat4 >> 7;
		dat4 <<= 1;
		SH_CP = 0;
		_nop_();
		SH_CP = 1;
		_nop_();
	}

	for (i = 0; i < 8; i++) {
		DS = dat3 >> 7;
		dat3 <<= 1;
		SH_CP = 0;
		_nop_();
		SH_CP = 1;
		_nop_();
	}

	for (i = 0; i < 8; i++) {
		DS = dat2 >> 7;
		dat2 <<= 1;
		SH_CP = 0;
		_nop_();
		SH_CP = 1;
		_nop_();
	}

	for (i = 0; i < 8; i++) {
		DS = dat1 >> 7;
		dat1 <<= 1;
		SH_CP = 0;
		_nop_();
		SH_CP = 1;
		_nop_();
	}

	ST_CP = 0;
	_nop_();
	ST_CP = 1;
}
void main() {
	u8 i = 0;
	while(1) {
		for(i = 0; i < 16; i++) {
			hc595_write_data(gled_row[2*i], gled_row[2*i+1], gled_col[2*i], gled_col[2*i+1]);
			delay_10us(10);
			hc595_write_data(0XFF, 0XFF, 0X00, 0X00);
		}		
	}		   
}

6.16*16点阵电路图



相关推荐
恒锐丰科技林技术员10 小时前
EG1191 宽压降压 DC‑DC 芯片解析:高性价比工业电源方案
经验分享·嵌入式硬件·硬件工程
智购科技无人售货机工厂店10 小时前
2026自动售货机大屏交互设计原则:从信息层级到视觉动线的工程实践~YH
运维·python·单片机·嵌入式硬件·自动化·交互
艾芯微科技13 小时前
SKY13370‑374LF|0.5‑6GHz SPDT 射频开关,WLAN/LTE 射频前端实用器件
网络·单片机·嵌入式硬件·集成测试·51单片机
jianqiang.xue15 小时前
收官:从v0.1到“研发新常态“,一套嵌入式智能体的落地与边界
stm32·单片机·物联网·架构·esp32
HUI-47415 小时前
EG1131|SOT23‑6 30V/1.5A 电流模式同步降压 DC‑DC,小体积消费类电源优选
嵌入式硬件·硬件工程
天空'之城15 小时前
单片机基础核心知识点汇总(三十)
单片机·嵌入式硬件
笨笨饿15 小时前
#137_死机恢复现场_Armino平台AP系统swd调试
git·python·stm32·单片机·嵌入式硬件·物联网·vim
linnux领域16 小时前
面包板供电“插哪都不亮“?一个暗断点引发的排查——硬件新手三板斧
单片机·嵌入式硬件·esp32·arduino·面包板·硬件入门
Jaixln_HRF16 小时前
芯维尔CN8010 1.2A/6V同步降压转换器芯片,集成350/230mΩ MOSFET与1.5MHz高频,用于汽车电子/IoT/便携仪器
嵌入式硬件·物联网·硬件工程
ACP广源盛1392462567317 小时前
M6/M5 Pro Mac mini 端侧 AI 落地@ACP#IX6024 PCIe2.0 交换芯片在轻量化 AI 服务中的机会与应用场景
大数据·数据库·人工智能·嵌入式硬件·macos·开源