登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

[求助]关于8路时钟序列的存储与示波器显示。。(附程序)

作者:深山一角 栏目:单片机
[求助]关于8路时钟序列的存储与示波器显示。。(附程序)
输入为频率100HZ8路循环移位序列,选用P89C51RD2 P1口采集并存储,输出端用TLC5620,选择两路分别接X,Y轴,我在测试8路死波形时,X,Y轴各送50个点,送一路波形大约2MS,而我打算1MS采集一次输入信号,一次采集8路,采集50次。请问,我如何才能将采集到的8路波形完整的输出。
5620送数程序 /*写5620(通道C)**********************************************/ void send_C(uchar dat3) { //(101) LOAD_5620=1; DATA_5620=1; CLK_5620=1; CLK_5620=0; DATA_5620=0; CLK_5620=1; CLK_5620=0; DATA_5620=1; CLK_5620=1; CLK_5620=0; ACC=dat3; ACC<<=1 ;DATA_5620=CY; CLK_5620=1; CLK_5620=0; ACC<<=1 ;DATA_5620=CY; CLK_5620=1; CLK_5620=0; ACC<<=1 ;DATA_5620=CY; CLK_5620=1; CLK_5620=0; ACC<<=1 ;DATA_5620=CY; CLK_5620=1; CLK_5620=0; ACC<<=1 ;DATA_5620=CY; CLK_5620=1; CLK_5620=0; ACC<<=1 ;DATA_5620=CY; CLK_5620=1; CLK_5620=0; ACC<<=1 ;DATA_5620=CY; CLK_5620=1; CLK_5620=0; ACC<<=1 ;DATA_5620=CY; CLK_5620=1; CLK_5620=0; LOAD_5620=0; } 其中一路通道 for(i=50;i>0;i--){send_C(i);SWITCH(i) //通道1 {case 1 :send_B(u1[49]);break; case 2 :send_B(u1[38]);break; case 3 :send_B(u1[47]);break; case 4 :send_B(u1[36]);break; case 5 :send_B(u1[45]);break; case 6 :send_B(u1[34]);break; case 7 :send_B(u1[43]);break; case 8 :send_B(u1[32]);break; case 9 :send_B(u1[41]);break; case 10:send_B(u1[30]);break; case 11:send_B(u1[39]);break; case 12:send_B(u1[28]);break; case 13:send_B(u1[37]);break; case 14:send_B(u1[26]);break; case 15:send_B(u1[35]);break; case 16:send_B(u1[24]);break; case 17:send_B(u1[33]);break; case 18:send_B(u1[22]);break; case 19:send_B(u1[31]);break; case 20:send_B(u1[30]);break; case 21:send_B(u1[29]);break; case 22:send_B(u1[28]);break; case 23:send_B(u1[27]);break; case 24:send_B(u1[26]);break; case 25:send_B(u1[25]);break; case 26:send_B(u1[24]);break; case 27:send_B(u1[23]);break; case 28:send_B(u1[22]);break; case 29:send_B(u1[21]);break; case 30:send_B(u1[20]);break; case 31:send_B(u1[19]);break; case 32:send_B(u1[18]);break; case 33:send_B(u1[17]);break; case 34:send_B(u1[16]);break; case 35:send_B(u1[15]);break; case 36:send_B(u1[14]);break; case 37:send_B(u1[13]);break; case 38:send_B(u1[12]);break; case 39:send_B(u1[11]);break; case 40:send_B(u1[10]);break; case 41:send_B(u1[9]);break; case 42:send_B(u1[8]);break; case 43:send_B(u1[7]);break; case 44:send_B(u1[6]);break; case 45:send_B(u1[5]);break; case 46:send_B(u1[4]);break; case 47:send_B(u1[3]);break; case 48:send_B(u1[2]);break; case 49:send_B(u1[1]);break; case 50:send_B(u1[0]);break;} 中断中读P1口 /*中断***************************************************/ void inte() interrupt 1 { dat0=P1; m++; ACC=dat0; ACC<<=1 ;u1[m]=CY; if(u1[m]==1){u1[m]=0xff;} else{u1[m]=0xf0;} ACC<<=1 ;u2[m]=CY; if(u2[m]==1){u2[m]=0xe0;} else{u2[m]=0xd0;} ACC<<=1 ;u3[m]=CY; if(u3[m]==1){u3[m]=0xc0;} else{u3[m]=0xb0;} ACC<<=1 ;u4[m]=CY; if(u4[m]==1){u4[m]=0xa0;} else{u4[m]=0x90;} ACC<<=1 ;u5[m]=CY; if(u5[m]==1){u5[m]=0x80;} else{u5[m]=0x70;} ACC<<=1 ;u6[m]=CY; if(u6[m]==1){u6[m]=0x60;} else{u6[m]=0x50;} ACC<<=1 ;u7[m]=CY; if(u7[m]==1){u7[m]=0x40;} else{u7[m]=0x30;} ACC<<=1 ;u8[m]=CY; if(u8[m]==1){u8[m]=0x20;} else{u8[m]=0x10;} if(m==49) //50次 { m=0; } TF0=0; t0_tmer(); }

2楼: >>参与讨论
深山一角
上面太乱 程序重贴一下
5620送数程序
/*写5620(通道C)**********************************************/
void send_C(uchar dat3)
{

  //(101)
  LOAD_5620=1;
  DATA_5620=1;
  CLK_5620=1;
  CLK_5620=0;
  DATA_5620=0;
  CLK_5620=1;
  CLK_5620=0;
  DATA_5620=1;
  CLK_5620=1;
  CLK_5620=0;
  
    ACC=dat3;

    ACC<<=1 ;DATA_5620=CY;  CLK_5620=1; CLK_5620=0;
    ACC<<=1 ;DATA_5620=CY;  CLK_5620=1; CLK_5620=0;
    ACC<<=1 ;DATA_5620=CY;  CLK_5620=1; CLK_5620=0;
    ACC<<=1 ;DATA_5620=CY;  CLK_5620=1; CLK_5620=0;
    ACC<<=1 ;DATA_5620=CY;  CLK_5620=1; CLK_5620=0;
    ACC<<=1 ;DATA_5620=CY;  CLK_5620=1; CLK_5620=0;
    ACC<<=1 ;DATA_5620=CY;  CLK_5620=1; CLK_5620=0;
    ACC<<=1 ;DATA_5620=CY;  CLK_5620=1; CLK_5620=0;

  LOAD_5620=0;

}

其中一路通道

for(i=50;i>0;i--){send_C(i);SWITCH(i)          //通道1
                                         {case 1 :send_B(u1[49]);break; case 2 :send_B(u1[38]);break;
                                          case 3 :send_B(u1[47]);break; case 4 :send_B(u1[36]);break;
                                          case 5 :send_B(u1[45]);break; case 6 :send_B(u1[34]);break;
                                          case 7 :send_B(u1[43]);break; case 8 :send_B(u1[32]);break;
                                          case 9 :send_B(u1[41]);break; case 10:send_B(u1[30]);break;
                                          case 11:send_B(u1[39]);break; case 12:send_B(u1[28]);break;
                                          case 13:send_B(u1[37]);break; case 14:send_B(u1[26]);break;
                                          case 15:send_B(u1[35]);break; case 16:send_B(u1[24]);break;
                                          case 17:send_B(u1[33]);break; case 18:send_B(u1[22]);break;
                                          case 19:send_B(u1[31]);break; case 20:send_B(u1[30]);break;
                                          case 21:send_B(u1[29]);break; case 22:send_B(u1[28]);break;
                                          case 23:send_B(u1[27]);break; case 24:send_B(u1[26]);break;
                                          case 25:send_B(u1[25]);break; case 26:send_B(u1[24]);break;
                                          case 27:send_B(u1[23]);break; case 28:send_B(u1[22]);break;
                                          case 29:send_B(u1[21]);break; case 30:send_B(u1[20]);break;
                                          case 31:send_B(u1[19]);break; case 32:send_B(u1[18]);break;
                                          case 33:send_B(u1[17]);break; case 34:send_B(u1[16]);break;
                                          case 35:send_B(u1[15]);break; case 36:send_B(u1[14]);break;
                                          case 37:send_B(u1[13]);break; case 38:send_B(u1[12]);break;
                                          case 39:send_B(u1[11]);break; case 40:send_B(u1[10]);break;
                                          case 41:send_B(u1[9]);break;  ca
3楼: >>参与讨论
yuntian
嘿嘿,做这样的示波器有意思
 
4楼: >>参与讨论
深山一角
是啊~~可是

可我现在卡在时间存储与显示的同步上了。。
我的想法是先存50个点,存满再显示,存50个点大约60MS,我是横着写,显示稳定的8路大约16MS,由于移位序列可变,所以我想在采集过程中示波器必须循环显示已存储的波形,直到采集完50点后更新。
有大侠能告诉我该如何实现吗?~~。。。
或者是别的存与取的方法~望不吝赐教。


5楼: >>参与讨论
wdc1229
呵呵,太有意思了,你的示波器弄出来告诉我啊。
 
6楼: >>参与讨论
深山一角
呵呵 好的 但现在还需要大侠帮忙啊~
 
7楼: >>参与讨论
wdc1229
你的用用中断来接受和输出啊,小鸟。
 
参与讨论
昵称:
讨论内容:
 
 
相关帖子
AT89C52能否用在3.3V电压下工作啊?
usb-232?
各国语言,不同大小字库
请问6N136和2701两种光藕怎么老是坏掉?
讨论:关于按键处理中的长按的问题
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号