zbh-avr 发表于 2009-5-3 15:21:16

阅读魏坤第一版示波器的程序,有处地方不明白,阅读过魏坤程序的朋友进来帮忙下,谢谢了。

if(qqq==1)
         {
                           for(i=0;i<121;i++)
                                 {
                                    cdd=add;
                                    cdd=add/2+add/2;
                                 }   
                        for(j=0;j<30;j++)
                                 {
                                       m=128;
                                       for(i=j*8;i<(j+1)*8;i++)
                                             {
                                                 k=cdd;
                                                 lcd_buffer=(lcd_buffer|m);
                                                 lcd_buffer=(lcd_buffer|m);
                                                 if(cdd<cdd)
                                                      {
                                                             for(k=cdd;k<cdd;k++)
                                                                   {
                                                                     lcd_buffer=(lcd_buffer|m);
                                                                  }
                                                         }
                                             else
                                                         {
                                                            for(k=cdd;k>cdd;k--)
                                                                  {
                                                                        lcd_buffer=(lcd_buffer|m);
                                                                     }                  
                                                         }      
                                                   m>>=1;
                                             }
                                       for(h=0;h<240;h++)
                                             {
                                                         lcd_bus = 0x60;
                                                         _CS = 0;
                                                            RS = 0;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 1;
                                                         _CS = 1;
                                                         lcd_bus = j;
                                                         _CS = 0;
                                                            RS = 0;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 1;
                                                         _CS = 1;
                                                         
                                                         lcd_bus = 0x70;
                                                         _CS = 0;
                                                            RS = 0;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 1;
                                                         _CS = 1;
                                                         lcd_bus = h;
                                                         _CS = 0;
                                                            RS = 0;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 1;
                                                         _CS = 1;
                                                         
                                                         lcd_bus = lcd_buffer;
                                                         _CS = 0;
                                                            RS = 1;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 0;
                                                         _CS = 1;
                                                         
                                                         lcd_buffer=0;
                                             }   
                                  }
                                       
                }
   else
             {
                            for(j=0;j<30;j++)
                                 {
                                    m=128;
                                    for(i=j*8;i<(j+1)*8;i++)
                                             {
                                                k=add;
                                                lcd_buffer=(lcd_buffer|m);
                                                lcd_buffer=(lcd_buffer|m);
                                                if(add<add)
                                                       {
                                                             for(k=add;k<add;k++)
                                                                      {
                                                                         lcd_buffer=(lcd_buffer|m);
                                                                      }
                                                      }
                                                else
                                                      {
                                                             for(k=add;k>add;k--)
                                                                      {
                                                                         lcd_buffer=(lcd_buffer|m);
                                                                      }                  
                                                      }
                                             m>>=1;
                                           }
                                                     for(h=0;h<240;h++)
                                                       {
                                                         lcd_bus = 0x60;
                                                         _CS = 0;
                                                            RS = 0;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 1;
                                                         _CS = 1;
                                                         lcd_bus = j;
                                                         _CS = 0;
                                                            RS = 0;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 1;
                                                         _CS = 1;
                                                         
                                                         lcd_bus = 0x70;
                                                         _CS = 0;
                                                            RS = 0;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 1;
                                                         _CS = 1;
                                                         lcd_bus = h;
                                                         _CS = 0;
                                                            RS = 0;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 1;
                                                         _CS = 1;
                                                         
                                                         lcd_bus = lcd_buffer;
                                                         _CS = 0;
                                                            RS = 1;
                                                         _WR = 0;
                                                         _WR = 1;
                                                            RS = 0;
                                                         _CS = 1;
                                                         
                                                         lcd_buffer=0;      
                                                      }
                                    }      
             }

zbh-avr 发表于 2009-5-3 15:27:41

else后面的程序明白了,但if(qqq==1) 后面的语句不明白,而且我找遍了整个程序都没有看到给qqq附初始值的情况,感觉if(qqq==1)后面的程序,好象是实现双通道,上下半屏两个波形的显示的?

for(i=0;i<121;i++)
                                 {
                                    cdd=add;
                                    cdd=add/2+add/2;
                                 }   
有谁可以解释下这个for循环吗, 尤其是这一句,cdd=add/2+add/2; 为什么要把前后两个数据,除以2然后在相加呢?

还有就是这段程序
for(i=j*8;i<(j+1)*8;i++)
                                             {
                                                 k=cdd;
                                                 lcd_buffer=(lcd_buffer|m);
                                                 lcd_buffer=(lcd_buffer|m);
                                                 if(cdd<cdd)
                                                      {
                                                             for(k=cdd;k<cdd;k++)
                                                                   {
                                                                     lcd_buffer=(lcd_buffer|m);
                                                                  }
                                                         }


我觉的这一句好象有点多余,lcd_buffer=(lcd_buffer|m); 知道的朋友可以解释下,这个语句的用途吗?
在这里先谢谢大家了。

lljyes 发表于 2009-5-3 19:15:21

准备硬件中,软件还没怎么看!看一下那数组在那里用到,就知道那语句有没有用了!

ywl0409 发表于 2009-5-3 20:12:05

移位.

wjb444 发表于 2009-5-3 21:37:48

是波型正反显示标志位
页: [1]
查看完整版本: 阅读魏坤第一版示波器的程序,有处地方不明白,阅读过魏坤程序的朋友进来帮忙下,谢谢了。