单片机学习笔记之点阵(8x8)
心血来潮,想捡一下丢了很久的单片机,纪录一下单片机学习简单的点阵显示,及踩到的䟘,找到吃灰很久的普中科技开发板(非广告,为毕设学习买的)。
1. 使用工具
使用开发板:
普中科技开发板
编译软件:
keil
2.资料
点阵线路图: POW 为 74HC595 芯片 输出。

74HC595 芯片 简介
使用74HC595 扩展线路,74HC595 用作把 串行信号 转换 并行信号 。还可以 节约 单片机(MCU)的 IO 口,用 3 个 IO 口 可以控制 8 个 引脚。


74HC595 数据 转换 步骤
74HC595由 两个寄存器 组成:移位寄存器和存储/输出寄存器,
两者都有8位宽度。移位寄存器负责在时钟脉冲的上升沿接收输入数据,而存储寄存器负责将数据传送到 输出引脚( q0->q7)
输出使能输入(~ OE)) 该引脚 用于 启用或禁用( Q0-Q7)。 低电平有效。
- SRLCK (11 脚) 、RLCK(12 脚 ) 置 零(0)。
- 设置 SET(14 脚) 数据。
- 将SRLCK (11 脚) 置 1 ,上升沿 有效 , 上升沿时,数据寄存器 的 数据 移位 。(即 上升沿时, 从串行输入口 获取数据 ,需要 8 个 正脉冲 才能将 8 位数据 移入 寄存器。)
- 重复 2,3 步骤 8 次
- 将 RLCK(12 脚) 置 1, 将来自串行移位寄存器的数据通过 存储寄存器 引脚的 上升沿脉冲 放置 在 输出 寄存器中
3. 代码
#include "reg51.h"
#include <intrins.h>typedef unsigned int u16;
typedef unsigned char u8;sbit RCLK = P3^5;
sbit SRCLK = P3^6;
sbit SET = P3^4;void delay(u16 i)
{while(i--);
}/*******************************************************************************
* 函 数 名 : spaceLatticeSend
* 函数功能 : 通过74HC595 串行口将数据 并行 输出
* 注意事项:。
*******************************************************************************/
void spaceLatticeSend(u8 dat)
{u8 i;RCLK = 0;SRCLK = 0;//1001 1101 for(i =0; i < 8;i++) {SET = dat>>7;//SET = 1;SRCLK =1;dat <<=1; // dat = 0011 1010_nop_();_nop_();SRCLK = 0;}RCLK = 1;_nop_();_nop_();RCLK=0;
} /*******************************************************************************
* 函 数 名 : displayOneDot
* 函数功能 : 8*8 点阵 显示 控制一个点
*******************************************************************************/
void displayOneDot()
{ //u8 a = 0xff;//0x80//u8 b=0x7f;//0x7fu8 a = 0x04;//0x80u8 b=0xEf;//0x7fspaceLatticeSend(a);P0=b;while(1);
}/*******************************************************************************
* 函 数 名 : displayNumber
* 函数功能 : 8*8 点阵 显示 数字或汉字
*******************************************************************************/
void displayNumber()
{ //u8 a[] = {0xff, 0x81,0x81,0x81,0x81,0x81,0x81,0xff};//u8 b[] = {0x7f, 0xbf,0xcf,0xef,0xf7,0xfb,0xfd,0xfe};//u8 a[]={0x00,0x00,0x3e,0x41,0x41,0x41,0x3e,0x00};//u8 b[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//1//u8 a[] = {0x00,0x00,0x60,0xFF,0xFF,0x00,0x00,0x00};//u8 b[] = {0x7f, 0xff,0xdf,0xef,0xf7,0xff,0xff,0xff};//2//u8 a[] = {0x00,0x63,0x85,0x89,0x91,0x61,0x03,0x00};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xff};//3//u8 a[] = {0x00,0x42,0x81,0x89,0x89,0x95,0xE3,0x00};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xff};//4//u8 a[] = {0x00,0x0C,0x14,0x25,0x45,0xFF,0x05,0x05};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//5//u8 a[] = {0x00,0xE6,0xA1,0xA1,0xA1,0x92,0x0C,0x00};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xff};//5//u8 a[] = {0x00,0xE6,0xA1,0xA1,0xA1,0x92,0x0C,0x00};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xff};//6//u8 a[] = {0x00,0x3C,0x4A,0x91,0x91,0x52,0x0C,0x00};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xff};//7//u8 a[] = {0x00,0xC0,0x80,0x80,0x8F,0x90,0xA0,0xC0};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//8//u8 a[] = {0x00,0x62,0x95,0x89,0x89,0x95,0x62,0x00};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//9//u8 a[] = {0x32,0x49,0x89,0x89,0x89,0x52,0x3C,0x00};//u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//中u8 a[] = {0x3C,0x28,0x28,0xFF,0x28,0x28,0x3C,0x00};u8 b[] = {0x7f, 0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xff};while(1){ u8 i;P0 = 0xFF;for(i=0; i < 8; i++){ P0 = b[i];spaceLatticeSend(a[i]);delay(100);spaceLatticeSend(0x00);}}
}void main()
{//displayOneDot();displayNumber();
}
4. 效果

