基于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//自定义无符号整数型为uint
 void 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 晶振为12MHz
  Timer0Init();//定时器0的16位定时模式1用12分频定时2ms初始化函数 晶振为12MHz
  DigitronBootDisplay();//数码管开机显示函数
//  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//自定义无符号整数型为uint
 void 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键盘数码管模块数据线置高电平
   }
   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/637331.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

云计算期末复习(1)

云计算基础 作业&#xff08;问答题&#xff09; &#xff08;1&#xff09;总结云计算的特点。 透明的云端计算服务 “无限”多的计算资源&#xff0c;提供强大的计算能力 按需分配&#xff0c;弹性伸缩&#xff0c;取用方便&#xff0c;成本低廉资源共享&#xff0c;降低企…

坚守互联网底层逻辑,搜狐走向长期主义的next level

2024年以来&#xff0c;随着我国经济回升向好态势进一步巩固增强&#xff0c;网络内容供给不断丰富&#xff0c;新型消费持续活跃&#xff0c;互联网板块整体估值向预期进行修正。因此&#xff0c;中概互联网指数ETF&#xff08;KWEB&#xff09;一转颓势&#xff0c;截至5月21…

Aiseesoft Video Converter Ultimate视频转换大师,免安装中文旗舰版 v10.8.32

软件介绍 视频转换大师是一款集转码、编辑以及压缩功能于一身的专业软件&#xff0c;支持处理超过1,000种视频和音频格式。该工具不仅提供基础的格式转换服务&#xff0c;还拓展至高级功能&#xff0c;包括视频效果调整、数据压缩以及ID3信息编辑等&#xff0c;同时&#xff0…

MySQL简单测试和安装

MySQL 的特点 1、MySQL 性能卓越、服务稳定&#xff0c;很少出现异常宕机。 2、MySQL开放源代码且无版权制约&#xff0c;自主性及使用成本低。 3、MySQL历史悠久(版本众多)&#xff0c;用户使用活跃&#xff0c;遇到问题可以寻求帮助。 4、MySQL体积小(相对大型关系型数据库)…

xxl-job入门

对比原有的任务调度 1. 支持可视化的界面 2. 执行任务分片 3. 支持线上集成 安装 拉取gitee项目并解压 xxl-job: 一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。…

python数据处理与分析入门-Pandas数据可视化例子

