码农知识堂 - 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

  • 相关阅读:
    爱尔眼科角膜塑形镜验配超百万,全力做好“角塑镜把关人”
    如何检查Apache Kafka服务运行状态
    E. Expenditure Reduction(思维+预处理+蛮力)
    Go 并发可视化解释 - sync.Mute
    Opengauss数据类型强转
    pytorch:Model模块专题
    神经网络做预测的原理,神经网络预测空气质量
    Android背景和音乐
    mp4视频格式转换器工具,万兴优转-多功能视音频处理软件
    mac git ssh
  • 原文地址:https://blog.csdn.net/lfmnlxx79691557/article/details/127596193
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号