微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 看不懂啊

看不懂啊

时间:10-02 整理:3721RD 点击:
/********************************************************************
* 名称 : 屏幕数据刷新
* 功能 :                                                                       
* 输入 : 无
* 输出 : 无
***********************************************************************/           
                        if(displaytime>=100 )
                        {
                                if(flagStart==3) sizechange=sizechange+40;          //下降专用 距离下降  左后停止
                                TransferData(0x95,0);                                
                                TransferData(0x17,1);                                                   //高度显示
                                TransferData(S1%1000/100+0x30,1);
                                TransferData(S1%100/10+0x30,1);
                                TransferData(S1%10+0x30,1);
                                TransferData(0x8D,0);                                                   //响应时间显示
                                TransferData(RTimetime/100%10+0x30,1);
                                TransferData(RTimetime%100/10+0x30,1);
                                TransferData(0x2E,1);
                                TransferData(RTimetime%10+0x30,1);
                                TransferData(0x9d,0);                                                        //保持时间显示
                                TransferData(MTimetime/100%10+0x30,1);
                                TransferData(MTimetime%100/10+0x30,1);
                                TransferData(0x2E,1);  
                                TransferData(MTimetime%10+0x30,1);         
                                displaytime=0;
                                TransferData(0x85,0);                                                         //任务要求显示
                                TransferData(0x20,1);
                                if(flagStart==1) TransferData(0x11,1);
                                else TransferData(0x3C,1);
                                TransferData(shuzi+0x30,1);
                                if(flagStart==1) TransferData(0x10,1);
                                else TransferData(0x3E,1);
                        }
                                                                                                                                                
                        if((Timetime>=22)&&(flagStart==1))                //0.1s的保持与采样时间计算
                        {                                
                                ZTimetime++;                                                          //总时间
                                if((flagSep==5)&&(S1>=100))
                                {
                                RTimetime=ZTimetime;                                          //响应时间S                                
                                }
                                if((size==301)&&(S1<200))
                                {
                                size=50;
                                       
                                }
                                
                                if((flagSep==1)&&((110>=S1)|(S1>=190))&&(size==150))
                                {
                                RTimetime=ZTimetime;                                          //响应时间S        
                                pidchang=1;                                
                                }
                                if((flagSep==1)&&((10>=S1)|(S1>=90))&&(size==50))
                                {
                                RTimetime=ZTimetime;                                          //响应时间S        
                                pidchang=1;                                
                                }
                                if((flagSep==1)&&((210>=S1)|(S1>=290))&&(size==250))
                                {
                                RTimetime=ZTimetime;                                          //响应时间S        
                                pidchang=1;                                
                                }
                                else  
                                {
                                Beep1stime++;
                                if(Beep1stime>=1) BEEP=1;
                                if((Beep1stime>=10)&&(beepchange1!=1)) {BEEP=0;Beep1stime=0; }
                                }
                                MTimetime=ZTimetime-RTimetime;                         //保持时间
                                Timetime=0;
                                if(size==301) MTimetime=0;

                        }
                                if(flagSep==6)
                                 {
                                 flagStart6=1;
                                  flagSep=1;
                                   size=301;
                                pidchang=0;
                          }
                          
                          if ((MTimetime>=30)&&(flagStart6==1))         
                          {
                          flagStart61++;
                          if (flagStart60==0)
                           {
                          size=250;         
                          flagStart60=1;
                          pidchang=0;        
                          }
                          else
                          {
                          size=50;         
                          flagStart60=0;
                          pidchang=0;
                          }
                          MTimetime=0;
                          ZTimetime=0;
                          RTimetime=0;                    
                          }        
                          if (flagStart61>=4){pwm=0; flagSep=0;}
                          
                          
                           if(flagSep==7) //要求7功能
                           {
                        
                          if((S1>=2)&&(flagStart7==0)){pwm=0;flagStart7=1;}          //启动标志位
                          else
                          if(flagStart7==1)
                          {
                          if (S1>=140) {flagSep=1; size=150;}
                           }
                          }
                          if(flagSep==2) //要求7功能
                                  {
                                  flagSep=1;
                                  pidchang=0;
                                  }


        }
}        

你还是先从8*8矩阵显示屏开始学习吧,这个难度有点高。还有那个带锁存的移位寄存器开始学习吧。

同样没看懂

这个是控制小球升降高度的一部分,真心不懂

屏幕模拟输出么?模拟显示小球高度?应该是屏幕刷新速度和动画改变。

这个是显示小球高度变化的,但不知道怎么改

都说了你先从8*8矩阵的LED点阵显示器看,然后理解带锁存功能的移位寄存器。然后你就应该可以看得懂transfer();函数的意义了。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top