51单片机入学第八课——8*8点阵屏

2023-11-18

LED点阵屏


LED点阵屏和数码管工作都是是靠二极管发光,但工作原理与矩阵键盘有些类似,在后面我会贴出电路图
LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏、银行窗口屏、叫号屏以及停车系统等等。

点阵屏电路图


从图中可以看到,点阵屏的电路与矩阵键盘类似,都是通过正极负极电路交叉来实现IO口应用率的提升。而想要让点阵屏形成特定的图案,这就需要用到数码管组的动态扫描技术,例如,想要将左上角的灯珠点亮,只需将 9 号口的电压拉高,将 13 号口拉低,其余ROW端口拉低,COL端口拉高,
这样只有左上角的灯所在电路形成了通路,达到了点亮他的目的。
在这里插入图片描述

74HC595芯片


74HC595芯片是一种串入并出的芯片,在电子显示屏制作当中有广泛的应用。74HC595是8位串行输入/输出或者并行输出移位寄存器。
芯片使用手册

串入并出


串入并出指的是这个芯片在接受串行信后,输出时将其转化为并行信号。例如一个字节的数据有八位,八位的编号为0—7,当串行输入时,信号依次将0—7位上的二进制值传输进去,经过芯片后输出时,0—7位上的值从八个IO口同时输出,以此达到节省单片机O口的目的。

使用方法


74HC595芯片的引脚说明和使用方法如下图所示
在这里插入图片描述
中间的电路图表示了两个595芯片的级联,可以将其简单地理解为,两个芯片中各存在一个可储存八位数据的锁存器,当级联时,这两个锁存器合并成了一个更大的,十六位的锁存器。
电路中下方的为第一级,上方的为第二级,当从IO口传输数据时,假设为 0xff 0xee,那么,0xff 将被储存在第一级,0xee 将被储存到第二级。两个芯片的输出口分别对应了点阵屏的行和列。

编程

点亮一个点


点亮一个点或者一行、一列,只需要写一个简单的程序将两个74CH595芯片中的锁存器赋值即可,代码如下,
另外,S_CLK, R_CLK 分别代表的是595芯片的11和12脚。如果对他的功能并不明白可以参考上面的图片。

#include <reg52.h>
sbit DIO = P3^4;
sbit S_CLK = P3^5;
sbit R_CLK = P3^6;
void main()
{
	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);
}

显示汉字


显示汉字与显示点并无太大的差别,只是用到了动态扫描技术,但是8*8点阵有64个点,我们不可能自己一个个去找对应的值,所以需要用到一个小应用来帮我们取模。

PCtoLCD 2002


具体名字已然不清晰,这是魔改后的软件,不知道是不是本名,进入软件后先进行如图设置,然后在左边的8*8模板上用鼠标点击,左键点亮,右键取消,之后会在下方出现对应的列的值,之后再编程逐列扫描,即可实现显示汉字
在这里插入图片描述
在这里插入图片描述

编写代码

#include <reg52.h>
#include <intrins.h> 
sbit DIO = P3^4;
sbit S_CLK = P3^5;
sbit R_CLK = P3^6;
unsigned char code tabel_1[8] = {0xE0,0xEE,0x01,0x6D,0x01,0x6D,0x01,0xEF};
unsigned char code tabel_2[8] = {0xE7,0xE7,0xF7,0xF7,0x00,0xF3,0xFB,0x81};
void delay(unsigned int z)
{
	unsigned int x,y;
	for(x = z; x > 0; x--)
		for(y = 114; y > 0 ; y--); 		
} 


