目录
前言
本片文章主要用于编写关于TM1668的学习以及相关代码,由于自己也在学习阶段,所以会不断地更新。
提示:以下是本篇文章正文内容,下面案例可供参考
一、TM16XX系列介绍和资料
TM16系列是一款LED按键集成驱动芯片,内部包含MCU,并留有数据接口,通俗来讲,我们可以利用通过与他的通讯接口通信来控制它的操作,这也其实一定程度上减少了开发难度。
名称 | 链接 |
---|---|
官方文档 | 链接 |
手机 | $12 |
导管 | $1 |
1.1、功能:
M1668 是一种带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集
成有MCU 数字接口、数据锁存器、LED 高压驱动、键盘扫描等电路。本产品性能优良,质量
可靠。主要应用于VCR、VCD、DVD 及家庭影院等产品的显示屏驱动。采用SOP24、SSOP24、
SKDIP24、SDIP24 的封装形式。
管脚:
二、代码
2.1、官方代码
代码如下(示例):
/*****************************************************************************
*版权信息:深圳天微电子有限公司
*文 件 名:TM1668-V1.0
*当前版本:V1.0
*MCU 型号:STC12C5608AD
*开发环境:Keil uVision4
*晶震频率:11.0592MHZ
*完成日期:2013-07-18
*程序功能:1.数码管驱动:驱动7段7位LED共阴数码管显示0~6;具体电路请参照TM1668规格书共阴数码管接法。
2.按键功能 : 包含按键读程序驱动函数。
*免责声明:1.此程序为TM1668驱动LED数码管演示程序,仅作参考之用。
2.如有直接使用本例程程序造成经济损失的,本公司不承担任何责任
********************************************************************************/
#include <reg52.h> //MCU头文件
#include "intrins.h" //包含nop指令头文件
#define uchar unsigned char //数据类型宏定义
#define uint unsigned int //数据类型宏定义
#define nop _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();//宏定义
/********************定义控制端口**********************/
sbit DIO=P1^0; //定义TM1668 DIO为P1^0;
sbit CLK=P1^1; //定义TM1668 CLK为P1^1;
sbit STB=P1^2; //定义TM1668 STB为P1^2;
/********************定义数据*************************/
uchar code CODE[10]={
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; //共阴数码管0~9字型码
uchar code TAB[10]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //共阴数码管无显示字型码
uchar KEY[5]={
0}; //为存储按键值定义的数组
/***************延时函数nms**************/
void delay_nms(uint n)
{
uint i;
while(n--)
{
for(i=0;i<550;i++);
}
}
/***************发送8bit数据,从低位开始**************/
void send_8bit(uchar dat) //发送8位数据,从低位开始
{
uchar i;
for(i=0;i<8;i++)
{
CLK=0;
if(dat&0x01)
DIO=1;
else
DIO=0;
_nop_();
_nop_();
_nop_();
CLK=1;
dat>>=1;
}
CLK=0;
DIO=0;
}
/******************发送控制命令***********************/
void send_command(uchar com) //发送命令字节
{
STB=1; //STB置高
nop;
STB=0; //STB置低
send_8bit(com