TM1638模块驱动(stm32,可以显示led灯,数码管,按键操作)(包含全部功能)

本文详细介绍了如何使用STM32微控制器驱动TM1638模块,实现LED灯和数码管的显示控制,以及按键的交互操作。内容涵盖硬件连接、驱动程序编写以及在Proteus中的仿真验证,为STM32开发者提供了完整的解决方案。
摘要由CSDN通过智能技术生成

 

 

#include "TM1638.h"


//************************************************************
#define DISP_CMD0 0x00   //4位13段
#define DISP_CMD1 0x01   //5位12段
#define DISP_CMD2 0x02  //6位11段
#define DISP_CMD3 0x03  //7位10段 
//执行DISP_CMDx会把显示亮度关掉,但显示内容不变
//************************************************************

//************************************************************
#define cmdwr1 0x40   //地址自动加一
#define cmdwr2 0x44   //固定地址
#define cmdwr3 0x40  //mcu写给TM1638
#define cmdwr4 0x42  //mcu读按键值(TM1638)至少延时1us 
//************************************************************
#define	DISP_OFF	    0X80   //关
#define	DISP_LV0	   	0X88   //最暗0x88--0x8F
#define	DISP_COMMAND	0x80   //小数点
#define	ADDR_COMMAND	0XC0   //地址从0x00开始
//*************************************************************
//共阴数码管显示代码
u8 code_tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
                           0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};
void TM1638_Write(unsigned char DATA){//写数据函数(没有STB—ENABLE)
   
   u8 ji;
	for(ji=0;ji<8;ji++)
	{
		CLK=0;
		if(DATA&0X01) DIO=1;
		else          DIO=0;
			DATA=DATA>>1;
		CLK=1;
	}
}
/*u8 TM1638_Read(void){     //读单个数据DIO要设为输入
  
	u8 ir,Datar=0x00;
	DIN=1;
	for(ir=0;ir<8;ir++)
	{
	Datar>>=1;
		CLK=0;
		if(DIN)
			Datar|=0x80;
		CLK=1;
	}
	return Datar;
}*/

void Write_COM(unsigned char cmd){     //发送命令字
	
	STB=0;
	TM1638_Write(cmd);
	STB=1;
}
/*u8 TM1638_ReadKey(void)     //读按键值D
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦灵-影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值