void sendbyte(unsigned char dat)
{
	unsigned char i;
	S_CLK = 0;
	R_CLK = 0;
	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;
		S_CLK = 0;
	}	
}
void main()
{
	unsigned char j,row;
	unsigned int k;
	row = 0x80;
	while(1)
	{
		for(k=0;k<700;k++)
		{
		for(j=0;j<8;j++)
		{
		 	sendbyte(tabel_1[j]);
			sendbyte(row);
			row = _cror_(row,1);
			R_CLK = 1;
			R_CLK = 0;
		}
		}
		for(k=0;k<700;k++)
		{
		for(j=0;j<8;j++)
		{
		 	sendbyte(tabel_2[j]);
			sendbyte(row);
			row = _cror_(row,1);
			R_CLK = 1;
			R_CLK = 0;
		}
		}
	}

}

总结


点阵屏的学士实在是太困难了,花了一天时间,把三个小时的课程断断续续听完,实际原理并不复杂,可惜的是我没有良好的解题思路,只能跟着老是讲的走。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

51单片机入学第八课——8*8点阵屏 的相关文章

  • 【转】Adapter应用总结

    Adapter应用总结 首先来看一下Adapter的体系结构 一个Adapter的对象扮演一个桥梁的角色 这个桥梁连接着一个AdapterView和它所包含的数据 Adapter提供了一个通到数据项的途径 Adapter还负责为在数据集里的
  • Python的shelve模块小问题

    shelve模块 是个数据存储模块 可以在文件中存储数据 只需为其提供文件名 在练习时 贴的代码 pre class python import shelve m shelve open r F python Te dat 运行结果报错 T
  • 8 个很棒的 Vue 开发技巧

    1 路由参数解耦 通常在组件中使用路由参数 大多数人会做以下事情 export default methods getParamsId return this route params id 在组件中使用 route 会导致与其相应路由的高

