标题:
TM1616驱动LED(数码管)STM32源程序
[打印本页]
作者:
WR111222
时间:
2019-8-9 16:19
标题:
TM1616驱动LED(数码管)STM32源程序
PIN脚已经开放出来,自己定义
我是驱动LED灯,驱动数码管自己修改tab[]数组
单片机源程序如下:
#include "tm1620.h"
#include "stdio.h"
#include "stdlib.h"
#include "delay.h"
u8 tab[]={0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,0x30};
void TM1620port_init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//?????
GPIO_InitStructure.GPIO_Pin =TM1620_CLK|TM1620_DIN|TM1620_STB;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
}
void TM1620_Write(u8 data)
{
u8 i;
for(i=0;i<8;i++)
{
TM1620_CLK_L; //2us 复位CLK口
if(data & 0x01) //将低位数据传入
TM1620_DIN_H;
else
TM1620_DIN_L;
data >>=1; //右移一位
TM1620_CLK_H; // 捕获上升沿
}
}
void Write_Cmd(u8 cmd)
{
TM1620_STB_L;
TM1620_Write(cmd);
TM1620_STB_H;
}
void Write_Data(u8 add,u8 data)
{
Write_Cmd(0x44);
TM1620_STB_L;
TM1620_Write(0xc0|add);
TM1620_Write(data);
TM1620_STB_H;
}
void TM1616_init(void)
{
u8 i;
TM1620port_init();
delay_ms(10);
Write_Cmd(0x8f); //亮度 (0x88-0x8f)8级亮度可调
Write_Cmd(0x40);
TM1620_STB_L;
TM1620_Write(0xc0);
for(i=0;i<16;i++)
TM1620_Write(0x00);
TM1620_STB_H;
}
复制代码
#include "stm32f10x.h"
#include "stdio.h"
#include "tm1620.h"
#include "delay.h"
extern u8 tab[];
int main(void)
{
u8 i;
TM1616_init();
Write_Cmd(0x88);
while(1)
{
for(i=0;i<10;i++)
{
Write_Data(0x00,tab[i]);
Write_Data(0x02,tab[i]);
delay_ms(500);
}
}
}
复制代码
所有资料51hei提供下载:
tm1616数码管程序.7z
(181.33 KB, 下载次数: 108)
2019-8-9 18:05 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1