码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 51单片机点阵


    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

    文章目录

    • 前言
    • 一、点阵是什么?
      • 1.点阵的原理
      • 2. 3*3 点阵显示原理
      • 3. 8*8点阵实物图
      • 4. 8*8点阵内部原理图
      • 5. 16*16点阵实物图,显示原理
    • 二、使用步骤
      • 1.先看原理图,确定点阵是8*8 16*16 ,共阴,共阳?
      • 2.写代码
      • 核心问题,段码怎么来?
    • 三、实物操作
      • 1.原理图
      • 2.编程思路
      • 四、 书上的代码讲解
    • 总结


    前言


    学习了数码管的静态和动态显示,利用动态数码管显示的原理,搞定点阵。


    一、点阵是什么?

    1.点阵的原理

    在这里插入图片描述

    2. 3*3 点阵显示原理

    在这里插入图片描述

    3. 8*8点阵实物图

    在这里插入图片描述

    4. 8*8点阵内部原理图

    在这里插入图片描述

    5. 16*16点阵实物图,显示原理

    在这里插入图片描述

    二、使用步骤

    1.先看原理图,确定点阵是88 1616 ,共阴,共阳?

    代码如下(示例):

    取段码:用专门的软件。

    2.写代码

    代码如下(示例):

    
    逐行:
    
    第一行
    1.先给段码
    P0=0X?
    P2=0X?
    P1=0X00;
    
    第一行
    1.先给段码
    P0=0X?
    P2=0X?
    P1=0X01;
    
    0000~1111   0-15
    
    for(i=0;i<16;i++)
    {
    	P0=0X?
    	P2=0X?
    	P1=i;
    	delay(?);
    	P0=0X00;
    	P2=0X00;
    
    }
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    核心问题,段码怎么来?

    在这里插入图片描述
    在这里插入图片描述

    三、实物操作

    1.原理图

    在这里插入图片描述

    2.编程思路

    1. 段码 P0=0X?
    2. 位选
      P35 pclk
      P36 srclk
      P34 SER

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    J24 接 GND

    P35_RCLK

    P34_data

    P36_SRCLK

    
    一次移位
    P34_data=1;
    P36_SRCLK=0;
    P36_SRCLK=1;
    
    八次移位:
    最简单的方法将上面的代码赋值八次
    P34_data=?;  // 是0 给00,是1给1
    P36_SRCLK=0;
    P36_SRCLK=1;
    ........
    
    
    P35_RCLK=0;
    P35_RCLK=1;
    
    //发送  x =0x01   第一行
    
    // 0000 0001
    // 1000 0000
    &
    //=  0000 0000
    
    //x =x<<1;
    
    // 0000 0010
    
    
    
    for(i=0;i<8;i++)
    {
    	if((x&0x80)==0)
    	{
    		P34_data=0;  // 是0 给00,是1给1
    	}
    	esle
    	{
    		P34_data=1;  // 是0 给00,是1给1
    	}
    	P36_SRCLK=0;
    	P36_SRCLK=1;
    	x=x<<1;
    
    }
    P35_RCLK=0;
    P35_RCLK=1;
    
    P36_SRCLK=0;
    P35_RCLK=0;
    
    
    //发送0x02   第二行 
    
    for(i=0;i<8;i++)
    {
    
    	P34_data=?;  // 是0 给00,是1给1
    	P36_SRCLK=0;
    	P36_SRCLK=1;
    
    }
    P35_RCLK=0;
    P35_RCLK=1;
    
    P36_SRCLK=0;
    P35_RCLK=0;
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71

    简化的方法:

    
    // 1000 0000
    // 1 000  0000 0
    
    for(i=0;i<8;i++)
    {
    	
    	X=X<<1;
    	P34_data=CY;  // 是0 给00,是1给1
    	
    	P36_SRCLK=0;
    	P36_SRCLK=1;
    
    
    }
    P35_RCLK=0;
    P35_RCLK=1;
    
    P36_SRCLK=0;
    P35_RCLK=0;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    
    P0=0X?
    HC595(0X01)
    
    
    
    
    temp=0x01;
    for(i=0;i<8;i++)
    {
    
    	P0=0X?
    	HC595(temp)  //0x01
    	temp=temp<<1;
    	delay();
    	P0=0X?//,灭
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    四、 书上的代码讲解

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    改变j显示不同的汉字,改变i显示不同行的段码;

    n的讲解
    在这里插入图片描述

    总结

    利用动态数码管显示的原理,用点阵显示字符。

  • 相关阅读:
    第2关:还原键盘输入(list)
    国产版谷歌地球?来看共生地球
    2023年了,java后端还有未来吗?
    记一次导入下载好的源码工程到本地工程异常解决方案
    前端面试题(Vue与网络相关)
    智能算法--2022年8月2日
    CSS层叠样式表
    Idea引入thymeleaf失败解决方法
    如何通过知行之桥EDI系统连接Salesforce?
    git&&gitHub
  • 原文地址:https://blog.csdn.net/ganhui13000/article/details/133858372
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号