TM1637四段数码管模块驱动(.c和.h).pdfVIP

  • 9
  • 0
  • 约5.4千字
  • 约 6页
  • 2024-08-02 发布于江苏
  • 举报

1.留意事项

①写地址可以自动加一(0x40),写指定(0x44)

②0xc0-0xc3,分别是4段数码管的地址

③0x8a开显示,0x80关显示

④通信方式IIC,但写数据式低位在前,别反了。

TM1637.C

#includeTM1637.h

#includedelay.h

/*************************************************************************

********************LCDWRITE模式连续写入数据*************************

*************************************************************************/

unsignedcharconstNum[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x40};//0

123456789A-

/*********************************************************

*IIC_delay

*******************************************************/

voidIIC_Init()

{

PD_DDR|=0x0C;

PD_CR1=0xFF;

PD_CR2=0x00;

PD_ODR|=0x0C;

SCL_H;

SDA_H;

}

voidIIC_delay(void)

{

unsignedchari;

for(i=0;i20;i++)

asm(nop);

}

/*********************************************************

*启动IIC

*********************************************************/

voidstart_IIC(void)

{

SCL_H;//给芯片发送起先信号

SDA_H;

IIC_delay();

SDA_L;

IIC_delay();

SCL_L;//起先信号传送完

IIC_delay();

}

/*******************************************************

*停止IIC

*******************************************************/

voidstop_IIC(void)

{

SCL_L;

IIC_delay();

SDA_L;

IIC_delay();

SCL_H;

IIC_delay();

SDA_H;

}

voidack_IIC()

{

SCL_L;

SDA_L;

asm(nop);asm(nop);asm(nop);

//while(SDA_R);

SCL_H;

asm(nop);asm(nop);asm(nop);

SCL_L;

}

/*******************************************************

*写一个字节数据

*******************************************************/

voidWriteByte(unsignedcharWriteData)

{

unsignedchari;

SCL_L;

for(i=0;i8;i++)

{

if(WriteData0x01)

SDA_H;

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档