TM1638通讯接口与操作详解
需积分: 13 59 浏览量
更新于2024-09-05
收藏 730KB DOCX 举报
"TM1638是一个用于驱动数码管显示和矩阵键盘扫描的集成电路,其主要功能包括控制数码管的段码和位选以及读取矩阵键盘的状态。本文档是作者根据自身应用经验编写的TM1638使用说明,旨在提供更易理解的操作指南。"
TM1638与单片机的通信依赖于三个接口:DIO(数据线)、STB(片选线)和CLK(时钟线)。DIO线用于数据传输,支持读写操作;CLK线提供同步时钟信号;STB线用于选择芯片是否接收数据。在写数据的过程中,数据需在CLK的下降沿送出,并在上升沿被TM1638捕获,而STB需保持低电平。相反,读取数据时,TM1638在CLK的下降沿刷新DIO上的数据,CPU则在上升沿读取数据,同样需要STB保持低电平。
在进行读写操作时,必须遵循特定的时序要求。例如,STB由高变低之前至少维持1微秒的高电平,CLK的高低电平持续时间不得少于400纳秒,确保通信速率不超过1MHz。读取数据时,从CLK下降沿到TM1638的DIO输出稳定最多需300纳秒,而写数据时,CPU输出下降沿到上升沿之间至少需要100纳秒,并且在CLK上升沿之后,DIO上的数据延迟至少100纳秒。
TM1638的矩阵键盘部分,K1、K2、K3为列向量,KS1~KS8为行向量,当CPU发出按键扫描命令,TM1638会在KS1~KS8上逐行输出高电平,然后检测K1~K3列是否有键被按下。例如,返回值为0x31表示KS1与K3,以及KS2与K3对应的键被按下,总共3个键被按下了。通过分析这4个字节,可以确定24个键的当前状态。
TM1638可以驱动共阴极或共阳极数码管。在共阴极配置下,Seg1~Seg10连接到数码管的各段,Grid1~Grid8作为选通端;而在共阳极配置中,Grid1~Grid8连接到数码管的各段,Seg1~Seg10用作选通端。例如,要点亮Seg2和Grid3对应的LED,需要向地址04HL的寄存器写入0x02。
实际操作TM1638时,它能执行两种主要功能:一是数码管显示控制,这涉及到同时控制Seg1~Seg10和Grid1~Grid8的输出;二是矩阵键盘的扫描,通过读取返回值来确定按键的状态。TM1638是一个高效且灵活的解决方案,适用于各种需要数码管显示和键盘输入的应用场景。
243 浏览量
630 浏览量
107 浏览量
2022-04-19 上传
424 浏览量
songliye100
- 粉丝: 1
- 资源: 18
最新资源
- On11-TodasEmTech-s7-API-GET:API简介
- mai-cc60,matlab混沌加密源码,matlab源码之家
- Linux系统软键盘源码分享
- crds:用于HST和JWST的校准参考数据系统
- nsvue-colors:App feito com {N} que simplifica作为十六进制核心
- 基于Java实现的离散数学测试实验.zip
- AS_EF:EF分配材料
- TM1812_led.zip
- forever-webui, 一个简单的用于高效NodeJS流程管理的web UI.zip
- matlab代码sqrt-ecc_vs_rsa:公钥密码学的比较分析
- any:匿名对象生成器。 Tdd Toolkit的Any类的继承者
- sql-query-test-application
- OlaMundo:PrimeiroRepositorioVerionado
- TRANSMIT-BEAMFORMING,分布参数系统matlab源码,matlab源码怎么用
- 任务列表:使用Vue Native添加和删除任务列表
- RocketPay:NLW排名第4的天然药水