ECBM函数库V3学习笔记⑥驱动TM1650

 

 

 tm1650.h

#ifndef	_TM1650_H
#define	_TM1650_H
#include "ecbm_core.h" 

/*--------------------------------------变量定义-----------------------------------*/
typedef struct{
	u8 model;
	u8 id;
	u8 scl;
	u8 sda;
}tm1650_def;    
#define TM1650  0x20	
extern void tm1650_init(tm1650_def * dev,u8 model,u8 scl,u8 sda);
extern void tm1650_write(u8 add,u8 DATA);	
#endif

tm1650.c

#include "tm1650.h"
u8 code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,//9
	             //  0    1    2    3    4    5   6    7    8    9 
              0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,//19
	            //  0.    1.    2.   3.  4.   5.  6.    7.   8.  9.  
              0x00,0x40};
             //消隐 负号					
void tm1650_init(tm1650_def * dev,u8 model,u8 scl,u8 sda){

  dev->scl=scl;							//将SCL引脚保存。
  dev->sda=sda;							//将SDA引脚保存。
  dev->model=model;				  //将型号信息保存。
  dev->id=soft_iic_init_linkage(scl,sda);	//初始化引脚。
}

void tm1650_write(u8 add,u8 DATA)
{
  soft_iic_start();
  soft_iic_write(add);
  soft_iic_read_ack();
  soft_iic_write( DATA);
  soft_iic_read_ack();
  soft_iic_stop();
}

 main.c

/*ECBM I2C SOFT 驱动TM1650测试例程*/
#include "ecbm_core.h"  //加载库函数的头文件。
#include "tm1650.h"
extern u8 code tab[];

void main(void){       
	  u8 i,j;
	  tm1650_def tm1650;
    system_init();  //系统初始化函数,也是必须的。
	  delay_ms(500);
	  tm1650_init(&tm1650,TM1650,D21,D20);//IO的编号,比如P1.0脚就是D10,P2.3脚就是D23
	                                      //SDA=P2^0  SCL=P2^1;
	
	  tm1650_write(0x48,0x01);
    while(1){
			for(i=0;i<16;i++)
				{
					for(j=0;j<4;j++)
						{
							tm1650_write(0x68+2*j,tab[(j+i)%16]|0x80);
						}
					 delay_ms(500);						
				}			
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

armcsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值