打印

1024*768 的DVD video **

[复制链接]
125767|450
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangkj|  楼主 | 2009-2-7 09:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*
 普通IO 8bit 总线,80接口的 TFT真彩LCD模块 480×272×16 bit彩色
 接口定义:
接口引脚  说 明
VCC  模块供电电源输入(5V)
D0~D7  8位数据总线
A0   控制寄存器/数据寄存器选择(高电平选择控制寄存器)
WE   写信号(低电平有效)
RD   读信号(低电平有效)
GND  接地
CS:  无

A0 RD WR IO0..7  
1  0  1          read_status  读状态,IO7..IO5 垂直扫描,行扫描,扫描指针保持
1  1  0          cmd          命令写入,3个字节。进入显存数据回读状态(不支持)、扫描指针起始位置选择、扫描指针地址
0  0  1          read_data    (目前不支持,根据需要增加)读取当前光标处的显存数据,光标位置自动+1
0  1  0          write_data   显示数据写入当前光标处,光标位置自动+1
8M byte  全访问,扫描频率66hz,写入速度320ns,16bit。如果cpu足够快,支持到15fps的动态显示是没有问题的。

扫描指针起始位置选择,命令字的bit6=1,选择光标处为显示起始地址,此时不要写数据。
重新设置显存指针,byte1的bit6=0,扫描从显存0地址开始,和光标无关,数据写入。
扫描指针(光标,显存写入地址,bit6=1时为设置扫描起始地址) 3字节命令  byte1:0,scan_start_pos,Addr[21:16] byte2:addr[15:8] byte3:addr[7:0]
此功能,可实现多幅图片预存,或者图片的平滑滚动。如果用标准的8M显存,可预存32张真彩图片,用32M显存,支持128张真彩图片。
如果是连续动作图片,可以实现快速运动显示。

写数据:先写入低8bit,后写入高8bit, 色彩:RGB 565格式。光标自动+1,支持连续写屏。
目前采用的是epm240,单元占用90%。

如果采用epm570可以实现的功能:
1.数据回读,速度和写入相同。
2.单独扫描起始指针,随时更新数据,不受扫描起始位置的影响。
3.显示特效,1)多层画面,2)遮挡效果,3)显示窗口
*/



很多人说,我做不成,难度太大;很多人说,做出来也卖不出去。
我做出来了,至于是否商业成功,请各位弟兄们帮忙,这个俺
确实差点,但这玩意应该有不少应用前景。
不求发大财,只求能凑合个温饱,不在给公司打工,nnd,这个倒霉国企,就是倒霉国企,真tmd的烦。
这个产品也是一个过度,我还有另外一个难度更大前景搞好的项目。
我不需要的时候不会停产,会吧所有的源码给那些曾经买过,也需要的厂家。让他们自己生产。这些厂家会
乐得找不着北,还有这么便宜的事情。
当然,如果谁想买断,那更好了。

有源码,这东西的生产很容易。就是两层pcb,一片sdram一片cpld。
关键是sdram和显示时序的控制,得精确的安排时间。
现在能做到320ns写入16bit数据,大约25屏/s的刷新速度,不需要
busy信号!远远大于很多单片机甚至arm9的io速度。

相关帖子

沙发
wangkj|  楼主 | 2009-2-7 09:44 | 只看该作者

编程技巧

目前,只有两个功能:
1)设置光标
2)显存数据写入 RGB 565 16bit , 两个字节,低8bit数据先写入。

8 bit 数据线,3 bit控制线。无需busy信号。速率不能大于320ns/16bit 6.25M byte写入速率。

使用特权

评论回复
板凳
zyok| | 2009-2-7 09:46 | 只看该作者

变为RMB到你包里了才算成功...

使用特权

评论回复
地板
wangkj|  楼主 | 2009-2-7 09:56 | 只看该作者

prog2

