码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • K_A02_005 基于单片机驱动数码管 LED 按键模块(TM1638) 流水灯 0-7 按键值显示


    目录

    一、资源说明

    二、基本参数

            1、参数

            2、引脚说明

    三、通信协议说明

            1、写数据

                    时序:

                    程序:

            2、读数据

                    时序:

                    程序:

    四、部分代码说明

            1、接线说明

                    1.1、STC89C52RC+按键数码管LED模块

                    1.2、STM32F103C8T6+按键数码管LED模块

    五、基础知识学习与相关资料下载

    六、视频效果展示与程序资料获取

    七、项目所有材料清单

    八、注意事项

    九、接线表格


    一、资源说明

    单片机型号

    测试条件

    模块名称

    代码功能

    STC89C52RC

    1.晶振11.0592M

    按键数码管LED模块(TM1638 驱动)

    1.  TM1638测试流水灯
    2. TM1638数码管显示0-7
    3. TM1638按键采集数码管LED显示

    STM32F103C8T6

    1. 晶振8M
    2. 系统时钟72M

    按键数码管LED模块(TM1638 驱动)

    二、基本参数

            1、参数

    0609e5561a3a462d9a9a08928f9a1c0a.png

            2、引脚说明

    4位数码管模块(74HC595驱动)

    引脚说明

    VCC

    VCC电源引脚,接5V

    GND

    GND引脚接电源地,如果外接电源,一般必须共地

    STB

    片选。STB 为低后的第一个字节作为指令,当处 理指令时,当前其它处理被终止。当STB 为高时, CLK 被忽略

    CLK

    上升沿输入/输出串行数据

    DIO

    数据输入/输出

    三、通信协议说明

            1、写数据

                    时序:

    d7fac5b8181649748e2b3f61a4b66c59.png

                    程序:

    1. //写一个字节
    2. void TM1638_Write(uint8_t DATA) //写数据函数
    3. {
    4. uint8_t i;
    5. for(i=0;i<8;i++)
    6. {
    7. CLK=0;
    8. if(DATA&0X01)
    9. DIO=1;
    10. else
    11. DIO=0;
    12. DATA>>=1;
    13. CLK=1;
    14. }
    15. }

            2、读数据

                    时序:

    329720c91b37429fa616f66d1822289f.png

                    程序:

    1. //读一个字节
    2. uint8_t TM1638_Read(void) //读数据函数
    3. {
    4. uint8_t i;
    5. uint8_t temp=0;
    6. DIO=1; //设置为输入
    7. for(i=0;i<8;i++)
    8. {
    9. temp>>=1;
    10. CLK=0;
    11. if(DIO)
    12. temp|=0x80;
    13. CLK=1;
    14. }
    15. return temp;
    16. }

    四、部分代码说明

            1、接线说明

                    需要自定义引脚可在此处更改,STM32要自定义引脚的话也要注意引脚时钟使能的更改

                    1.1、STC89C52RC+按键数码管LED模块

    1. //TM1638模块引脚定义
    2. sbit DIO=P1^0;
    3. sbit CLK=P1^1;
    4. sbit STB=P1^2;

                    1.2、STM32F103C8T6+按键数码管LED模块

    1. /* 定义LED连接的GPIO端口, 用户只需要修改下面的代码即可改变控制的LED引脚 */
    2. #define DIO_GPIO_PORT GPIOA /* GPIO端口 */
    3. #define DIO_GPIO_CLK RCC_APB2Periph_GPIOA /* GPIO端口时钟 */
    4. #define DIO_GPIO_PIN GPIO_Pin_1
    5. #define CLK_GPIO_PORT GPIOA /* GPIO端口 */
    6. #define CLK_GPIO_CLK RCC_APB2Periph_GPIOA /* GPIO端口时钟 */
    7. #define CLK_GPIO_PIN GPIO_Pin_2
    8. #define STB_GPIO_PORT GPIOA /* GPIO端口 */
    9. #define STB_GPIO_CLK RCC_APB2Periph_GPIOA /* GPIO端口时钟 */
    10. #define STB_GPIO_PIN GPIO_Pin_3
    11. #define DIO_H GPIO_SetBits(DIO_GPIO_PORT, DIO_GPIO_PIN)
    12. #define DIO_L GPIO_ResetBits(DIO_GPIO_PORT, DIO_GPIO_PIN)
    13. #define CLK_H GPIO_SetBits(CLK_GPIO_PORT, CLK_GPIO_PIN)
    14. #define CLK_L GPIO_ResetBits(CLK_GPIO_PORT, CLK_GPIO_PIN)
    15. #define STB_H GPIO_SetBits(STB_GPIO_PORT, STB_GPIO_PIN)
    16. #define STB_L GPIO_ResetBits(STB_GPIO_PORT, STB_GPIO_PIN)
    17. #define R_DIO GPIO_ReadInputDataBit(DIO_GPIO_PORT, DIO_GPIO_PIN)

    五、基础知识学习与相关资料下载

    1. STC89C52RC程序下载 直戳跳转
    2. STM32F103C8T6程序下载
      1. 串口下载                直戳跳转 
      2. ST-LINK下载             直戳跳转
      3. J-LINK下载              直戳跳转
      4. DAP-LINK下载            直戳跳转

    六、视频效果展示与程序资料获取

            视频连接    直戳跳转

            资料获取            ( 滑到最后添加群号看公告免费获取)

    七、项目所有材料清单

    STC89C52RC驱动方案

    图片

    STM32F103C8T6驱动方案

    图片

    备注

    K_A02_005

    STC89C52RC系统板X1

    a3cdc13a5258471393b469036ab935e8.jpeg

    STM32F103C8T6系统板X1

    e222ef152aec4a959980a7348c938ad8.jpeg

    1、STM32系统板两根Micro USB线一根用于J-LINK下载器,另一根用于给系统板供电

    2、杜邦线建议不用太长的

    按键数码管LED模块(TM1638 驱动)X1

    974003b00e6f4697ba37ea989c128571.jpeg

    按键数码管LED模块(TM1638 驱动)X1

    f0dbb5ed89a34b5795898aa2cd092bd7.jpeg

    Micro USB线X1

    57875597ceca45dea99b6914d3f99973.jpeg

    Micro USB线X2

    5be4964dccf341a986830057aa363dc3.jpeg

    母母杜邦线X5根

    4258930555774c809f2c90e2eb1fbb0b.jpeg

    母母杜邦线X5根

    c818329ce23d45728de74199ef8d7e8e.jpeg

    J-LINK下载器

    d25240e5d0cd4e3fb1c24e19dfa6a3e6.jpeg

    八、注意事项

    1. VCC GND请勿接反,接反易烧
    2. 显示异常时,排除接线接触不良
    3. 下载后显示异常时候可以重新上电复位下

    九、接线表格

    单片机型号

    模块

    对应引脚(上:模块引脚 下:单片机引脚)

    STM32F103

    C8T6

    4位数码管模块(74HC595驱动)

    GND

    VCC

    STB

    CLK

    DIO

    GND

    5V

    PA3

    PA2

    PA1

    STC89C52RC

    4位数码管模块(74HC595驱动)

    GND

    VCC

    STB

    CLK

    DIO

    GND

    5V

    P1.2

    P1.1

    P1.0

  • 相关阅读:
    npm,yarn如何查看源和换源,删除node_modules
    超越GPT-4V,苹果多模态大模型上新,神经形态计算加速MLLM(二)
    在winform中如何实现双向数据绑定?
    资源 | Python可视化系列文章资源(源码+数据)
    FPGA UDP RGMII 千兆以太网(2)IDDR
    拿下!这些证书可以帮你职场晋升!(PMP/CSPM/NPDP)
    Quartz.Net+Microsoft.Extensions.Hosting创建服务
    【数理方程】分离变量法
    [Python]Django 数据库数据的增删改查
    LTGNet-超分辨率OCTA图像分割
  • 原文地址:https://blog.csdn.net/lfmnlxx79691557/article/details/127596193
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号