随机推荐

  • flex 弹性盒子布局多行最后一行左对齐的两种解决办法

    首先是这样事儿的 如下图 我们最终想要的效果应该是平均分布和最后一排依次从左向右排列 那么 第一种解决方式 外层容器给弹性盒子布局 且给外层盒子一个after 伪类元素 wrap width 200px height 200px displ
  • HAL库中HAL_UART_Transmit函数 Timeout的意义--串口发送数据的计算

    HAL StatusTypeDef HAL UART Transmit UART HandleTypeDef huart uint8 t pData uint16 t Size uint32 t Timeout 这个是超时 在设置的这个时间
  • 国债期货合约代码是什么字母

    国债期货合约代码是什么字母 二债 代码TS 合约标的是面值为万元人民币 票面利率为3 的名义中短期国债 五债 代码TF 合约标的是面值为万元人民币 票面利率为3 的名义中期国债 十债 代码T 拓展资料 一 期货交易就是赚取差价 期货交易实际
  • Matlab中绘制Bode图与单位阶跃响应图

    假设传递函数方程为 分析k分别为4 1 0 5时bode图和阶跃响应的不同 gt gt w 2 pi 50 gt gt num1 0 5 w 1 0 gt gt den1 1 0 5 w w 2 gt gt num2 1 w 1 0 gt
  • python爬虫——爬取快读小说app

    1 爬取结果 csv文件 出现了有两个表头 不明所以 无关大雅 2 使用fiddler4进行抓包 通过观察url 我们不难发现其中的规律 要实现进行分类抓取 需要更改url第一个数字 如下 https sc canrike com Cate
  • 用16进制的格式查看文件

    od Ax tx1 filename
  • 上传码云_vue-egg 简单的图片上传

    源码已上传码云 小朋友 vue egg 简单的图片上传 知乎视频 www zhihu com VSCode终端不能使用命令 惟愿安好ly 博客园 www cnblogs com 上传用的是 iview design 的 Upload 组件
  • Conda常见命令总结

    以下是常见的conda命令列表 conda create 创建新的虚拟环境 安装指定的包 conda activate 激活虚拟环境 conda deactivate 停用当前虚拟环境 conda list 列出已安装的包 conda se
  • 能连蓝牙键盘吗_300多的小键盘,颜值很能打,GANSS ALT71蓝牙双模机械键盘很香...

    关于键盘配列 你是60 70 80 90 还是100 党 反正上述这些配列差不多我都集齐了 GANSS ALT71正好填补了70 的空缺 这次分享录制了视频 wifi足的可以看这个 更换封面 05 58 视频尚未发布 暂时无法播放 wifi
  • 启动hadoop时候报错:localhost: ssh: Could not resolve hostname localhost: Temporary failure in name resolut...

    这个错误是由于配置文件没有配置好 解决方案如下 1 打开profile文件 vim etc profile 2 在文件最后加入的内容应该如下 高亮的两句一般是大家缺少的 export JAVA HOME usr java jdk expor
  • EasyPoi导入Excel中的图片,空指针异常

    官方文档 1 1 介绍 Powered by MinDoc 导入easypoi依赖 版本可以选择最新的
  • element table显示滚动条

    1 tableX为要显示滚动条的类名 2 显示横向滚动条 3 tableX el table scrollable x el table body wrapper 4 padding 0 0 5px 0 5 margin 0 0 5px 0
  • 【最新】手把手教你在VMware中安装Ubuntu虚拟机

    手把手教你在Vmware中安装Ubuntu虚拟机 一 下载VMware和Ubuntu系统官方镜像 1 下载VMware 2 下载Ubuntu系统官方镜像 二 安装VMware和Ubuntu虚拟机 1 安装VMware 2 安装Ubuntu镜
  • 电源学习总结(二)——线性稳压主要特点及原理

    文章目录 主要特点 内部结构 常见的三端线性稳压 AMS1117 主要特点 线性稳压最为突出的优点主要有成本低 噪声低 体积小 由于线性稳压结构简单 生产相对容易 因此其生产成本可以很低 同时其需要的外围器件也很少 一般只需要在输入端和输出
  • 【Python】教你写一个一键上传git的脚本(打包成exe)

    本篇博客来教你用Python写一个简单的git自动上传脚本 前言 为什么需要一个这样的东西 有的时候 我的学习代码其实没啥好commit的 写一个自动上传的脚本 就可以自动执行完所有的命令 而不需要自己手动进行git三板斧操作 项目代码已开
  • unplugin-vue-components 源码原理分析

    unplugin vue components 是一款按需自动导入Vue组件的库 支持 Vue2 和 Vue3 同时支持组件和指令 使用此插件库后 不再需要手动导入组件 插件会自动识别按需导入组件以及对应样式 我们只需要像全局组件那样使用即
  • 【笔记】SemGCN

    一 论文总结 1 1 核心贡献 提出了一种改进的图卷积操作 称为语义图卷积 SemGConv 它源自cnn 其关键思想是学习图中暗示的边的信道权值 然后将它们与核矩阵结合起来 这大大提高了图卷积的能力 其次 我们引入了SemGCN 其中Se
  • Unity PlayerPrefs(数据持久化)

    PlayerPrefs Unity3D中的数据持久化是以键值的形式存储的 可以看作是一个字典 Unity3D中值是通过键名来读取的 当值不存在时 返回默认值 目前Unity3D中只支持int string float三种数据类型的读取 参考
  • android开发工具!Android性能优化常见问题,灵魂拷问

    前言 今年上半年其实就已经有了换工作的想法 奈何疫情原因和岗位缩减 加之信心不足 到六月底投递了百度的Android岗位 本以为像我这种非211 985没工作经验的渣渣只能被直接pass 结果却意外的收到了电话 真是受宠若惊 经过电面 技术
  • 51单片机入学第八课——8*8点阵屏

    文章目录 LED点阵屏 点阵屏电路图 74HC595芯片 串入并出 使用方法 编程 点亮一个点 显示汉字 PCtoLCD 2002 编写代码 总结 LED点阵屏 LED点阵屏和数码管工作都是是靠二极管发光 但工作原理与矩阵键盘有些类似 在后