0x00,0x00,0x20,0x90,0x00,0x00,0x02,0x12,0x00,0x21,0x20,0x00,0x00,0x02,0x10,0x80,
0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x00,0x02,0x22,0x00,0x00,0x44,0x40,0x00,
0x08,0x21,0x05,0xF6,0x61,0x00,0x1F,0x1F,0x06,0x1F,0x1F,0x1F,0x1F,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x90,
0x00,0x00,0x02,0x22,0x00,0x21,0x10,0x10,0x00,0x04,0x11,0x00,0x00,0x00,0x00,0x00,
0x80,0x00,0x10,0x02,0x00,0x01,0x11,0x00,0x04,0x48,0x80,0x00,0x08,0x19,0x06,0x38,
};
/// List of button pins that must be configured for use by the application.
static const Pin pPins[] = {PINS_DBGU};
static const Pin pinPB1 = PIN_PUSHBUTTON_1;
static const Pin pinPB2 = PIN_PUSHBUTTON_2;

static const Pin pLCDDataPins[]={ LCDD0,LCDD1,LCDD2,LCDD3,LCDD4,LCDD5,LCDD6,LCDD7};
static const Pin pinLCDCS=LCDCS;
static const Pin pinLCDWR = LCDWR;
static const Pin pinLCDA0=LCDA0;


/// Indicates the current state (on or off) for each LED.
static unsigned char pLedStates[2] = {1, 1};

/// Global timestamp in milliseconds since start of application.
volatile unsigned int timestamp = 0;

//------------------------------------------------------------------------------
//         Local functions
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
/// Handler for PIT interrupt. Increments the timestamp counter.
//------------------------------------------------------------------------------
static void ISR_Pit(void)
{
    unsigned int status;

    // Read the PIT status register
    status = PIT_GetStatus() & AT91C_PITC_PITS;
    if (status != 0) {

        // Read the PIVR to acknowledge interrupt and get number of ticks
        timestamp += (PIT_GetPIVR() >> 20);
    }
}

//------------------------------------------------------------------------------
/// Configure the periodic interval timer to generate an interrupt every
/// millisecond.
//------------------------------------------------------------------------------
static void ConfigurePit(void)
{
    // Initialize the PIT to the desired frequency
    PIT_Init(PIT_PERIOD, BOARD_MCK / 1000000);

    // Configure interrupt on PIT
    AIC_DisableIT(AT91C_ID_SYS);
    AIC_ConfigureIT(AT91C_ID_SYS, AT91C_AIC_PRIOR_LOWEST, ISR_Pit);
    AIC_EnableIT(AT91C_ID_SYS);
    PIT_EnableIT();

    // Enable the pit
    PIT_Enable();
}

//------------------------------------------------------------------------------
/// Interrupt handler for pushbutton #1. Starts or stops LED#1.
//------------------------------------------------------------------------------
static void ISR_Bp1(void)
{
    static unsigned int lastPress = 0;

    // Check if the button has been pressed
    if (!PIO_Get(&pinPB1)) {

        // Simple debounce method: limit push frequency to 1/DEBOUNCE_TIME
        // (i.e. at least DEBOUNCE_TIME ms between each push)
        if ((timestamp - lastPress) > DEBOUNCE_TIME) {

            lastPress = timestamp;

            // Toggle LED state
            pLedStates[0] = !pLedStates[0];
            if (!pLedStates[0]) {

                LED_Clear(0);
            }
        }
    }
}

//------------------------------------------------------------------------------
/// Interrupt handler for pushbutton #2. Starts or stops LED#2 and TC0.
//------------------------------------------------------------------------------
static void ISR_Bp2(void)
{
    static unsigned int lastPress = 0;

    // Check if the button has been pressed
    if (!PIO_Get(&pinPB2)) {

        // Simple debounce method: limit push frequency to 1/DEBOUNCE_TIME
        // (i.e. at least DEBOUNCE_TIME ms between each push)
        if ((timestamp - lastPress) > DEBOUNCE_TIME) {

            lastPress = timestamp;

            // Disable LED#2 and TC0 if there were enabled
            if (pLedStates[1]) {

                pLedStates[1] = 0;
                LED_Clear(1);
                AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKDIS;
            }
            // Enable LED#2 and TC0 if there were disabled
            else {

                pLedStates[1] = 1;
                LED_Set(1);
                AT91C_BASE_TC0->TC_CCR = AT91C_TC_CLKEN | AT91C_TC_SWTRG;
            }
        }
    }
}

