基于STC12C5A60S2系列1T 8051单片机的TM1637键盘数码管模块的数码管显示与单片机连接的按键的按键值的功能

本文主要是介绍基于STC12C5A60S2系列1T 8051单片机的TM1637键盘数码管模块的数码管显示与单片机连接的按键的按键值的功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于STC12C5A60S2系列1T 8051单片机的TM1638键盘数码管模块的数码管显示与单片机连接的按键的按键值应用

  • STC12C5A60S2系列1T 8051单片机管脚图
  • STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置
  • STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍
  • TM1637键盘数码管模块概述
  • TM1637键盘数码管模块特性说明
  • TM1637键盘数码管模块管脚定义
  • TM1637键盘数码管模块管脚功能说明
  • TM1637键盘数码管模块按键读取原理
  • TM1637键盘数码管模块按键读取时序
  • TM1637键盘数码管模块显示地址寄存器
  • TM1637键盘数码管模块键扫数据寄存器
  • TM1637键盘数码管模块数据命令寄存器
  • TM1637键盘数码管模块地址命令寄存器
  • TM1637键盘数码管模块显示控制命令寄存器
  • TM1637键盘数码管模块数码管显示按键扫描周期
  • TM1637键盘数码管模块串行数据地址传输模式时序图
    • 地址自动加1模式时序图
    • 固定地址模式时序图
  • TM1637键盘数码管模块程序设计流程图
    • 地址自动加1模式的程序设计流程图
    • 固定地址模式的程序设计流程图
  • TM1637键盘数码管模块应用电路
    • TM1637键盘数码管模块驱动共阴数码管硬件电路
    • TM1637键盘数码管模块驱动共阳数码管硬件电路
  • TM1637键盘数码管模块电气参数
  • TM1637键盘数码管模块的数码管显示与单片机连接的按键的按键值编程
  • TM1638键盘数码管模块的数码管显示与单片机连接的按键的按键值实验现象

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

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

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

在这里插入图片描述

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

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

TM1637键盘数码管模块概述

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

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

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

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

在这里插入图片描述

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

在这里插入图片描述

TM1637键盘数码管模块按键读取原理

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

TM1637键盘数码管模块按键读取时序

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

TM1637键盘数码管模块数码管显示按键扫描周期

在这里插入图片描述

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

地址自动加1模式时序图

在这里插入图片描述

固定地址模式时序图

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

在这里插入图片描述

TM1637键盘数码管模块电气参数

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

TM1637键盘数码管模块的数码管显示与单片机连接的按键的按键值编程

main.c

