• 大小: 590KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: TM1640  

资源简介

针对研究数码管显示的初学者,本资源包含了TM1640-16位8段数码管的驱动程序代码,有助于初步学习如何驱动数码管显示

资源截图

代码片段和文件信息

#include “TM1640.h“

unsigned char Display_Num[5] = {0x6f 0x7f 0x27 0x7d 0x6d}; //共阴数码管显示的数字


//初始化TM1640函数
void TM1640_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA &GPIO_InitStructure);
}


/**************************************************
 函数  :命令传输开始标志
 参数  :无
 返回值: 无
 *************************************************/
void TM1640_Start(void)
{
TM1640_DIN_HIGH;
delay_us(2); //延时函数自己添加

TM1640_CLK_HIGH;
delay_us(2);

TM1640_DIN_LOW;
delay_us(2);

TM1640_CLK_LOW;
delay_us(2);
}


/**************************************************
 函数  :命令传输结束标志
 参数  :无
 返回值: 无
 *************************************************/
void TM1640_End(void)
{
TM1640_CLK_LOW;
delay_us(2);

TM1640_DIN_LOW;
delay_us(2);

TM1640_CLK_HIGH;
delay_us(2);

TM1640_DIN_HIGH;
delay_us(2);
}


/**************************************************
 函数  :写字节函数
 参数  :
dat --- 需要写入的字节

 返回值: 无
 *************************************************/
void TM1640_Write_Byte(unsigned char dat)
{
uint8_t i;

for (i = 0; i < 8; i++)
{
TM1640_CLK_LOW; //CLK的时钟信号为低电平时,DIN上的信号才能改变

if (dat & 0x01) //低位先写
{
TM1640_DIN_HIGH;
}
else
{
TM1640_DIN_LOW;
}
delay_us(2);

TM1640_CLK_HIGH;
delay_us(2);

dat >>= 1;
}
}


/************************************************
 函数名 : TM1640_Display
 参数   : 无
 返回值 :  无
 功能   : 数码管显示函数,显示存放在Display_Num中的数据
 *************************************************/
void TM1640_Display(void)
{
int i;
//设置数据
TM1640_Start();
TM1640_Write_Byte(DATA_COMMAND_Z); //这里是通过地址自动+1方法
TM1640_End();

//设置地址
TM1640_Start();
TM1640_Write_Byte(ADDR_START); //开始地址是0xco,对应DIG1然后地址会自动增加
for(i = 0;i < 5; i++) //5个的数码管
{
TM1640_Write_Byte(Display_Num[i]); //数码管显示的数据{9 8 7 6 5}
}
TM1640_End();

//控制显示
TM1640_Start();
TM1640_Write_Byte(DISP_OPEN); //控制显示
TM1640_End();
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        2421  2015-12-18 13:13  TM1640\TM1640.c
     文件         955  2015-12-18 13:12  TM1640\TM1640.h
     文件      661938  2015-12-17 15:22  TM1640\TM1640_V1.2.pdf
     目录           0  2015-12-18 13:13  TM1640\

评论

共有 条评论