//------------------------------------------------------------------------------
/// Configure the pushbuttons to generate interrupts.
//------------------------------------------------------------------------------
static void ConfigureButtons(void)
{
#if defined(at91sam7lek) || defined(at91cap9dk)
    const Pin pinCol0 = PIN_KEYBOARD_COL0;
    PIO_Configure(&pinCol0, 1);
#endif

    // Configure pios
    PIO_Configure(&pinPB1, 1);
    PIO_Configure(&pinPB2, 1);

    // Initialize interrupts
    PIO_InitializeInterrupts(AT91C_AIC_PRIOR_LOWEST);
    PIO_ConfigureIt(&pinPB1, (void (*)(const Pin *)) ISR_Bp1);
    PIO_ConfigureIt(&pinPB2, (void (*)(const Pin *)) ISR_Bp2);
    PIO_EnableIt(&pinPB1);
    PIO_EnableIt(&pinPB2);
}

//------------------------------------------------------------------------------
/// Configure LEDs #1 and #2 (cleared by default).
//------------------------------------------------------------------------------
static void ConfigureLeds(void)
{
    LED_Configure(0);
    LED_Configure(1);
}

//------------------------------------------------------------------------------
/// Interrupt handler for TC0 interrupt. Toggles the state of LED #2
//------------------------------------------------------------------------------
static void ISR_Tc0(void)
{
    // Clear status bit to acknowledge interrupt
    AT91C_BASE_TC0->TC_SR;

    // Toggle LED state
    LED_Toggle(1);
    printf("2 ");
}

//------------------------------------------------------------------------------
/// Configure Timer Counter 0 to generate an interrupt every 250ms.
//------------------------------------------------------------------------------
static void ConfigureTc(void)
{
    unsigned int div;
    unsigned int tcclks;

    // Enable peripheral clock
    AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_TC0;

    // Configure TC for a 4Hz frequency and trigger on RC compare
    TC_FindMckDivisor(4, BOARD_MCK, &div, &tcclks);
    TC_Configure(AT91C_BASE_TC0, tcclks | AT91C_TC_CPCTRG);
    AT91C_BASE_TC0->TC_RC = (BOARD_MCK / div) / 4; // timerFreq / desiredFreq

    // Configure and enable interrupt on RC compare
    AIC_ConfigureIT(AT91C_ID_TC0, AT91C_AIC_PRIOR_LOWEST, ISR_Tc0);
    AT91C_BASE_TC0->TC_IER = AT91C_TC_CPCS;
    AIC_EnableIT(AT91C_ID_TC0);

    // Start the counter if LED is enabled.
    if (pLedStates[1]) {

        TC_Start(AT91C_BASE_TC0);
    }
}

//------------------------------------------------------------------------------
/// Waits for the given number of milliseconds (using the timestamp generated
/// by the PIT).
/// param delay  Delay to wait for, in milliseconds.
//------------------------------------------------------------------------------
static void Wait(unsigned long delay)
{
    volatile unsigned int start = timestamp;
    unsigned int elapsed;
    do {
        elapsed = timestamp;
        elapsed -= start;
    }
    while (elapsed < delay);
}

//------------------------------------------------------------------------------
//         Exported functions
//------------------------------------------------------------------------------

/// Write Data to LCD Controller
/// Sequence: LCDWR low --> LCDCS low --> Write Data
//                  -->LCDWR hign -->LCDCS high
// if CMD is 1,then as a Command
void WritetoLCD(unsigned char ucData,unsigned char CMD)
{
        unsigned int i,j;

        PIO_Clear(&pinLCDCS);
                PIO_Clear(&pinLCDWR);
                        
                //for(j=0;j<10;j++); //delay
        if (CMD == 0) //is date
            PIO_Clear(&pinLCDA0);
        else  //cmd==1 is address set command
            PIO_Set(&pinLCDA0);
        

                //for(j=0;j<10;j++); //delay
        for ( i = 0 ; i < 8; i++)
        {
            if (((ucData>>i) & 0x1)==1)
                PIO_Set(&pLCDDataPins);
            else
                PIO_Clear( &pLCDDataPins);
        }
        //for(j=0;j<10;j++); //delay

                //for(j=0;j<2;j++); //delay        
        PIO_Set(&pinLCDWR);
        //for(j=0;j<1;j++); //delay
        PIO_Set(&pinLCDCS);
                //for(j=0;j<1;j++); //delay
        
}