相关内容 Matplotlib可视化练习 Pandas 数据可视化总结 柱状图 reviews[points].value_counts().sort_index().plot.bar()散点图 reviews[reviews[price] < 100].sample(100).plot.scatter(xprice, ypoints)蜂窝图 reviews[reviews[price] < 100].plot.hexbin(xprice…

数据仓库ETL

小白的数据仓库学习笔记 2024/5/20 18:25 文章目录 ETLdim打开创建项目&#xff08;选这个&#xff0c;这个是做etl的&#xff09;建立元数据的连接同样的&#xff0c;建立与数据仓库的连接新建ssis包序列容器全量etl增量etl建立sql任务双击打开&#xff0c;设置连接、内容 双击…

nohup java -jar 启动java项目,设置linux服务器自启动

研究两天终于完成了,兄弟们点个赞啊 .sh文件需要改成如下图Notepad改 .sh文件内容路径啥的根据自己目录改 if ps aux | grep -v grep | grep "ruoyi-admin.jar"这里改成你自己的jar包 #!/bin/bash # 设置环境变量 export JAVA_HOME/usr/local/java/jdk-17.0.10 e…

Leecode560:和为 K 的子数组

这道题用暴力解法时间复杂度会很高&#xff0c;但是涉及到和等于多少的情况&#xff0c;一般情况下会考虑以空间换时间来存储前面获得的信息&#xff0c;然后将答案为某值的结果返回。 这里利用了累加然后通过哈希表寻找值的思想。就是先将前面的数全部加起来&#xff0c;统计…

区块链fisco联盟链搭建(二)搭建多群组联盟链

本文章只讲搭建的命令方法 以单机、四机构、三群组、八节点的星形组网拓扑为例 第一步创建并进入工作目录&#xff08;继续以fisco为例&#xff09; mkdir /fisco cd /fisco 获取搭链脚本上一篇文章区块链fisco联盟链搭建 (一)搭建单群组四节点联盟链中有 第二步生成多群组…

若依前端vue实现 输入框下拉选择加搜索用户

探索代码以及详细的注解 <template><div><el-select v-model"selectedUserId" filterable placeholder"选择用户" change"handleChange"><el-optionv-for"user in filteredUsers":key"user.userId":l…

wordpress教程视频 wordpress教程网盘 wordpress教程推荐wordpress教程网

WordPress&#xff0c;作为一款强大且灵活的开源内容管理系统&#xff0c;已成为许多网站开发者与运营者的首选。其强大的功能、丰富的插件以及易于上手的特点&#xff0c;使得无论是初学者还是专业开发者都能轻松构建出个性化的网站。然而&#xff0c;对于初学者来说&#xff…

Default Folder X for Mac v6.0.7激活版:高效、智能的文件管理新选择

在快节奏的工作与生活中&#xff0c;高效管理文件已成为每个Mac用户的迫切需求。Default Folder X for Mac正是为了满足这一需求而生&#xff0c;它以其卓越的性能和丰富的功能&#xff0c;为Mac用户带来了前所未有的文件管理体验。 Default Folder X for Mac拥有直观易用的界面…

学生用小台灯什么牌子的好?五款专业护眼灯的牌子在线解析

台灯已成为每个家庭中不可或缺的照明设备&#xff0c;它的作用不仅限于在夜晚提供充分的光亮&#xff0c;还能迅速营造出适宜的氛围&#xff0c;为用眼提供一个更佳的环境。随着生活品质的提高&#xff0c;人们对台灯的期望也逐步升级&#xff0c;智能化和护眼功能逐渐成为消费…

蔬菜水果店做配送分销小程序的作用是什么

蔬菜水果是人们生活必需&#xff0c;传统为线下市场、超市、路边小摊等场景购买&#xff0c;如今快节奏时代&#xff0c;用户需要更快完成消费、商家也需要摆脱竞争获客转化以及提升自己的运营能力。 蔬菜水果隔三岔五或每天都会购买&#xff0c;老客粘性较高&#xff0c;还需…

秋招突击——算法打卡——5/24——两数相加

问题描述 第一次实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x)…

人工智能的明天:机器学习与自动化的演进之旅

方向一&#xff1a;技术革新与行业应用 现状分析&#xff1a; 当前的IT行业正处于一个技术革新的高峰期。量子计算虽然还处于研究和开发阶段&#xff0c;但其潜力巨大&#xff0c;未来可能在药物发现、材料科学和复杂系统模拟等领域带来突破。虚拟现实&#xff08;VR&#xff…

Windws MySQL 8.4 LTS的安装(保姆级教程)

Windws MySQL 8.4 LTS的安装&#xff08;保姆级教程&#xff09; 一、Mysql版本二、Mysql下载三、Mysql安装3.1 Mysql安装3.2 Mysql配置 四、Mysql环境变量配置五、验证Mysql 一、Mysql版本 美国时间 2024 年 4 月 30 日&#xff0c;Oracle正式发布了MySQL数据库8.0.37版本的更…

DFA 算法

为什么要学习这个算法 前一段时间遇到了瓶颈&#xff0c;因为词库太多了导致会有一些速度过慢&#xff0c;而且一个正则表达式已经放不下了&#xff0c;需要进行拆分正则才可以。 正好我以前看过有关 dfa 的介绍&#xff0c;但是并没有深入的进行研究&#xff0c;所以就趁着周…

EM算法求解高斯混合模型参数公式推导

高斯混合模型介绍 高斯混合模型&#xff08;Gaussian Mixture Model&#xff0c;简称GMM&#xff09;是一种经典的概率模型&#xff0c;被广泛应用于数据挖掘、模式识别和机器学习等领域。它采用多个高斯分布组合来对数据进行建模&#xff0c;每个高斯分布对应于数据中的一个子…