【用途】 LED驱动控制专用电路
【性能 参数】
采用SOP28的封装形式。TM1640是一种LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU数字接口、数据锁存器、LED高压驱动等电路。本产品性能优良,质量可靠。主要应用于电子秤及小家电产品的显示屏驱动。
TM1640引脚图:
管脚功能定义:
接口说明
微处理器的数据通过两线总线接口和 TM1640 通信,在输入数据时当 CLK 是高电平时,DIN 上的信号
必须保持不变;只有 CLK 上的时钟信号为低电平时,DIN 上的信号才能改变。数据的输入总是低位在前,
高位在后传输.数据输入的开始条件是 CLK 为高电平时,DIN 由高变低;结束条件是 CLK 为高时,DIN 由
低电平变为高电平。
指令数据传输过程如下图:
tm1640的单片机C语言代码与大家分享,大家自行移植到自己的工程中
- void delay_tm1640 (u8 _delay_time) //如果信号引脚接上电容 需增加延时
- {
- u8 i= _delay_time;
- while(i--)
- {
- nop();
- nop();
- nop();
- nop();
- nop();
- nop();
- }
- }
- /******************************************************************************/
- void init_tm1640 (void)
- {
- //加入端口处理
- CLK=0;delay_tm1640(1);
- DIO=1;delay_tm1640(1);
- CLK=1;delay_tm1640(1);
- DIO=0;delay_tm1640(1);
- }
- /******************************************************************************/
- void start_tm1640 (void)
- {
- CLK=0;delay_tm1640(1);
- DIO=1;delay_tm1640(1);
- CLK=1;delay_tm1640(1);
- DIO=0;delay_tm1640(1);
- }
- /******************************************************************************/
- void stop_tm1640 (void)
- {
- CLK=0;delay_tm1640(1);
- DIO=0;delay_tm1640(1);
- CLK=1;delay_tm1640(1);
- DIO=1;delay_tm1640(1);
- }
- /******************************************************************************/
- void send_tm1640(unsigned char _data)
- {
- unsigned char i=0;
- CLK = 0; delay_tm1640(1);
- for( i=0;i<8;i++)
- {
- if(_data&0x01) {DIO = 1;delay_tm1640(1);}
- else {DIO = 0;delay_tm1640(1);}
- CLK = 1;delay_tm1640(1);
- _data>>=1;
- CLK = 0;delay_tm1640(1);
- }
- }
- /******************************************************************************/
- void display_tm1640(void)
- {
- u8 i;
- start_tm1640();
- send_tm1640( writedatamode_z); //【地址自动增加】 【写显存】
- stop_tm1640();
- start_tm1640();
- send_tm1640(startaddress); //从c0H起
- for(i=0;i<16;i++)
- {
- send_tm1640(dis_buf[i]);
- }
- stop_tm1640();
- start_tm1640();
- send_tm1640(disconmode);//传显示控制命令
- stop_tm1640();
- }
- /******************************************************************************/
复制代码 特性:
采用功率CMOS工艺
显示模式(8段×16位),支持共阴数码管输出
辉度调节电路(占空比8级可调)
两线串行接口(CLK,DIN)
振荡方式:内置RC振荡(450KHz+5%)
内置上电复位电路
内置自动消隐电路
封装形式:SOP28
tm1640.h
- /******************************************************************************/
- #ifndef __tm1640_h__
- #define __tm1640_h__
- /******************************************************************************/
- #define seg 8
- #define grid 16
- /******************************************************************************/
- //显示模式设置命令 0x00 TM1640不支持
- /******************************************************************************/
- //#define dissetmode 0x00 //显示模式设置 4COM 13SEG
- //#define dissetmode 0x01 //显示模式设置 5COM 12SEG
- //#define dissetmode 0x02 //显示模式设置 6COM 11SEG
- //#define dissetmode 0x03 //显示模式设置 7COM 10SEG
- /******************************************************************************/
- //数据命令设置 0x40
- /******************************************************************************/
- //自动地址增加 bit2 = 0
- //固定地址 bit2 = 1
- #define writedatamode_z 0x40 //【地址自动增加】 【写显存】
- #define writedatamode_g 0x44 //【固定地址】 【写显存】
- /******************************************************************************/
- //地址命令设置 0XC0 + 16字节数据
- /******************************************************************************/
- //显示地址0-16 对应RGID1-16
- #define startaddress 0xc0 //起始地址
- /******************************************************************************/
- //显示控制 0x80
- /******************************************************************************/
- //设置脉冲宽度为1/16 bit210 = 0
- //设置脉冲宽度为2/16 bit210 = 1
- //设置脉冲宽度为4/16 bit210 = 2
- //设置脉冲宽度为10/16 bit210 = 3
- //设置脉冲宽度为11/16 bit210 = 4
- //设置脉冲宽度为12/16 bit210 = 5
- //设置脉冲宽度为13/16 bit210 = 6
- //设置脉冲宽度为14/16 bit210 = 7
- //显示关 bit3 = 0
- //显示开 bit3 = 1
- //#define disconmode 0x8b //【显示开】 【4/16 点空比】
- //#define disconmode 0x8c //【显示开】 【11/16 点空比】
- #define disconmode 0x8f //【显示开】 【14/16 点空比】
- //#define disp_off 0x80 //【显示关】 【14/16 点空比】
- //#define disp_pwm0 0x88 //【显示开】 【1/16 点空比】
- /******************************************************************************/
- #define datacount 16 //采用地址自动加一方式传输数据的个数
- /******************************************************************************/
- #define DIO P41
- #define CLK P40
- /******************************************************************************/
- void init_tm1640 (void);
- void delay_tm1640 (u8 _delay_time);
- void start_tm1640 (void);
- void stop_tm1640 (void);
- void send_tm1640 (unsigned char _data);
- void display_tm1640 (void);
- /******************************************************************************/
- #endif
- /******************************************************************************/
复制代码
中文pdf下载:
TM1640_datasheet.pdf
(279.36 KB, 下载次数: 141)
51hei找到的相关资料:
http://www.51hei.com/bbs/dpj-179655-1.html
http://www.51hei.com/bbs/dpj-202994-1.html
http://www.51hei.com/bbs/dpj-213018-1.html
|