//------------------------------------------------------------------------------
/// Main function
//------------------------------------------------------------------------------
int main()
{
    int i,j,k;
    
    PIO_Configure(pPins, PIO_LISTSIZE(pPins));
    PIO_Configure(pLCDDataPins, PIO_LISTSIZE(pLCDDataPins));
    PIO_Configure(&pinLCDCS, 1);
    PIO_Configure(&pinLCDWR, 1);
    PIO_Configure(&pinLCDA0, 1);

    
    
    DBGU_Configure(DBGU_STANDARD, 115200, BOARD_MCK);
    printf("-- Getting Started Project 1.4 -- ");
    printf("Board : %s, Chip ID : 0x%08X ", BOARD_NAME, AT91C_BASE_DBGU->DBGU_CIDR);

    // Configuration
    ConfigurePit();
    ConfigureTc();
    //ConfigureButtons();
    //ConfigureLeds();


       //for(k=0;k<10000;k++;)
       for (j=0;j<5;j++) Wait(500);
       while (1)
       {      
    for(k=0;k<5;k++)
       { 
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0    
           for(i=0;i<272;i++)
          for (j=0;j<480;j++)
              {WritetoLCD( (((i*j*k)%65535)&0xff),0); WritetoLCD(((((i*j*k)%65535)>>8)&0xff),0); }     
       for (j=0;j<15;j++) Wait(500); 
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0    
           for(i=0;i<272;i++)
          for (j=0;j<480;j++)
              {if (i<272/3) {WritetoLCD(0xfc,0),WritetoLCD(i&0xff,0);}
               else if (i<272/3*2) {WritetoLCD(0x03,0),WritetoLCD(j&0xff,0);} 
               else if (i<272/3*3) {WritetoLCD(j&0xff,0),WritetoLCD(j&0xff,0) ;}
              } 
                  
    }    
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0    
       for(i=0;i<272;i++)
         for (j=0;j<480/8;j++)
            {for(k=0;k<8;k++) if (((pic[480/8*i+j]>>(7-k)) & 0x1)==1) {WritetoLCD(0xff,0);WritetoLCD(0xff,0);}    
                                 else                                   {WritetoLCD(0x00,0);WritetoLCD(0x00,0);}}
    for (j=0;j<15;j++) Wait(500);         
/*       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0    
       for(i=0;i<272;i++)
         for (j=0;j<480;j++)
           //   {WritetoLCD((char)j,0); } 
              {if (j==240) WritetoLCD(0xff,0);else WritetoLCD(0x00,0);}
        for (j=0;j<15;j++) Wait(500);  
*/       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0    
       for(i=0;i<272;i++)
         for (j=0;j<480;j++)
              {
                   if (j==0 || i==0 || j==240 ||j==210 ||j==211 || i==j || i==j+5 )
                    { WritetoLCD(0xf0|j,0);WritetoLCD(0x0f|j,0);}
                   else 
                       { WritetoLCD(0x00,0);WritetoLCD(0x00,0);}
              }
    for (j=0;j<5;j++) Wait(500);  
/*       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0    
       for(i=0;i<272;i++)
         for (j=0;j<480;j++)
              {
                   if(i==j) 
                     WritetoLCD(0xff,0);
                   else
                     WritetoLCD(0x00,0);
              }
*/       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       //for (j=0;j<5;j++) Wait(500);  
       //for(i=0;i<272;i++)
       //  for (j=0;j<480;j++)
        //      {WritetoLCD(0x00,0); }
        //for (j=0;j<5;j++) Wait(500);          
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0       
       //for(i=0;i<272;i++)
         for (j=0;j<480;j++)
              {
                     WritetoLCD(j,0);WritetoLCD(j,0);
              }
        for (j=0;j<5;j++) Wait(500); 
       // }
       // ...................................................................
                     
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
                     
       for(i=0;i<272;i++)
         for (j=0;j<480;j++)
         {
             //if (((i>20) && (i<240) && (j>20) && (j<460)  && (j%10==0))|| (i%10==0))
             if((i%40==0)||(j%40==0))
             
                {WritetoLCD(0xff,0); WritetoLCD(i&0xff,0); } //write date
        else
           {WritetoLCD(0x00,0);WritetoLCD(0x00,0); }    
               /* if ((i==130)  && (j==470))
             if (i&0x1==1)
                {WritetoLCD(0x00,0); } //write date
                else
                  {WritetoLCD(0xff,0);}    */                                
               // Wait(500);   
         } 
       for (j=0;j<15;j++) Wait(500); 
        WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0,1);//reset display ram pointer to 0
    for(i=0;i<272;i++)
         for (j=0;j<480;j++)
         {
             //if ((i>20) && (i<240) && (j>20) && (j<460))
             if((i%10==0)||(j%10==2))
                {WritetoLCD(0x00,0);WritetoLCD(0x00,0); } //write date
        else
           {WritetoLCD(i,0);WritetoLCD(i,0);}    
               /* if ((i==130)  && (j==470))
             if (i&0x1==1)
                {WritetoLCD(0x00,0); } //write date
                else
                  {WritetoLCD(0xff,0);}    */                                
               // Wait(500);   
         } 
       for (j=0;j<15;j++) Wait(500); 
       for(k=1;k<240;k=2*k+1)
        {
        WritetoLCD(0,1);//reset display ram pointer to 0
        WritetoLCD(0,1);//reset display ram pointer to 0
        WritetoLCD(0,1);//reset display ram pointer to 0    
        for(i=0;i<272;i++)
         for (j=0;j<480;j++)
         {
         //    {if (((j==0)||(j==479))) WritetoLCD(0xff,0);else WritetoLCD(0x00,0);}
             //if ((i>k) && (i<272-k) && (j>k) && (j<480-k) )
             if(((i%k)==0)||((j%k)==0))             
                { if (k%1) {WritetoLCD(0xff,0);WritetoLCD(i&0xff,0);} else {WritetoLCD(0x00,0);WritetoLCD(0x00,0);} } //write date
        else
           {if (!(k%1)) {WritetoLCD(0xff,0);WritetoLCD(j&0xff,0);} else {WritetoLCD(0x00,0);WritetoLCD(0x00,0);}}                    
         } 
        // for (j=0;j<15;j++) Wait(500); Wait(500);         
      WritetoLCD(0,1);//reset display ram pointer to 0
         WritetoLCD(0,1);//reset display ram pointer to 0
         WritetoLCD(0,1);//reset display ram pointer to 0    
         for(i=0,j=0;i<15;i++)
          {
           for (j=0;j<k*8;j++)
            {
             if (j%8<4)
               {WritetoLCD(0x00,0);WritetoLCD(0x00,0);}
             else 
               {WritetoLCD(0x0f,0);WritetoLCD(0xf0,0);}    
            } 
            for(;j<480;j++)  
               {WritetoLCD(0xff,0);WritetoLCD(0x1,0);}         
          }
           
         for(i=0;i<5;i++)
           for (j=0;j<480;j++)
            {WritetoLCD(0x00,0);WritetoLCD(0x00,0);}
         for(i=0;i<5;i++)
           for (j=0;j<480;j++)
            {WritetoLCD(i&0xff,0);WritetoLCD(j&0xff,0);}
            
         for(i=0,j=0;i<15;i++)
          {
           for (j=0;j<k*8;j++)
            {
             if (j%8<4)
               {WritetoLCD(j&0xff,0);WritetoLCD(i&0xff,0);}
             else 
               {WritetoLCD(0x00,0);WritetoLCD(0x00,0);    }
            } 
            for(;j<480;j++)  
               {WritetoLCD(0x00,0);WritetoLCD(0x00,0);}         
          }
            

         for (j=0;j<15;j++) Wait(500);  
         }          
       } //...........................................................................
        
        
       for (j=0;j<5;j++) Wait(500);
       
       WritetoLCD(0,1);//reset display ram pointer to 0
       WritetoLCD(0x00,0); //write date
        WritetoLCD(0xff,0);WritetoLCD(0xff,0); //write date 
        for (j=0;j<5;j++) Wait(500);  
      WritetoLCD(0,1);//reset display ram pointer to 0    

     /*   for (j=0;j<5;j++) Wait(500);
        for ( i = 0 ; i < 9600;i++ )
    {
           WritetoLCD(0xFE,0);           
        } 
        for (j=0;j<5;j++) Wait(500);
        
        for (j=0;j<5;j++) Wait(500);
        for ( i = 0 ; i < 9600;i++ )
    {
           WritetoLCD(0x7F,0);           
        } 
        for (j=0;j<5;j++) Wait(500);
        for ( i = 0 ; i < 9600;i++ )
    {
           WritetoLCD(0xFF,0);           
        } */
        for (j=0;j<5;j++) Wait(500); 
               
        for ( i = 0 ; i < 9600;i++ )
    {
           WritetoLCD((char)(0xff),0);   WritetoLCD((char)(0xff),0);           
        }     
         for (j=0;j<5;j++) Wait(500);     
        for ( i = 0 ; i < 9600;i++ )
    {
           WritetoLCD((char)(i&0xff),0);    WritetoLCD((char)(i&0xff),0);           
        } 
        
         for (j=0;j<5;j++) Wait(500); 
        for ( i = 9600*2 ; i < 480*270*2;i++ )
    {
           WritetoLCD((char)(0),0);      WritetoLCD((char)(0),0);           
        }
        
        
        WritetoLCD(0,0); //write date
        WritetoLCD(0,0); //write date        
        for (j=0;j<5;j++) Wait(500); 
                    
        for(;;);
        
        
        
        
        {
    for ( i = 0 ; i < 9600;i++ )
    {
       WritetoLCD((char)(k&0xff),0); //write date
          
        }
        for (j=0;j<10;j++) Wait(500);
        }  
        WritetoLCD(0,0); //write date
        WritetoLCD(0,0); //write date
        Wait(500);
        WritetoLCD(0x81,0); //write date
        WritetoLCD(0x81,0); //write date
        Wait(500);          

}

