51单片机8*8点阵屏

news/2024/12/22 17:28:29/

8*8点阵屏

8*8点阵屏是一种LED显示屏,它由8行和8列的LED灯组成。每个LED灯的开闭状态都可以独立控制,从而可以显示出数字、字母、符号、图形等信息。

8*8点阵屏的原理是通过行列扫描的方式,控制LED灯的亮灭,从而显示出所需的图案或信息。通过逐行逐列地控制LED的亮灭,就可以在屏幕上显示出任意的数字、字母和图形。

这种点阵屏通常被广泛应用于电子钟表、计时器、温度计、电子游戏等产品中,因为它可以以较小的尺寸显示出丰富的信息,而且功耗较低、制作成本相对较低。

点阵屏理论介绍

8*8点阵屏电路图

如何赋值点亮led灯:要使用动态扫描的方式点亮led灯防止出现同时点亮的情况

74HC595芯片的工作原理

8*8点阵屏原理图

74HC595芯片使用说明

eg1:点阵屏编程实战:点亮第一个点阵
 

#include <REGX52.H>
sbit DIO = P3^4; // 串行数据口
sbit S_CLK = P3^5; //移位寄存器时钟
sbit R_CLK = P3^6; // 输出锁存器时钟void main(){// ROW : 0x80 ,COL : 0xfe 通过传入和并出的方式将数据发送出去unsigned char i,dat;dat = 0xfe;for(i = 0; i<8;i++){S_CLK = 0;R_CLK = 0;if(dat & 0x01){DIO = 1;}else{DIO = 0;}S_CLK = 1;	dat >>= 1;}dat = 0x80;for(i = 0; i<8;i++){S_CLK = 0;R_CLK = 0;if(dat & 0x01){DIO = 1;}else{DIO = 0;}S_CLK = 1;		dat >>= 1;}R_CLK = 1;while(1);}

eg2:点阵屏实战:显示汉字-->电 字符

#include <REGX52.H>
#include <INTRINS.H>sbit DIO = P3^4; // 串行数据口
sbit S_CLK = P3^5; //移位寄存器时钟
sbit R_CLK = P3^6; // 输出锁存器时钟/*取模软件生成的自形码:0xef 0x01 0x6d 0x01 0x6d 0x01 0xee 0xe0 --> 电
*/
unsigned char code table[] = {0xe0, 0xee, 0x01, 0x6d, 0x01, 0x6d, 0x01, 0xef
};void Send_Byte(unsigned char dat){unsigned char i;S_CLK = 0;R_CLK = 0;for(i = 0; i<8;i++){if(dat & 0x01){DIO = 1;}else{DIO = 0;}S_CLK = 1;	dat >>= 1;S_CLK = 0;}
}void main(){// ROW : 0x80 ,COL : 0xfe 通过传入和并出的方式将数据发送出去unsigned char j,ROW;while(1){ROW = 0X80;for(j = 0; j < 8; j++){Send_Byte(table[j]);Send_Byte(ROW);R_CLK = 1;ROW = _cror_(ROW,1); // 循环右移动R_CLK = 0;}}
}

eg3:使用点阵屏显示电子两个字

#include <REGX52.H>
#include <INTRINS.H>sbit DIO = P3^4; // 串行数据口
sbit S_CLK = P3^5; //移位寄存器时钟
sbit R_CLK = P3^6; // 输出锁存器时钟/*取模软件生成的自形码:0xef 0x01 0x6d 0x01 0x6d 0x01 0xee 0xe0 --> 电
*/
unsigned char code table[2][8] = {0xe0, 0xee, 0x01, 0x6d, 0x01, 0x6d, 0x01, 0xef,0xe7, 0xe7, 0xe7, 0xe7, 0x80, 0xf7, 0xfb, 0xc3
};void Send_Byte(unsigned char dat){unsigned char i;S_CLK = 0;R_CLK = 0;for(i = 0; i<8;i++){if(dat & 0x01){DIO = 1;}else{DIO = 0;}S_CLK = 1;	dat >>= 1;S_CLK = 0;}
}void main(){// ROW : 0x80 ,COL : 0xfe 通过传入和并出的方式将数据发送出去unsigned char j,k,ROW;unsigned int z;while(1){for(k=0;k<2;k++){for(z = 0; z <1000; z++){ROW = 0X80;for(j = 0; j < 8; j++){Send_Byte(table[k][j]);Send_Byte(ROW);R_CLK = 1;ROW = _cror_(ROW,1); // 循环右移动R_CLK = 0;}}}}}


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

相关文章

阶乘分解《算法竞赛进阶指南》

阶乘分解《算法竞赛进阶指南》 \Huge{阶乘分解《算法竞赛进阶指南》} 阶乘分解《算法竞赛进阶指南》 题目地址&#xff1a;197. 阶乘分解 - AcWing题库 文章目录 题面输入格式输出格式数据范围输入样例&#xff1a;输出样例&#xff1a;样例解释 思路标程 题面 给定整数 N N…

上位机图像处理和嵌入式模块部署(windows opencv)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 opencv可以运行在多个平台上面&#xff0c;当然windows平台也不意外。目前来说&#xff0c;opencv使用已经非常方便了&#xff0c;如果不想自己编译…

【心得】java从CC1链入门CC链个人笔记

来劲了&#xff0c;感觉离真正的CTF又近了一步。 本文仅从一个萌新的角度去谈&#xff0c;如有纰漏&#xff0c;纯属蒟蒻。 目录 CC链概念 CC链学习前置知识 CC1链 Version1 Version2 Version3 CC链概念 CC链 Commons Collections apache组织发布的开源库 里面主要对…

数据库:逻辑删除|物理删除及适用性

物理删除和逻辑删除是两种不同的记录删除操作方式&#xff0c;它们各自具有一些优劣势&#xff0c;并适用于不同的场景。 物理删除 物理删除的优势&#xff1a; 节省存储空间&#xff1a;物理删除会直接从数据库中删除记录&#xff0c;可以实现即时的存储空间释放&#xff0c…

2024.1.20

今天主要是以复习为主&#xff0c;以前写过的C语言代码和高数&#xff0c;就在后天&#xff0c;紧张刺激的高数考试就来了&#xff0c;还是有点小慌…… #define _CRT_SECURE_NO_WARNINGS #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<math.h> #i…

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测

多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现SSA-CNN麻雀算法优化卷积神经网络多输入…

解密POM:提升自动化脚本稳定性和开发效率的正确姿势!

Page Objects是selenium的一种测试设计模式&#xff0c;主要将每个页面看作是一个class。class的内容主要包括属性和方法&#xff0c;属性不难理解&#xff0c;就是这个页面中的元素对象&#xff0c;比如输入用户名的输入框&#xff0c;输入登陆密码的输入框、登陆按钮、这个页…

openssl3.2/test/certs - 027 - server intermediate ca: sca-cert

文章目录 openssl3.2/test/certs - 027 - server intermediate ca: sca-cert概述笔记END openssl3.2/test/certs - 027 - server intermediate ca: sca-cert 概述 openssl3.2 - 官方demo学习 - test - certs 笔记 // \file my_openssl_linux_log_doc_027.txt // \note open…