基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的按键扫描、数码管显示按键值、显示按键LED应用

本文介绍了如何使用STC12C5A60S2 1T 8051单片机配合TM1638模块进行按键扫描、数码管显示按键值以及LED控制。内容涵盖了单片机的管脚图、I/O口工作模式,以及TM1638的特性、管脚定义、时序图和程序设计流程,同时提供了相关的硬件电路和程序代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的按键扫描、数码管显示按键值、显示按键LED应用

STC12C5A60S2系列1T 8051单片机管脚图

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

STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置

在这里插入图片描述

STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍

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

TM1638键盘数码管模块概述

TM1638是带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集
成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。主要应用于冰箱、
空调 、家庭影院等产品的高段位显示屏驱动。

TM1638键盘数码管模块特性说明

• 采用功率CMOS 工艺
• 显示模式 10 段×8 位
• 键扫描(8×3bit)
• 辉度调节电路(占空比8 级可调)
• 串行接口(CLK,STB,DIO)
• 振荡方式:RC 振荡(450KHz+5%)
• 内置上电复位电路
• 采用SOP28封装

TM1638键盘数码管模块管脚定义

在这里插入图片描述

TM1638键盘数码管模块管脚功能说明

在这里插入图片描述

TM1638键盘数码管模块显示地址寄存器

在这里插入图片描述

TM1638键盘数码管模块键扫数据寄存器

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

TM1638键盘数码管模块数据命令寄存器

在这里插入图片描述

TM1638键盘数码管模块地址命令寄存器

在这里插入图片描述

TM1638键盘数码管模块显示控制命令寄存器

在这里插入图片描述

TM1638键盘数码管模块串行数据传输格式

在这里插入图片描述

TM1638键盘数码管模块串行数据传输模式时序图

地址自动加1模式时序图

在这里插入图片描述

固定地址模式时序图

在这里插入图片描述

TM1638键盘数码管模块串行数据传输模式时序波形图

在这里插入图片描述

TM1638键盘数码管模块程序设计流程图

地址自动加1模式的程序设计流程图

在这里插入图片描述

固定地址模式的程序设计流程图

在这里插入图片描述

TM1638键盘数码管模块应用电路

TM1638键盘数码管模块驱动共阴数码管硬件电路

在这里插入图片描述

TM1638键盘数码管模块驱动共阳数码管硬件电路

在这里插入图片描述

TM1638键盘数码管模块应用原理图电路

在这里插入图片描述

TM1638键盘数码管模块的按键扫描、数码管显示按键值、显示按键LED程序

main.c

#include "reg51.h"
#include "TM1638.h"
unsigned char DisplayKeyNumberArray[8];//声明TM1638键盘数码管模块显示按键数值数组变量 即TM1638键盘数码管模块每个数码管显示按键数值的数组
//unsigned char code NixieTubeDisplayDataArray[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};//共阴数码管 显示0123456789ABCDEF以及熄灭//共阴数码管显示0123456789ABCDEF以及熄灭
//unsigned char code NixieTubeOfPointDisplayDataArray[] = {0xbf, 0x86, 0xdb, 0xcf, 0xe6, 0xed, 0xfd, 0x87, 0xff, 0xef, 0xf7, 0xfc, 0xb9, 0xde, 0xf9, 0xf1,0x00}; //共阴数码管带小数点显示0.1.2.3.4.5.6.7.8.9.A.B.C.D.E.F.以及熄灭
 void main(void)//主函数
{
   	
  unsigned char i;//声明TM1638键盘数码管模块数码管个数变量
  TM1638Init();//TM1638键盘数码管模块初始化函数
  for(i=0;i<8;i++)//循环TM1638键盘数码管模块数码管个数
  TM1638WriteData(i<<1,NixieTubeDisplayDataArray[0]);//初始化TM1638键盘数码管模块显示 即让TM1638键盘数码管模块八位数码管分别显示0
  while(1)//主循环
 {
   
   i=TM1638ReadKey();//读取TM1638键盘数码管模块按键个数值
   if(i<8)//判断TM1638键盘数码管模块按键个数值是否小于8
  {
   
    DisplayKeyNumberArray[i]++;//TM1638键盘数码管模块显示按键数值数组中按键数值自加
    while(TM1638ReadKey()==i);//等待TM1638键盘数码管模块按键释放
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值