使用特权

评论回复
5
wangkj|  楼主 | 2009-2-7 10:01 | 只看该作者

是上面的一小段程序生成的。

演示图片1

使用特权

评论回复
6
wangkj|  楼主 | 2009-2-7 10:12 | 只看该作者

图片2

图片2

使用特权

评论回复
7
wangkj|  楼主 | 2009-2-7 10:13 | 只看该作者

图片2

这是sdram中的原始数据,好像不完全是随机数,似乎有某种规律。但不是是全0或者全1.

使用特权

评论回复
8
wangkj|  楼主 | 2009-2-7 10:14 | 只看该作者

图片3

图片3
分形图+柱状图

使用特权

评论回复
9
wangkj|  楼主 | 2009-2-7 10:16 | 只看该作者

分形图1

分形图1

使用特权

评论回复
10
wangkj|  楼主 | 2009-2-7 10:16 | 只看该作者

分形图2

分形图2

使用特权

评论回复
11
wangkj|  楼主 | 2009-2-7 10:17 | 只看该作者

分形图3

分形图3

使用特权

评论回复
12
wangkj|  楼主 | 2009-2-7 10:18 | 只看该作者

分形图4

分形图4

使用特权

评论回复
13
wangkj|  楼主 | 2009-2-7 10:19 | 只看该作者

柱状图+汉字

使用特权

评论回复
14
wangkj|  楼主 | 2009-2-7 10:19 | 只看该作者

股市分析图

使用特权

评论回复
15
wangkj|  楼主 | 2009-2-7 10:20 | 只看该作者

格格图

使用特权

评论回复
16
wangkj|  楼主 | 2009-2-7 10:21 | 只看该作者

小格格图

使用特权

评论回复
17
wangkj|  楼主 | 2009-2-7 10:22 | 只看该作者

大格格图

使用特权

评论回复
18
原野之狼| | 2009-2-7 10:22 | 只看该作者

强帖留名

使用特权

评论回复
19
wangkj|  楼主 | 2009-2-7 10:23 | 只看该作者

黑白格格图

使用特权

评论回复
20
无雪冬天| | 2009-2-7 10:36 | 只看该作者

厉害啊,

王会计,牛

使用特权

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

本版积分规则

581

主题

9976

帖子

24

粉丝