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

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

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

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键盘数码管模块地址命令寄存器

在这里插入图片描述

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

在这里插入图片描述

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

数据接收(写数据)

在这里插入图片描述

数据读取(读数据)

在这里插入图片描述

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

地址自动加1模式时序图

在这里插入图片描述

固定地址模式时序图

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

TM1638键盘数码管模块的数码管显示与TM1638芯片连接的按键的按键值编程

main.c

#include <stc12c5a60s2.h>
#include "Timer0.h"
#include "Key.h"
#include "Digitron.h"
#include "TM1638OfI2C.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();//数码管开机显示函数TM1638OfI2CInit();//TM1638键盘数码管模块初始化函数 
//  TM1637AutomaticDisplay();//TM1637键盘数码管模块自动显示函数while(1)//主循环{ KeyScanResult();//按键扫描结果函数}}

TM1638OfI2C.c

#include "TM1638OfI2C.h"
//#include "Key.h"
//#include "Digitron.h"
#include"intrins.h"
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uintvoid TM1638OfI2CWriteByte(uchar Data)//TM1638键盘数码管模块写字节函数
{uchar i;//声明字节位个数变量for (i = 0; i < 8; i++)//循环字节位个数{TM1638CLK = 0;//拉低TM1638键盘数码管模块时钟线端口 让TM1638键盘数码管模块进行输出字节某位操作TM1638DIO =  Data & 0x01;//取出该数据的字节最低位 如何取出该数据的字节最低位?为什么是&0x01?而不是|0x01?以两个数据的字节来说明 如:0000 0010 和 0000 0011 它们的最低位分别为0和1 &0x01后是0和1 也是它们的最低位0和1 如果|0x01后都是1 就再也不是它们原来的最低位0和1 Data >>= 1;//取出该数据的字节最低位后 剩余字节往右移一位 形成新的数据的字节TM1638CLK = 1;//拉高TM1638键盘数码管模块时钟线端口 结束TM1638键盘数码管模块输出字节某位操作}}void TM1638OfI2CWriteCommand(uchar Command)//TM1638键盘数码管模块写命令函数
{TM1638STB = 0;//拉低TM1638键盘数码管模块片选线端口 让TM1638键盘数码管模块进行写操作TM1638OfI2CWriteByte(Command);//通过TM1638键盘数码管模块写字节函数来写命令TM1638STB = 1;//拉高TM1638键盘数码管模块片选线端口 结束TM1638键盘数码管模块写操作}void TM1638OfI2CWriteData(uchar Address,uint Data)//TM1638键盘数码管模块写数据函数 在指定的显示地址写入数据
{TM1638STB = 0;//拉低TM1638键盘数码管模块片选线端口 让TM1638键盘数码管模块进行写操作TM1638OfI2CWriteByte(0x00 | Address);//通过TM1638键盘数码管模块写字节函数来写显示地址TM1638OfI2CWriteByte(Data);//通过TM1638键盘数码管模块写字节函数来写数据TM1638STB = 1;//拉高TM1638键盘数码管模块片选线端口 结束TM1638键盘数码管模块写操作}uchar TM1638OfI2CReadByte()//TM1638键盘数码管模块读字节函数
{uchar i;//声明字节位个数变量uchar ByteData = 0;//声明字节数据变量TM1638DIO = 1;//拉高TM1638键盘数码管模块数据线端口 读入数据for(i = 0; i < 8; i++)//循环字节位个数{ByteData >>= 1;//字节数据往右移一位 形成新的数据的字节 如:1010 1010 右移一位 变为0101 0101TM1638CLK = 0;//拉低TM1638键盘数码管模块时钟线端口 让TM1638键盘数码管模块进行读取字节某位操作if(TM1638DIO)//判断TM1638键盘数码管模块数据线端口是否为高电平ByteData |= 0x80;//置该数据的字节最高位为1 其余位不变 如何置该数据的字节最高位为1?为什么是|=0x80?而不是&=0x80?以两个数据的字节来说明 如:0100 0000 和 1000 0000 它们的最高位分别为0和1 |=0x80后都是1 也是它们的最高位都置为1 如果&=0x80后最高位分别是0和1 就再也不是它们原来的最高位都置为1 TM1638CLK = 1;//拉高TM1638键盘数码管模块时钟线端口 结束TM1638键盘数码管模块读取字节某位操作}return ByteData;//返回字节数据}uchar TM1638OfI2CReadKey

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

缓冲字符流

BufferedReader/BufferedWriter增加了缓存机制&#xff0c;大大提高了读写文本文件的效率。 字符输入缓冲流 BufferedReader是针对字符输入流的缓冲流对象&#xff0c;提供了更方便的按行读取的方法&#xff1a;readLine();在使用字符流读取文本文件时&#xff0c;我们可以使…

word多级列表与上一级不匹配

问题&#xff1a;三级列表显示1.1.1&#xff0c;而实际情况应该是2.1.1&#xff0c;如何设置&#xff1f; 方法&#xff1a;鼠标在word原文停留在二级列表上&#xff0c;然后进入多级列表中设置三级列表

ChatGPT在工作中的使用案例

知识点提示 开发过程中&#xff0c;遇到某个知识点&#xff0c;忘记或者不清楚怎么使用了&#xff0c;通过ChatGPT快速生成使用提示和案例。代码库“字典” 比如C 11 判断数组所有元素为false 在 C11 中&#xff0c;可以使用标准库中的 all_of 算法来判断数组中的所有元素是…

【Python-Numpy】降低Numpy版本

1.卸载当前Numpy pip uninstall numpy2.查看当前Numpy可用的版本号 pip index versions numpy3.安装特定版本号的Numpy pip install -U numpy自己想要的版本号

根据TVbox修改而来的盒子双播软件-电视盒子内置源版-点播+直播双播盒子软件-供大家学习研究参考

是一款根据TVbox修改而来的盒子双播软件,经过无数次的更改适配了手机、平板、智能电视和TV盒子,并且支持安卓4.x,所以对很多旧的智能电视和盒子支持是相当友好的,也越来越好用,且对软件部分做出修改优化。内置超多优质资源,汇集了众多影视媒体资源,画质也非常的感人,并…

p2p文件传输小工具

使用webRTC的相关技术栈可以很轻松的开发一个p2p文件传输工具&#xff0c;这里主要讲下使用datachannel开发的一个文件传输工具client程序的使用 客户端A&#xff1a;需要可以访问公网&#xff0c;运行client的主机 客户端B&#xff1a;可以访问公网&#xff0c;可以和客户端…

云数融合与大数据技术在日常生活中的创新应用探索

前言 移动云模型服务产品在中国移动旗下主要包括云计算、大数据、人工智能等服务&#xff0c;它依托广泛的算力资源(4N31X)、丰富的网络接入资源和高品质云专网&#xff0c;实现算网端资源一站式开通&#xff0c;构建企业级一体化解决方案。 文章目录 前言云计算的日常应用智…

C++入门3——类与对象2(类的6个默认成员函数)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 构造函数的概念 2.2 构造函数的特性 3. 析构函数 3.1 析构函数的概念 3.2 析构函数的特性 4.拷贝构造函数 4.1 拷贝构造函数的概念 4.2 拷贝构造函数的特性 5.赋值运算符重载函数 5.1运算符重载函数 5.2 赋值运算符重…

面试题:CSS 怎样实现动画?

面试题&#xff1a;CSS 怎样实现动画&#xff1f; &#xff08;有哪些&#xff09;CSS 主要通过**过渡&#xff08;transitions&#xff09;和关键帧&#xff08;keyframes&#xff09;**实现动画。 &#xff08;过渡是什么&#xff09;过渡指的是元素**从一种状态&#xff08…

ROS2 自定义话题接口

ROS2 自定义话题接口 ros2 pkg create village_interface在src/village_interface 下构建msg文件夹 src/village_interface/msg 下新建一个Novel.msg Novel.msg 开头第一个字母一定要大写 写入 Novel.msg #原始数据类型 string content# 调用sensor_msgs/Image sensor_msgs/I…

每日一题——Python实现PAT乙级1020 月饼(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 专业点评&#xff1a; 时间复杂度分析&#xff1a; 空间复杂度分析&#…

【一步一步了解Java系列】:子类继承以及代码块的初始化

看到这句话的时候证明&#xff1a;此刻你我都在努力 加油陌生人 个人主页&#xff1a;Gu Gu Study专栏&#xff1a;一步一步了解Java 喜欢的一句话&#xff1a; 常常会回顾努力的自己&#xff0c;所以要为自己的努力留下足迹 喜欢的话可以点个赞谢谢了。 作者&#xff1a;小闭 …

分享一个在linux中运行通义千问的方法

分享一个在linux中和通义千问交互的方法 效果展示: 整体步骤 分享一个在linux中和通义千问交互的方法效果展示:一、在阿里云appflow控制台创建连接流1、通过以下地址,在灵积平台创建个API-KEY,用于通义千问的连接凭证2、点击连接流-创建连接流3、第一步选择webhook4.第二步…

nginx和proxy_protocol协议

目录 1. 引言2. HTTP server的配置3. Stream server的配置3.1 作为proxy_protocol的前端服务器3.2 作为proxy_protocol的后端服务器1. 引言 proxy_protocol 是haproxy开发的一种用于在代理服务器和后端服务器之间传递客户端连接信息的协议。使用 proxy_protocol 的主要优势是能…

Linux上安装和使用Docker容器的指南

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法&#xff0c;大数据&#xff0c;深度学习 &#x1f492; 公众号…

【ai】livekit服务本地开发模式1:example app信令交互详细流程

文档要安装git lfs 下载当前最新版本1.6.1windows版本:启动dev模式 服务器启动 (.venv) PS D:\XTRANS\pythonProject\LIVEKIT> cd .

python列表基本运算

列表基本运算 成员运算符 in 老师你在上课喊人回答问题的时候&#xff0c;就犯了难。想点的人名字已经脱口而出了&#xff0c;但发现这位同学没来。 可不&#xff0c;今天的课就来了 8 个人&#xff1a; students [林黛玉, 薛宝钗, 贾元春, 妙玉, 贾惜春, 王熙凤, 秦可卿,…

云WAF的负载均衡和流量分发功能

云WAF&#xff08;Web Application Firewall&#xff09;是一种专门设计来保护Web应用免受网络攻击的网络安全设备。它通过监控、过滤和阻止HTTP流量中的恶意攻击&#xff0c;确保Web应用的安全和可用性。云WAF的负载均衡和流量分发功能是其重要的特性之一&#xff0c;这些功能…

VS2022+QT5.15.2+MySQL8.4大集合

网上的教程都建议用Qt5&#xff0c;不要用6&#xff0c;不死心的尝试了整整一天失败了&#xff0c;乖乖用回5&#xff0c;qt5需要编译一下生成mysql的动态和静态库 1. mysql8.4安装 下载社区开发版&#xff0c;注意要64位 https://dev.mysql.com/downloads/mysql/ 配置一下数…

安卓SystemServer进程详解

目录 一、概述二、源码分析2.1 SystemServer fork流程分析2.1.1 [ZygoteInit.java] main()2.1.2 [ZygoteInit.java] forkSystemServer()2.1.3 [Zygote.java] forkSystemServer()2.1.4 [com_android_internal_os_Zygote.cpp]2.1.5 [com_android_internal_os_Zygote.cpp] ForkCom…