📄 operationst2226a.c
字号:
//============================================
// 广州中大中鸣科技有限公司
// DMX驱动器源程序
// 文件名:DMX-DRIVER-2.0.c
// 功能描述:1、模式可调 2、可以设地址 3、485总线 4、DMX512协议
// 建立时间:2007年12月15日
// 修改时间:2007年12月29日
// 修改完成时间:2007年12月29日
// 编写:陈勇强
// 版本:V 2.0
//=============================================
#include<STC12C5410AD.H>
#include<intrins.h>
//I/O脚定义
sbit DCLK = P2^5; //数据时钟位
sbit DD = P2^6; //数据位
sbit M1 = P2^1; //2226A命令位1
sbit M2 = P2^3; //2226A命令位2
sbit M3 = P2^4; //2226A命令位3
//全局变量的定义
unsigned char DmxData[24]; //接收到的数据数组
unsigned char delay_time; //数据时钟延时值
//===========================================
//函数名:delay
//描述:延时
//输入:要延长的时间数
//返回:无
//===========================================
void delay(unsigned char delaytime)
{
unsigned int t;
for(t=0;t<delaytime;t++);
}
//===========================================
//函数名:setmode
//描述:对ST2226A-1I设定模式
//输入:无
//返回:无
//===========================================
void setmode(void)
{
M1=0;
M2=0;
M3=0;
DCLK=1;
delay(delay_time);
DCLK=0;
delay(delay_time);
}
//===========================================
//函数名:shiltin
//描述:通知ST2226A-1 IC开始移入数据
//输入:无
//返回:无
//===========================================
void shiltin(void)
{
M1=0;
M2=1;
M3=0;
DCLK=1;
delay(delay_time);
DCLK=0;
delay(delay_time);
}
//===========================================
//函数名:send0
//描述:对ST2226A-1 IC发送0
//输入:无
//返回:无
//===========================================
void send0(void)
{
DD=0;
_nop_();
_nop_();
DCLK=1;
delay(delay_time);
DCLK=0;
delay(delay_time);
}
//===========================================
//函数名:send1
//描述:对ST2226A-1 IC发送1
//输入:无
//返回:无
//===========================================
void send1(void)
{
DD=1;
_nop_();
_nop_();
DCLK=1;
delay(delay_time);
DCLK=0;
delay(delay_time);
DD=0;
}
//===========================================
//函数名:latch
//描述:通知ST2226A-1 IC锁存数据
//输入:无
//返回:无
//===========================================
void latch(void)
{
M1=1;
M2=1;
M3=0;
DCLK=1;
delay(delay_time);
DCLK=0;
delay(delay_time);
}
//===========================================
//函数名:stopemit
//描述:通知ST2226A-1 IC停止发光
//输入:无
//返回:无
//===========================================
void stopemit(void)
{
M1=0;
M2=1;
M3=1;
DCLK=1;
delay(delay_time);
DCLK=0;
delay(delay_time);
}
//===========================================
//函数名
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -