首页 > 其他 > 详细

TM1620 LED 驱动控制 程序

时间:2014-03-11 19:30:09      阅读:1262      评论:0      收藏:0      [点我收藏+]
/*
TM1620是一款数码管驱动集成IC,8段6位,以下是个人编程完成的驱动,供大家参考

*/
#define ModeDisTM1620  0x02
		//设置显示模式,6位8段--上电默认是7段8段
#define AddrAutoAdd		0x40//写显示,自动累加地址  
#define AddrFixed 		0x44//写显示,固定地址  

#define Addr00H  			0xC0//地址00H
#define Addr01H  			0xC1//地址01H
#define Addr02H  			0xC2//地址02H
#define Addr03H  			0xC3//地址03H
#define Addr04H  			0xC4//地址04H
#define Addr05H  			0xC5//地址05H
#define Addr06H  			0xC6//地址06H
#define Addr07H  			0xC7//地址07H
#define Addr08H  			0xC8//地址08H
#define Addr09H  			0xC9//地址09H
#define Addr0AH  			0xCA//地址0AH
#define Addr0BH  			0xCB//地址0BH


#define OpenDisTM1620  0x88//开显示
#define CloseDisTM1620 0x80//关显示

#define Set1_16TM1620 0X00//设置脉冲宽度为 1/16 
#define Set2_16TM1620 0X01//设置脉冲宽度为 2/16 
#define Set4_16TM1620 0X02//设置脉冲宽度为 4/16 
#define Set10_16TM1620 0X03//设置脉冲宽度为 10/16 
#define Set11_16TM1620 0X04//设置脉冲宽度为 11/16 
#define Set12_16TM1620 0X05//设置脉冲宽度为 12/16 
#define Set13_16TM1620 0X06//设置脉冲宽度为 13/16 
#define Set14_16TM1620 0X07//设置脉冲宽度为 14/16 

uint8 LCDBuf[6]={0,0,0,0,0,0};
//*************************************
// 函数名称:Tm1620Dis
// 函数功能:驱动显示数据
// 入口参数:要操作的数据
// 出口参数:无
// 技术简要:20MS操作一次
//***************************************/
void Tm1620Dis(void)
{
	
		STB_TM1620_CLR;  
    Tm1620SentData(ModeDisTM1620); 
		//设置显示模式,6位8段--上电默认是7段8段
		STB_TM1620_SET; 
    Nop(2);
		
	
	 
		STB_TM1620_CLR;   
		Tm1620SentData(AddrAutoAdd);
		//写显示,自动累加地址      
		STB_TM1620_SET; 
		Nop(2);

		STB_TM1620_CLR;   
		Tm1620SentData(Addr00H);
		//指向地址0   
	
		Tm1620SentData(LCDBuf[0]);
		//向地址0 先数据LCDBuf[0]
		Tm1620SentData(0x00);
		///让地址递增1
		Tm1620SentData(LCDBuf[1]);
		//向地址2 先数据LCDBuf[1]
		Tm1620SentData(0x00);
		Tm1620SentData(LCDBuf[2]);
		//向地址4 先数据LCDBuf[2]
		Tm1620SentData(0x00);
		Tm1620SentData(LCDBuf[3]);
		//向地址6 先数据LCDBuf[3]
		Tm1620SentData(0x00);
		Tm1620SentData(LCDBuf[4]);
		//向地址8 先数据LCDBuf[4]
		Tm1620SentData(0x00);
		Tm1620SentData(LCDBuf[5]);
		//向地址A 先数据LCDBuf[5]
		
		STB_TM1620_SET; 
	  Nop(2); 
		
		
		STB_TM1620_CLR; 
    Tm1620SentData(OpenDisTM1620|Set14_16TM1620); 
		//开显示 脉宽 14/16 
			
		STB_TM1620_SET; 


}
//*************************************
// 函数名称:Tm1620SentData
// 函数功能:向TM1620发数据 8位数据-1个字节的数据
// 入口参数:要操作的数据
// 出口参数:无
// 技术简要:上升沿操作一位 从低位开始操作数据
//***************************************/
void Tm1620SentData(uint8 TM1620Data)
{
	uint8 i;  
	
  for(i=0;i<8;i++)   
  {   
    
		 CLK_TM1620_CLR; 
		 
		 if(TM1620Data & (1 << i))  
		 {DIO_TM1620_SET;}   
		 else 
		 {DIO_TM1620_CLR;}   
	
		 CLK_TM1620_SET; //上升沿操作      
  }   
 
}

TM1620 LED 驱动控制 程序,布布扣,bubuko.com

TM1620 LED 驱动控制 程序

原文:http://blog.csdn.net/chuangwu2009/article/details/20994541

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!