您的位置:首页 > 其它

EXC2618N LED矩阵驱动程序

2015-06-02 16:14 141 查看
/******************** (C) COPYRIGHT 2015 ********************

* 文件名 :XYF_EXC2618.c

* 描述 :EXC2618N LED驱动函数实现

* 备注 :

* 作者 :

* 时间 :

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

//#include "STC15F2K60S2.H"

#include "STC15Fxxxx.H"

#include <intrins.h>

#include "XYF_EXC2618N.h"

#include "XYF_GPIO.h"

#include "delays.h"

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

*功能 :产品1 EXC2618N 初始化,LED全灭

*输入参数 :无

*输出参数 :无

*返回值:无

*备注 :?

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

void EXC2618N_PDT1_init(void)

{

EXC2618N_PDT1_WRITE_CMD(DATA_MOD2_SET_CMD); //固定地址模式

EXC2618N_PDT1_WRITE(ADDR3_SET_CMD,DIS_DATA4); //命令+数据

EXC2618N_PDT1_WRITE(ADDR1_SET_CMD,DIS_DATA4); //命令+数据

EXC2618N_PDT1_WRITE(ADDR5_SET_CMD,DIS_DATA4); //命令+数据

EXC2618N_PDT1_WRITE(ADDR7_SET_CMD,DIS_DATA4); //命令+数据

EXC2618N_PDT1_WRITE_CMD(DIS_OFF_CMD); //显示关闭

}

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

*函数名:EXC2618N_PDT2_init

*功能 :产品2 EXC2618N 初始化

*输入参数 :无

*输出参数 :无

*返回值:无

*备注 :

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

void EXC2618N_PDT2_init(void)

{

EXC2618N_PDT2_WRITE_CMD(DATA_MOD2_SET_CMD); //固定地址模式

EXC2618N_PDT2_WRITE(ADDR3_SET_CMD,DIS_DATA4); //命令+数据

EXC2618N_PDT2_WRITE(ADDR1_SET_CMD,DIS_DATA4); //命令+数据

EXC2618N_PDT2_WRITE(ADDR5_SET_CMD,DIS_DATA4); //命令+数据

EXC2618N_PDT2_WRITE(ADDR7_SET_CMD,DIS_DATA4); //命令+数据

EXC2618N_PDT2_WRITE_CMD(DIS_OFF_CMD); //显示关闭

}

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

*函数名:EXC2618N_PDT1_WRITE_CMD

*功能 :产品1 向EXC2618N写命令

*输入参数 :cmd1=命令

*输出参数 :无

*返回值:无

*备注 :?

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

void EXC2618N_PDT1_WRITE_CMD(u8 cmd1)

{

u8 i;

STB1=0; //STB在下降沿初始化串行接口,随后等待接收命令

PD1_Delay1ms();

for(i=0;i<8;i++)

{

CLK1=0;

DAT1=(bit)(cmd1&0x01); //从低位开始,在时钟上升沿输入串行数据

PD1_Delay1us(); //低电平必须大于400ns

CLK1=1;

PD1_Delay1us(); //高电平必须大于100ns

cmd1>>=1;

}

STB1=1;

}

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

*函数名:EXC2618N_PDT1_WRITE

*功能 :产品1 向EXC2618N写数据或命令 ,串行数据传输格式

*输入参数 :cmd1=命令 ,dat1=数据

*输出参数 :无

*返回值:无

*备注 :?串行数据传输模式:固定地址模式

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

void EXC2618N_PDT1_WRITE(u8 cmd1,u8 dat1)

{

u8 i;

STB1=0; //STB在下降沿初始化串行接口,随后等待接收命令

PD1_Delay1ms();

for(i=0;i<8;i++)

{

CLK1=0;

DAT1=(bit)(cmd1&0x01); //从低位开始,在时钟上升沿输入串行数据

PD1_Delay1us(); //低电平必须大于400ns

CLK1=1;

PD1_Delay1us(); //高电平必须大于100ns

cmd1>>=1;

}

PD1_Delay1ms();

for(i=0;i<8;i++)

{

CLK1=0;

DAT1=(bit)(dat1&0x01); //从低位开始,在时钟上升沿输入串行数据

PD1_Delay1us(); //低电平必须大于400ns

CLK1=1;

PD1_Delay1us(); //高电平必须大于100ns

dat1>>=1;

}

STB1=1;

}

///////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////

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

*函数名:EXC2618N_PDT2_WRITE_CMD

*功能 :产品2 向EXC2618N写命令

*输入参数 :cmd2=命令

*输出参数 :无

*返回值:无

*备注 :?

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

void EXC2618N_PDT2_WRITE_CMD(u8 cmd2)

{

u8 i;

STB2=0; //STB在下降沿初始化串行接口,随后等待接收命令

PD2_Delay1ms();

for(i=0;i<8;i++)

{

CLK2=0;

DAT2=(bit)(cmd2&0x01); //从低位开始,在时钟上升沿输入串行数据

PD2_Delay1us(); //低电平必须大于400ns

CLK2=1;

PD1_Delay1us(); //数据锁存高电平必须大于100ns

cmd2>>=1;

}

STB2=1;

}

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

*函数名:EXC2618N_PDT2_WRITE

*功能 :产品2 向EXC2618N写数据或命令 ,串行数据传输格式

*输入参数 :cmd2=命令 ,dat2=数据

*输出参数 :无

*返回值:无

*备注 :?串行数据传输模式:固定地址模式

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

void EXC2618N_PDT2_WRITE(u8 cmd2,u8 dat2)

{

u8 i;

STB2=0; //STB在下降沿初始化串行接口,随后等待接收命令

PD2_Delay1ms();

for(i=0;i<8;i++)

{

CLK2=0;

DAT2=(bit)(cmd2&0x01); //从低位开始,在时钟上升沿输入串行数据

PD2_Delay1us(); //低电平必须大于400ns

CLK2=1;

PD1_Delay1us(); //数据锁存高电平必须大于100ns

cmd2>>=1;

}

PD2_Delay1ms();

for(i=0;i<8;i++)

{

CLK2=0;

DAT2=(bit)(dat2&0x01); //从低位开始,在时钟上升沿输入串行数据

PD2_Delay1us(); //低电平必须大于400ns

CLK2=1;

PD1_Delay1us(); //数据锁存高电平必须大于100ns

dat2>>=1;

}

STB2=1;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: