看不懂啊
时间: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;
}
}
}
* 名称 : 屏幕数据刷新
* 功能 :
* 输入 : 无
* 输出 : 无
***********************************************************************/
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();函数的意义了。