91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

蹺蹺板程序,學習PId算法的經典例子,希望對大家有幫助;

資源截圖

代碼片段和文件信息

#include
sbit?p1_0=P1^0;//電機旋轉控制
sbit?p1_1=P1^1;//電機旋轉控制
sbit?p1_2=P1^2;//電機使能控制
sbit?p1_3=P1^3;//電機旋轉控制
sbit?p1_4=P1^4;//電機旋轉控制
sbit?p1_5=P1^5;//電機使能控制
sbit?E_CLK=P1^6;//LCD顯示。時鐘輸入
sbit?RW_SID=P1^7;//LCD顯示。數據輸入
sbit?p2_0=P2^0;//前進循跡方向信號
sbit?p2_1=P2^1;//前進循跡方向信號
sbit?p2_2=P2^2;//前進循跡方向信號
sbit?p2_3=P2^3;//蹺蹺板平衡信號
sbit?p2_4=P2^4;//蹺蹺板平衡信號
sbit?p2_5=P2^5;//蹺蹺板平衡信號
sbit?p2_6=P2^6;//后退循跡方向信號
sbit?p2_7=P2^7;//避障傳感器信號
sbit?p3_2=P3^2;//溫度傳感器信號
sbit?p3_4=P3^4;//蜂鳴器信號控制
sbit?p3_6=P3^6;//狀態切換鍵信號
sbit?p3_7=P3^7;//暫停/開始鍵信號


/****************************************顯示用變量*************************************************************/
char?sec1=48/*顯示,秒十分位*/sec2=48/*顯示,秒個位*/sec3=48/*顯示,秒十位*/sec4=48/*顯示,秒百位*/;
char?sd1=48/*顯示,速度十分位*/sd2=48/*顯示,速度個位*/sd3=48/*顯示,速度十位*/sd4=48/*顯示,速度百位*/;
char?lc1=48/*顯示,路程百分位*/lc2=48/*顯示,路程十分位*/lc3=48/*顯示,路程個位*/lc4=48/*顯示,路程十位*/;
int?xszt1=0xD1/*顯示,狀態*/xszt2=0xAD/*顯示,狀態*/xszt3=0xBC/*顯示,狀態*/xszt4=0xA3/*顯示,狀態*/;

/****************************************蹺蹺板平衡用變量*******************************************************/
long?qj=10/*前進參數*/ht=1/*后退參數*/tz=0/*平衡狀態參數*/bf=600/*步進*/;
int?cs=0/*蹺蹺板翻的次數*/fdd=6/*防抖動系數*/fx=0/*前一次運動方向,標志*/ph=0/*平衡的持久度*/;
int?fy=0/*反應時間*/cf=1/*沖鋒標志*/bc=0/*是否補償標志*/phzt=0/*平衡狀態*/dd=0/*等待時間*/;

/****************************************通用變量****************************************************************/
int?a/**/b/**/l/**/r/**/i/**/jm=0/**/k/**/zt=1/*循跡、避障、平衡狀態標志*/;
int?setnumber=8/*PWM占空比調整*/n/*一秒種轉了幾圈*/t/*計時用,每0.1秒判斷標志,及時間傳遞顯示的過度量*/;
int?tk/*時間計數*/vt/*速度傳遞顯示的過渡量*/st/*路程傳遞顯示的過渡量*/yx/*小車運行標志*/TC=1/*停車標志*/;
float?s/*路程計算量*/c=0.9742647/*輪子1/4圈的長度(cm)*/;
double?v/*速度計算量*/;

#define?uchar?unsigned?char
#include
#include
#include
#include
#include
#include
#include

timer0()?interrupt?1?using?1
{ TH0=0xFc;
TL0=0x18;
r++;
t++;
if(TC==1)
{ if(b==1)
{
if(m { p1_2=0;
p1_5=0;
}
else
{ p1_2=1;
p1_5=1;
}
???? if?(m>=10)
m=0;
m++;
}
else?if(b==0)
{ if(l { p1_2=0;
p1_5=0;
}
else
{ p1_2=1;

}
if?(l>setnumber+2)
p1_5=1;

???? if?(l>10)
l=0;
????l++;
}
}
if(t==100)
{ if(phzt!=1&&phzt!=3||zt!=3)
tk++;
else ?//若在狀態3(蹺蹺板平衡狀態)的平衡停表情況
dd++; ?//
if(dd==50) ?//
{ if(phzt==1) ?//
phzt=2; ?//
if(phzt==3) ?//
phzt=4; ?//打破平衡準備下蹺蹺板
tk=0; ?//重新計時
dd=0;
}

????????????????if?(tk>=10000) //每
???????????????? tk=0; //0.1
????????????????t=tk; //秒
????????????????sec4=(t/1000)+0

評論

共有 條評論