相关文章:
单片机学习笔记之点阵(8x8)
心血来潮,想捡一下丢了很久的单片机,纪录一下单片机学习简单的点阵显示,及踩到的䟘,找到吃灰很久的普中科技开发板(非广告,为毕设学习买的)。 1. 使用工具 使用开发板: 普中科技开发…...
我一个普通程序员,光靠GitHub打赏就年入70万,
一个国外程序员名叫 Caleb Porzio在网上公开了自己用GitHub打赏年入70万的消息和具体做法。 Caleb Porzio 发推庆祝自己靠 GitHub 打赏(GitHub Sponsors)赚到了 10 万美元。 GitHub Sponsors是 GitHub 2019 年 5 月份推出的一个功能,允许开发…...
剖析Spring MVC如何将请求映射到Controller
Spring MVC是一种基于Java的Web框架,可以帮助开发者快速地构建Web应用程序。在Spring MVC中,请求将会被映射到对应的Controller中进行处理。本文将会介绍Spring MVC如何将请求映射到Controller的过程。 DispatcherServlet DispatcherServlet是Spring M…...
设计模式之美-工厂模式
分类:简单工厂模式(静态工厂模式),工厂方法模式,抽象工厂模式。 这种设计模式也是 Java 开发中最常见的一种模式,它的主要意图是定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类&a…...
A Star算法最通俗易懂的一个版本
01-概述虽然掌握了 A* 算法的人认为它容易,但是对于初学者来说, A* 算法还是很复杂的。02-搜索区域(The Search Area)我们假设某人要从 A 点移动到 B 点,但是这两点之间被一堵墙隔开。如图 1 ,绿色是 A ,红色是 B &…...
JavaWeb--ListenerAjaxaxiosjson
Listener&Ajax&axios1 Listener1.1 概述1.2 分类1.3 代码演示2 Ajax2.1 概述2.1.1 作用2.1.2 同步和异步2.2 快速入门2.2.1 服务端实现2.2.2 客户端实现2.2.3 测试2.3 案例2.3.1 分析2.3.2 后端实现2.3.3 前端实现2.4 测试3 axios3.1 基本使用3.2 快速入门3.2.1 后端实…...
NoneBot2,基于Python的聊天机器人
NoneBot2,基于Python的聊天机器人第一步,配置python第二步,配置[go-cqhttp](https://github.com/Mrs4s/go-cqhttp)第三步,配置[NoneBot](https://61d3d9dbcadf413fd3238e89--nonebot2.netlify.app/)NoneBot2 是一个现代、跨平台、…...
java反射机制及其详解
反射反射机制反射调用优化有时候我们做项目的时候不免需要用到大量配置文件,就拿框架举例,通过这些外部文件配置,在不修改的源码的情况下,来控制文件,就要用到我们的反射来解决 假设有一个Cat对象 public class Cat …...
Leetcode—环形链表
前言:给定一个链表,判断是否为循环链表并找环形链表的入口点 首先我们需要知道什么是双向循环链表,具体如下图所示。 对于链表,我们如何去判断链表是循环链表呢?又寻找入环点呢?我们可以利用快慢指针的方法…...
蓝牙耳机哪个戴的最舒服?久戴不累的蓝牙耳机推荐
在喧嚣的时代中,快节奏和疲惫充斥着我们的生活,于是耳机成为了人们必不可少的东西,无论是闲暇时亦或是正处在工作时,都会将它戴上,出门在外戴耳机变成了常态,所以小编就整理了一期久戴不累的蓝牙耳机。 No…...
25k的Java开发常问的AQS问题有哪些?
前言:面试高频的AQS问题大多。本文将以实战面试角度出发,将面试官喜欢问的一些问题罗列出来。 文章目录 AQSAQS定义底层实现独占锁举例底层实现独占锁超时获取锁共享锁举例共享锁实现原理作者辟谣AQS AQS定义 AQS的全称是AbstractQueuedSynchronizer,也就是抽象队列同步器…...
Grafana 监控面板绘制流程
本篇作者:IoTDB 社区 -- 张洪胤本文以 IoTDB V1.0.1 版本为例本文档介绍了 Apache IoTDB 监控指标通过 Prometheus 的方式进行采集,并且使用 Grafana 的方式进行可视化。1监控指标的 Prometheus 格式说明对于 Metric Name 为 name, Tags 为 K1V1, ..., K…...
一句话设计模式5:责任链模式
责任链模式:步步为营。 文章目录 责任链模式:步步为营。前言一、责任链模式的作用二、如何实现责任链1 既然是责任链,那么就需要一个链路的承载体 ChainBody2 责任链中每一步都是一个抽象类,因为承载体仅仅是构造链路顺序,里面不放置任何具体业务逻辑:步骤抽象类3 具体步骤执行…...
保姆级使用PyTorch训练与评估自己的EVA网络教程
文章目录前言0. 环境搭建&快速开始1. 数据集制作1.1 标签文件制作1.2 数据集划分1.3 数据集信息文件制作2. 修改参数文件3. 训练4. 评估5. 其他教程前言 项目地址:https://github.com/Fafa-DL/Awesome-Backbones 操作教程:https://www.bilibili.co…...
Java--JMH--性能测试--测试软件运行效率/时间--StopWatch
写在前面: 很多时候想要测试代码运行时间,或者比较2个运行的效率。 最简单的方法就是Sytem.currentTimeMillis记录2开始和结束时间来算 但是Java 代码越执行越快,放在后面的方法会有优势,这个原因受留个眼,以后研究。大概有受类加…...
JavaScript Array(数组)对象
数组对象的作用是:使用单独的变量名来存储一系列的值。参数参数 size 是期望的数组元素个数。返回的数组,length 字段将被设为 size 的值。参数 element ...; elementn 是参数列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元…...
干货 | 电容在电路35个基本常识
第1个电压源正负端接了一个电容,与电路并联,用于整流电路时,具有很好的滤波作用,当电压交变时,由于电容的充电作用,两端的电压不能突变,就保证了电压的平稳。当用于电池电源时,具有交…...
日读300篇文献的技巧
感觉自己看文章很慢,有时候也抓不住重点。 如果是英文文献的话,可能还要有点难度,毕竟英语渣渣还是需要有中文-》英文的转换过程。 最近在搞毕业论文的时候,发现了一个非常好玩的东西,大大提升了我看文章搞科研&#x…...
C++核心编程
一、内存分区模型概述:C程序在执行时,将内存划分为4个区域程序运行前:代码区:存放函数体的二进制代码,由操作系统管理①共享。共享的目的是对于频繁被执行的程序,在内存中只需有一份代码即可②只读。使其只…...
SpringMVC程序开发
目录 SpringMVC 1、MVC定义 2、MVC和SpringMVC之间的关系 学SpringMVC 1、Spring MVC的创建和连接 浏览器获取前端接口和后端程序连接功能实现 2、获取参数 2.1、传递单个参数/多个参数 2.2、传递对象 2.3、传递表单参数 2.4、后端参数重命名 2.5、RequestBody接收J…...
Android tinyalsa深度解析之pcm_params_get_period_size_max调用流程与实战(一百七十二)
简介: CSDN博客专家、《Android系统多媒体进阶实战》作者 博主新书推荐:《Android系统多媒体进阶实战》🚀 Android Audio工程师专栏地址: Audio工程师进阶系列【原创干货持续更新中……】🚀 Android多媒体专栏地址&a…...
Umi-OCR:重新定义本地化文字识别的工作流范式
Umi-OCR:重新定义本地化文字识别的工作流范式 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国语言库。 …...
实战指南:在快马平台用trae构建电商购物车状态管理系统
今天想和大家分享一个实战项目:用trae在电商场景下构建购物车状态管理系统。这个方案特别适合需要清晰数据流的中小型项目,比如电商平台、管理后台等。下面我会详细拆解整个实现过程,希望能给有类似需求的同学一些参考。 项目结构设计 首先…...
终极无损视频剪辑神器:LosslessCut完整指南与5大实用技巧
终极无损视频剪辑神器:LosslessCut完整指南与5大实用技巧 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 你是否曾因视频剪辑导致画质下降而烦恼ÿ…...
2026学生免费用AI编程神器全攻略——白嫖不要白不要,大学生快来
好的,上一章刚教你用GitHub武装自己,筑起技术护城河,但光会搬砖(敲命令)还不够,你得学会“开高达”——用AI编程助手把效率拉满。 2026年了,如果还纯靠手打for循环和查API文档,那你…...
5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题
5个关键步骤:使用SMUDebugTool解决AMD Ryzen硬件调试难题 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…...
保姆级教程:用PtitPrince的RainCloud函数,5步搞定分组数据可视化
5步精通RainCloud Plot:用PtitPrince实现专业级分组数据可视化 第一次看到同事用雨云图展示A/B测试结果时,我被这种"既见森林又见树木"的呈现方式震撼了——左侧的密度曲线如山脉般起伏,中间的箱线图标出关键分位点,右侧…...
永磁同步电机这玩意儿现在工业上用得是真多,今天咱们来点硬核的,手搓个IPMSM的数学模型。先别急着关页面,代码实现和调试坑点都给你备好了
IPMSM数学模型,模拟电机对不同输入的响应,包含速度环和电流环,输出电流转速和转矩。先甩几个核心方程镇楼。d-q轴电压方程: def voltage_equation(t, state, Vd, Vq):id, iq, w_r, theta stateVd ... # 这里放你的控制算法输出V…...
手把手教你用Python实现熵权PCA:从数据清洗到可视化,一个案例全讲透
用Python实战熵权PCA:电商商品竞争力分析全流程解析 在电商平台的海量商品中,如何快速识别出真正具有竞争力的产品?传统的人工筛选方式不仅效率低下,还容易受到主观偏见的影响。本文将带你用Python实现一个完整的熵权PCA分析流程&…...
仿真:H无穷鲁棒控制与for loop shaping在永磁同步电机伺服位置控制中的应用 - ...
仿真-H无穷鲁棒控制_for loop shaping-永磁同步电机伺服位置控制仿真:验证设计流程,送鲁棒控制设计资料包永磁同步电机的伺服位置控制总让人又爱又恨。这玩意儿响应快、精度高,但参数敏感得像刚恋爱的小姑娘。传统PID搞不定的时候,试试H无穷鲁…...