#include <stc12c5a60s2.h>
#include "Timer0.h"
#include "Key.h"
#include "Digitron.h"
#include "TM1637OfI2C.h"
//#include"intrins.h"
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uintvoid PortModeSet()//端口模式设置函数
{P0M1 = 0x00;P0M0 = 0x00;P1M1 = 0x00;P1M0 = 0x00;P2M1 = 0x00;P2M0 = 0x00;P3M1 = 0x00;P3M0 = 0x00;P4M1 = 0x00;P4M0 = 0x00;}void main()//主函数
{PortModeSet();//端口模式设置函数
//  Uart1Init();//串行口1工作模式1的8位串行口波特率可变初始化函数 波特率为9600bps 晶振为12MHzTimer0Init();//定时器0的16位定时模式1用12分频定时2ms初始化函数 晶振为12MHzDigitronBootDisplay();//数码管开机显示函数
//  TM1637AutomaticDisplay();//TM1637键盘数码管模块自动显示函数while(1)//主循环{ KeyScanResult();//按键扫描结果函数}}

TM1637OfI2C.c

#include "TM1637OfI2C.h"
//#include "Key.h"
//#include "Digitron.h"
#include"intrins.h"
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uintvoid Nop(uint i)//微妙延时函数 
{ for(;i>0;i--) _nop_(); }void TM1637OfI2CStart()//TM1637键盘数码管模块开始函数
{TM1637CLK = 1;//TM1637键盘数码管模块时钟线置高电平TM1637DIO = 1;//TM1637键盘数码管模块数据线置低电平Nop(2);//2微妙延时TM1637DIO = 0;//TM1637键盘数码管模块数据线置低电平}void TM1637OfI2CAsk()//TM1637键盘数码管模块应答函数
{TM1637CLK = 0;//TM1637键盘数码管模块时钟线置低电平Nop(5);//5微妙延时 在第八个时钟下降沿之后 开始判断ACK信号while(TM1637DIO);//等待TM1637键盘数码管模块数据线置低电平TM1637CLK = 1;//TM1637键盘数码管模块时钟线置高电平Nop(2);//2微妙延时TM1637CLK = 0;//TM1637键盘数码管模块时钟线置低电平
}void TM1637OfI2CStop()//TM1637键盘数码管模块停止函数
{TM1637CLK = 0;//TM1637键盘数码管模块时钟线置低电平Nop(2);//2微妙延时TM1637DIO = 0;//TM1637键盘数码管模块数据线置低电平Nop(2);//2微妙延时TM1637CLK = 1;//TM1637键盘数码管模块时钟线置高电平Nop(2);//2微妙延时TM1637DIO = 1;//TM1637键盘数码管模块数据线置高电平
}void TM1637OfI2CWriteByte(uchar OneByte)//TM1637键盘数码管模块写字节函数
{uchar i;//声明字节个数变量for(i = 0;i < 8;i++)//循环字节个数{  TM1637CLK = 0;//TM1637键盘数码管模块时钟线置高电平if(OneByte & 0x01)//取出字节最低位 如何取出字节最低位?为什么是&0x01?而不是|0x01?以两个数据的字节来说明 如:0000 0010 和 0000 0011 它们的最低位分别为0和1 &0x01后是0和1 也是它们的最低位0和1 如果|0x01后都是1 就再也不是它们原来的最低位0和1 所有不能|0x01 因为取不到字节原来的最低位数据{TM1637DIO = 1;//TM1637键盘数码管模块数据线置高电平}

这篇关于基于STC12C5A60S2系列1T 8051单片机的TM1637键盘数码管模块的数码管显示与单片机连接的按键的按键值的功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/998942

相关文章

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Mysql 中的多表连接和连接类型详解

《Mysql中的多表连接和连接类型详解》这篇文章详细介绍了MySQL中的多表连接及其各种类型,包括内连接、左连接、右连接、全外连接、自连接和交叉连接,通过这些连接方式,可以将分散在不同表中的相关数据... 目录什么是多表连接?1. 内连接(INNER JOIN)2. 左连接(LEFT JOIN 或 LEFT

最好用的WPF加载动画功能

《最好用的WPF加载动画功能》当开发应用程序时,提供良好的用户体验(UX)是至关重要的,加载动画作为一种有效的沟通工具,它不仅能告知用户系统正在工作,还能够通过视觉上的吸引力来增强整体用户体验,本文给... 目录前言需求分析高级用法综合案例总结最后前言当开发应用程序时,提供良好的用户体验(UX)是至关重要

python实现自动登录12306自动抢票功能

《python实现自动登录12306自动抢票功能》随着互联网技术的发展,越来越多的人选择通过网络平台购票,特别是在中国,12306作为官方火车票预订平台,承担了巨大的访问量,对于热门线路或者节假日出行... 目录一、遇到的问题?二、改进三、进阶–展望总结一、遇到的问题?1.url-正确的表头:就是首先ur

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

电脑显示hdmi无信号怎么办? 电脑显示器无信号的终极解决指南

《电脑显示hdmi无信号怎么办?电脑显示器无信号的终极解决指南》HDMI无信号的问题却让人头疼不已,遇到这种情况该怎么办?针对这种情况,我们可以采取一系列步骤来逐一排查并解决问题,以下是详细的方法... 无论你是试图为笔记本电脑设置多个显示器还是使用外部显示器,都可能会弹出“无HDMI信号”错误。此消息可能

如何评价Ubuntu 24.04 LTS? Ubuntu 24.04 LTS新功能亮点和重要变化

《如何评价Ubuntu24.04LTS?Ubuntu24.04LTS新功能亮点和重要变化》Ubuntu24.04LTS即将发布,带来一系列提升用户体验的显著功能,本文深入探讨了该版本的亮... Ubuntu 24.04 LTS,代号 Noble NumBAT,正式发布下载!如果你在使用 Ubuntu 23.

TP-LINK/水星和hasivo交换机怎么选? 三款网管交换机系统功能对比

《TP-LINK/水星和hasivo交换机怎么选?三款网管交换机系统功能对比》今天选了三款都是”8+1″的2.5G网管交换机,分别是TP-LINK水星和hasivo交换机,该怎么选呢?这些交换机功... TP-LINK、水星和hasivo这三台交换机都是”8+1″的2.5G网管交换机,我手里的China编程has

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接