基于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

相关文章

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Redis消息队列实现异步秒杀功能

《Redis消息队列实现异步秒杀功能》在高并发场景下,为了提高秒杀业务的性能,可将部分工作交给Redis处理,并通过异步方式执行,Redis提供了多种数据结构来实现消息队列,总结三种,本文详细介绍Re... 目录1 Redis消息队列1.1 List 结构1.2 Pub/Sub 模式1.3 Stream 结

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分