标题:
STM32-TM1640驱动代码+原理图
[打印本页]
作者:
謬丶傲
时间:
2019-9-25 15:25
标题:
STM32-TM1640驱动代码+原理图
用STM32搭建驱动显示芯片TM1640,里面包含TM1640代码,可以调用函数直接使用。
电路原理图如下:
0.png
(33.03 KB, 下载次数: 82)
下载附件
2019-9-25 15:39 上传
单片机源程序如下:
#include "tm1640.h"
//TM1640初始化
void TM_1640_Init(void)
{
RCC->APB2ENR|=1<<3; //使能PORTB时钟
GPIOB->CRH&=0XFF00FFFF;
GPIOB->CRH|=0X00330000;//PB12 13推挽输出
GPIOB->ODR|=(0<<12)|(0<<13);
}
//TM1640延时
void TM_1640_Delay(unsigned char i)
{
unsigned char ii;
for (ii=0;ii<i;ii++)
{
__nop();
}
}
//TM1640开始
void TM_1640_Start()
{
SCK(1);
TM_1640_Delay(2);
DIO(1);
TM_1640_Delay(4);
DIO(0);
TM_1640_Delay(4);
SCK(0);
TM_1640_Delay(4);
}
//TM1640结束
void TM_1640_Stop()
{
DIO(0);
TM_1640_Delay(2);
SCK(1);
TM_1640_Delay(4);
DIO(1);
TM_1640_Delay(4);
SCK(0);
TM_1640_Delay(4);
}
//送数据 低位先传
void TM_1640_Send_data(unsigned char i)
{
unsigned char ii;
unsigned char data;
data = i;
DIO(0);
TM_1640_Delay(2);
SCK(0);
for(ii=0;ii<8;ii++)
{
SCK(0);
TM_1640_Delay(2);
if(data & 0X01)
{
DIO(1);
TM_1640_Delay(4);
}
else
{
DIO(0);
TM_1640_Delay(4);
}
SCK(1);
data=data>>1;
}
SCK(0);
TM_1640_Delay(4);
DIO(0);
}
//TM1640
void TM_1640_Send(void)
{
unsigned char i=0;
TM_1640_Start();
TM_1640_Send_data(0X40);//写数据到显示寄存器,采用地址自动加一
TM_1640_Stop();
TM_1640_Start();
TM_1640_Send_data(0XC0);//显示寄存器的00H单元开始
for(i=0;i<16;++i)
{
TM_1640_Send_data(gBLedBuf[i]);
}
TM_1640_Stop();
TM_1640_Start();
TM_1640_Send_data(0X8F);//开显示,亮度可以通过改变低三位调节
TM_1640_Stop();
}
复制代码
代码下载,请大家指导:
STM32-TM1640.zip
(7.32 KB, 下载次数: 149)
2019-9-25 15:24 上传
点击文件名下载附件
IO和代码
下载积分: 黑币 -5
作者:
51黑lwj
时间:
2021-2-26 15:30
还有一部分显示数据的数据没啊
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1