收藏0 举报
yanwen217 发表于 2014-3-31 11:25 这个是小众市场,用的人不多。 AD8113带宽只有60MHz,楼主拿这个做什么矩阵产品呢? ...
yanwen217 发表于 2014-3-31 14:00 可以站内短消息我,或者有问题发上来一起探讨哈
#include <reg51.h> void Init8113(void); void OpenChannel(unsigned char cChannel,unsigned char cVideoNumber); void SendOrder(void); //unsigned char cHopeChannel = 0; sbit UPDATE = P1^7; sbit DATAIN = P1^6; sbit CLK = P1^5; sbit CE = P1^4; sbit OCE1 = P1^3; sbit OCE2 = P1^2; //unsigned char cOrder0[16]={0}; unsigned int i = 0; unsigned char ChannelIn; unsigned char ChannelOut; void main() { Init8113(); SendOrder(); while(1) { //for(i=0;i<100;i++); OpenChannel(ChannelOut,ChannelIn); SendOrder(); } } void Init8113() //AD8113的初始化 { //RESET = 1; //上电复位 OCE1 = 0; for(i=0;i<50;i++); OCE2 = 0; for(i=0;i<50;i++); UPDATE = 1; CLK = 1; CE = 0; //引脚硬件接地 //RESET = 0; // for(i=0;i<50;i++); //UPDATE = 0; // for(i=0;i<50;i++); //UPDATE = 1; // for(i=0;i<50;i++); //CLK = 1; cOrder0[0] = 15 + 0x10; //D4置1 cOrder0[1] = 14 + 0x10; //D4置1 cOrder0[2] = 13 + 0x10; //D4置1 cOrder0[3] = 12 + 0x10; //D4置1 cOrder0[4] = 11 + 0x10; //D4置1 cOrder0[5] = 10 + 0x10; cOrder0[6] = 9 + 0x10; cOrder0[7] = 8 + 0x10; cOrder0[8] = 7 + 0x10; cOrder0[9] = 6 + 0x10; cOrder0[10] = 5 + 0x10; cOrder0[11] = 4 + 0x10; cOrder0[12] = 3 + 0x10; cOrder0[13] = 2 + 0x10; cOrder0[14] = 1 + 0x10; cOrder0[15] = 0 + 0x10; } void OpenChannel(unsigned char cChannel,unsigned char cVideoNumber) //打开新的通道 { cOrder0[cChannel] = cVideoNumber + 0x10; //D4置1 } /* void Config() //构造要发送控制命令的数组 { unsigned char cTemp; for(cTemp=0; cTemp<16; cTemp++) { if(cOldChannel[cTemp] != cNewChannel[cTemp]) { OpenChannel(ChannelOut,ChannelIn); cOldChannel[cTemp] = cNewChannel[cTemp]; } } }*/ void SendOrder() //发送控制命令 { unsigned char cTemp; unsigned char cBit; //unsigned char cOrder0[16]={0}; unsigned i = 0; //第一组 /* for(cTemp=0; cTemp<16; cTemp++) { for(cBit=0; cBit<5; cBit++) { if(((cOrder0[cTemp]&(0x10>>cBit) )== 0)) { DATAIN = 0; } else { DATAIN = 1; } for(i = 0;i<100;i++); CLK = 1; for(i = 0;i<100;i++); CLK = 0; } } //第二组 for(cTemp=0; cTemp<16; cTemp++) { for(cBit=0; cBit<5; cBit++) { if(((cOrder0[cTemp]&(0x10>>cBit) )== 0)) { DATAIN = 0; } else { DATAIN = 1; } for(i = 0;i<100;i++); CLK = 1; for(i = 0;i<100;i++); CLK = 0; } } //第三组 for(cTemp=0; cTemp<16; cTemp++) { for(cBit=0; cBit<5; cBit++) { if(((cOrder0[cTemp]&(0x10>>cBit) )== 0)) { DATAIN = 0; } else { DATAIN = 1; } for(i = 0;i<100;i++); CLK = 1; for(i = 0;i<100;i++); CLK = 0; } } */ //第四组 /* cOrder0[0] = 1 + 0x10; //D4置1 cOrder0[1] = 2 + 0x10; //D4置1 cOrder0[2] = 3 + 0x10; //D4置1 cOrder0[3] = 4 + 0x10; //D4置1 cOrder0[4] = 5 + 0x10; //D4置1 for(cTemp=0; cTemp<16; cTemp++) { for(cBit=0; cBit<5; cBit++) { if(((cOrder0[cTemp]&(0x10>>cBit) )== 0)) { DATAIN = 0; } else { DATAIN = 1; } } CLK = 0; for(i=0;i<5;i++); CLK = 1; } UPDATE = 1; for(i=0;i<5;i++); UPDATE = 0; for(i = 0;i<100;i++); UPDATE = 1; */ for(cTemp=0; cTemp<16; cTemp++) { for(cBit=0; cBit<5; cBit++) { if((cOrder0[cTemp]&(0x10>>cBit))) { DATAIN = 1; } else { DATAIN = 0; } // for(i=0;i<5;i++); CLK = 0; // for(i=0;i<5;i++); CLK = 1; // for(i=0;i<10;i++); } } // UPDATE = 1; //for(i=0;i<50;i++); UPDATE = 0; // for(i = 0;i<5;i++); UPDATE = 1; // for(i = 0;i<5;i++); CE = 1; }
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
人才类勋章
时间类勋章
等级类勋章
发帖类勋章
3
6
0
扫码关注 21ic 官方微信
扫码关注嵌入式微处理器
扫码关注电源系统设计
扫码关注21ic项目外包
扫码浏览21ic手机版
本站介绍 | 申请友情链接 | 欢迎投稿 | 隐私声明 | 广告业务 | 网站地图 | 联系我们 | 诚聘英才
京公网安备 11010802024343号