AD8113

[复制链接]
1625|8
 楼主| Marsc716 发表于 2014-3-31 11:16 | 显示全部楼层 |阅读模式
大家谁用过AD8113啊 请指导  QQ:736355487
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,楼主拿这个做什么矩阵产品呢? ...

恩 能否留下联系方式  在线求助您
yanwen217 发表于 2014-3-31 14:00 | 显示全部楼层
可以站内短消息我,或者有问题发上来一起探讨哈
mmuuss586 发表于 2014-3-31 14:17 | 显示全部楼层
:o
想干么
xmar 发表于 2014-3-31 14:43 | 显示全部楼层
模拟开关矩阵不算小众。通信系统用的很多。
 楼主| Marsc716 发表于 2014-3-31 21:18 | 显示全部楼层
yanwen217 发表于 2014-3-31 14:00
可以站内短消息我,或者有问题发上来一起探讨哈
  1. #include <reg51.h>
  2. void Init8113(void);
  3. void OpenChannel(unsigned char cChannel,unsigned char cVideoNumber);  
  4. void SendOrder(void);

  5. //unsigned char cHopeChannel = 0;
  6. sbit UPDATE = P1^7;
  7. sbit DATAIN = P1^6;
  8. sbit CLK = P1^5;
  9. sbit CE = P1^4;
  10. sbit OCE1 = P1^3;
  11. sbit OCE2 = P1^2;

  12. //unsigned char cOrder0[16]={0};

  13. unsigned int i = 0;

  14. unsigned char ChannelIn;
  15. unsigned char ChannelOut;

  16. void main()
  17. {  

  18. Init8113();

  19. SendOrder();
  20. while(1)
  21. {
  22.   //for(i=0;i<100;i++);
  23.   
  24.    OpenChannel(ChannelOut,ChannelIn);
  25.    SendOrder();
  26. }
  27. }

  28. void Init8113() //AD8113的初始化
  29. {
  30. //RESET = 1;                //上电复位
  31. OCE1 = 0;
  32.    for(i=0;i<50;i++);
  33. OCE2 = 0;
  34.    for(i=0;i<50;i++);


  35. UPDATE = 1;
  36. CLK = 1;
  37. CE = 0;                        //引脚硬件接地
  38. //RESET = 0;
  39. //   for(i=0;i<50;i++);
  40. //UPDATE = 0;
  41. //   for(i=0;i<50;i++);
  42. //UPDATE = 1;
  43. //   for(i=0;i<50;i++);

  44. //CLK = 1;

  45. cOrder0[0] = 15 + 0x10;          //D4置1
  46. cOrder0[1] = 14 + 0x10;          //D4置1
  47. cOrder0[2] = 13 + 0x10;          //D4置1
  48. cOrder0[3] = 12 + 0x10;          //D4置1
  49. cOrder0[4] = 11 + 0x10;          //D4置1
  50. cOrder0[5] = 10 + 0x10;
  51. cOrder0[6] = 9 + 0x10;
  52. cOrder0[7] = 8 + 0x10;
  53. cOrder0[8] = 7 + 0x10;
  54. cOrder0[9] = 6 + 0x10;
  55. cOrder0[10] = 5 + 0x10;
  56. cOrder0[11] = 4 + 0x10;
  57. cOrder0[12] = 3 + 0x10;
  58. cOrder0[13] = 2 + 0x10;
  59. cOrder0[14] = 1 + 0x10;
  60. cOrder0[15] = 0 + 0x10;

  61. }



  62. void OpenChannel(unsigned char cChannel,unsigned char cVideoNumber) //打开新的通道
  63. {
  64. cOrder0[cChannel] = cVideoNumber + 0x10;          //D4置1
  65. }

  66. /*
  67. void Config() //构造要发送控制命令的数组
  68. {
  69. unsigned char cTemp;
  70. for(cTemp=0; cTemp<16; cTemp++)
  71. {
  72.   if(cOldChannel[cTemp] != cNewChannel[cTemp])
  73.   {

  74.    OpenChannel(ChannelOut,ChannelIn);
  75.    cOldChannel[cTemp] = cNewChannel[cTemp];
  76.   }
  77. }
  78. }*/


  79. void SendOrder() //发送控制命令
  80. {
  81. unsigned char cTemp;
  82. unsigned char cBit;
  83. //unsigned char cOrder0[16]={0};
  84. unsigned i = 0;

  85. //第一组
  86. /*  

  87. for(cTemp=0; cTemp<16; cTemp++)
  88. {
  89.   for(cBit=0; cBit<5; cBit++)
  90.   {
  91.    if(((cOrder0[cTemp]&(0x10>>cBit) )== 0))
  92.    {
  93.     DATAIN = 0;
  94.    }
  95.    else
  96.    {
  97.     DATAIN = 1;
  98.    }
  99.    for(i = 0;i<100;i++);
  100.    CLK = 1;
  101.    for(i = 0;i<100;i++);
  102.    CLK = 0;
  103.   }
  104. }          
  105. //第二组
  106.   for(cTemp=0; cTemp<16; cTemp++)
  107. {
  108.   for(cBit=0; cBit<5; cBit++)
  109.   {
  110.    if(((cOrder0[cTemp]&(0x10>>cBit) )== 0))
  111.    {
  112.     DATAIN = 0;
  113.    }
  114.    else
  115.    {
  116.     DATAIN = 1;
  117.    }
  118.    for(i = 0;i<100;i++);
  119.    CLK = 1;
  120.    for(i = 0;i<100;i++);
  121.    CLK = 0;
  122.   }
  123. }
  124. //第三组
  125.   for(cTemp=0; cTemp<16; cTemp++)
  126. {
  127.   for(cBit=0; cBit<5; cBit++)
  128.   {
  129.    if(((cOrder0[cTemp]&(0x10>>cBit) )== 0))
  130.    {
  131.     DATAIN = 0;
  132.    }
  133.    else
  134.    {
  135.     DATAIN = 1;
  136.    }
  137.    for(i = 0;i<100;i++);                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
  138.    CLK = 1;
  139.    for(i = 0;i<100;i++);
  140.    CLK = 0;
  141.   }
  142. }         */         
  143. //第四组
  144. /*
  145. cOrder0[0] = 1 + 0x10;          //D4置1
  146. cOrder0[1] = 2 + 0x10;          //D4置1
  147. cOrder0[2] = 3 + 0x10;          //D4置1
  148. cOrder0[3] = 4 + 0x10;          //D4置1
  149. cOrder0[4] = 5 + 0x10;          //D4置1
  150. for(cTemp=0; cTemp<16; cTemp++)
  151. {
  152.   for(cBit=0; cBit<5; cBit++)
  153.   {
  154.    if(((cOrder0[cTemp]&(0x10>>cBit) )== 0))
  155.    {
  156.     DATAIN = 0;
  157.    }
  158.    else
  159.    {                                                                                            
  160.     DATAIN = 1;
  161.    }
  162.   }
  163.   CLK = 0;
  164.     for(i=0;i<5;i++);
  165.   CLK = 1;
  166. }
  167. UPDATE = 1;
  168. for(i=0;i<5;i++);
  169. UPDATE = 0;
  170. for(i = 0;i<100;i++);
  171. UPDATE = 1;  */

  172.    for(cTemp=0; cTemp<16; cTemp++)
  173.    {
  174.     for(cBit=0; cBit<5; cBit++)
  175.     {
  176.    
  177.      if((cOrder0[cTemp]&(0x10>>cBit)))
  178.      {
  179.       DATAIN = 1;
  180.      }
  181.      else
  182.      {                                                                                            
  183.       DATAIN = 0;
  184.      }
  185. //          for(i=0;i<5;i++);
  186.      CLK = 0;
  187.    //   for(i=0;i<5;i++);
  188.      CLK = 1;
  189.      // for(i=0;i<10;i++);
  190.     }

  191.    }
  192. // UPDATE = 1;
  193. //for(i=0;i<50;i++);
  194.    UPDATE = 0;
  195. //  for(i = 0;i<5;i++);
  196.    UPDATE = 1;
  197. //  for(i = 0;i<5;i++);
  198.    CE = 1;
  199. }
wrqy 发表于 2014-4-26 22:04 | 显示全部楼层
楼主,你这个代码写得太复杂了。我的最多只有你1/4
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

6

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部