打印

AD8113

[复制链接]
1271|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Marsc716|  楼主 | 2014-3-31 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
yanwen217| | 2014-3-31 11:25 | 只看该作者
这个是小众市场,用的人不多。
AD8113带宽只有60MHz,楼主拿这个做什么矩阵产品呢?

使用特权

评论回复
板凳
Marsc716|  楼主 | 2014-3-31 13:18 | 只看该作者
yanwen217 发表于 2014-3-31 11:25
这个是小众市场,用的人不多。
AD8113带宽只有60MHz,楼主拿这个做什么矩阵产品呢? ...

对啊 看来您对这个很了解啊   能否留下联系方式

使用特权

评论回复
地板
Marsc716|  楼主 | 2014-3-31 13:19 | 只看该作者
yanwen217 发表于 2014-3-31 11:25
这个是小众市场,用的人不多。
AD8113带宽只有60MHz,楼主拿这个做什么矩阵产品呢? ...

恩 能否留下联系方式  在线求助您

使用特权

评论回复
5
yanwen217| | 2014-3-31 14:00 | 只看该作者
可以站内短消息我,或者有问题发上来一起探讨哈

使用特权

评论回复
6
mmuuss586| | 2014-3-31 14:17 | 只看该作者
:o
想干么

使用特权

评论回复
7
xmar| | 2014-3-31 14:43 | 只看该作者
模拟开关矩阵不算小众。通信系统用的很多。

使用特权

评论回复
8
Marsc716|  楼主 | 2014-3-31 21:18 | 只看该作者
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;
}

使用特权

评论回复
9
wrqy| | 2014-4-26 22:04 | 只看该作者
楼主,你这个代码写得太复杂了。我的最多只有你1/4

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