freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

懸掛運動控制系統(tǒng)e題資料設計報告-文庫吧資料

2025-04-01 00:05本頁面
  

【正文】 amp。 if(t1==10) { linedisp(1,a0,b0,nextx,nexty)。 nexty=y+b0。 y=nexty。 fm=fm+zx。 nextx=x。 fm=fmzy。 nexty=y。amp。 fm=fm+zx。 nextx=x。 fm=fmzy。 nexty=y。amp。 fm=fm+zx。 nextx=x。 fm=fmzy。 nexty=y。amp。 fm=fm+zx。 nextx=x。 fm=fmzy。 nexty=y。 fm=fmzy。 nexty=y。amp。 zy=abs(b1b0)。 sy=b1b0。fm=0。 x=。 int t1。 int zx,zy,sx,sy。 }*//****************************************************************//***************** 畫直線函數(shù) *************************/void line(int a0,int b0,int a1,int b1){ int t。 } while(ynum) { Motor_Right_Step(fhy)。 } else ynum=abs((int)(yb))。 if(sumy1=1) { sumy1+=1。 sumy1+=d。 } else ynum=(int)(yb)。 if(sumy1=1) { sumy1=1。 sumy1+=d。 } else znum=abs((int)(zb))。 if(sumz2=1) { sumz2+=1。 sumz2+=d。 } else znum=(int)(zb)。 if(sumz1=1) { sumz1=1。 sumz1+=d。 yb=(sqrt(()*()+()*())sqrt(()*()+()*()))/stepy。 int znum,ynum,fhz,fhy。void buchang(float x,float y,float nextx,float nexty)//,int *znum1,int *ynum1){ float zb,yb。float sumy1=。 } /*float sumz1=。 } while(ynum) { Motor_Right_Step(fhy)。 fhy=1。 fhy=0。 fhz=0。 fhz=1。 yb=(sqrt(()*()+()*())sqrt(()*()+()*()))/stepy。 int znum,ynum,fhz,fhy。 Write_Byte_Locate(13,line,number[yz%10])。 Write_Byte_Locate(10,line,number[xz%10])。 Write_Byte_Locate(5,line,number[y%10])。 Write_Byte_Locate(2,line,number[x%10])。}/* *********** 直線當前坐標實現(xiàn)模塊*************** *//* “(,);(,)” */void linedisp(int line,int x,int y,int xz,int yz){ display(table6,line)。 Write_Byte_Locate(4,line,number[y/10])。}/*************************************************//* 圓形當前坐標顯示模塊*/void currentdisp(int line,int x,int y){ Write_Byte_Locate(1,line,number[x/10])。 Motor_Right_CP=0。 Motor_Right_CP=1。 Delay_1ms(1)。 Delay_1ms(1)。 }}/*******************************************************************//********************步進電機基本操作部分***************************///左電機轉(zhuǎn)動一步,Dir=0時反轉(zhuǎn)(順時針),即松開線;Dir=1時正轉(zhuǎn)(逆時針),即收緊線void Motor_Left_Step(bit Dir){ Motor_Left_DIR=Dir。 case 0xee: return 10。 case 0xd7: return 8。 case 0xbb: return 6。 case 0xeb: return 4。 case 0xdd: return 2。}/**************************************************///鍵碼識別函數(shù)uchar Scan_Code_Transform(uchar scancode){ switch (scancode) {/*將按鍵碼轉(zhuǎn)換成鍵值*/ case 0xde: return 0。 } else scancode=(scancode1)|0x01。0xf0)!=0xf0)。0x0f)。0xf0)!=0xf0) //本列有鍵按下 { tmpcode=(P2amp。 //逐行掃描 while(scancode!=0xef) //還沒有掃描完4行 { P2=scancode。 //等待有鍵按下 Delay_1ms(20)。 P2=0xf0。//顯示光標移動設置 Write_LCD1602(0x0c,0)。 Write_LCD1602(0x01,0)。//寫顯示數(shù)據(jù)}/**************************************************///LCD1602初始化函數(shù)void Init_LCD1602(){ Write_LCD1602(0x38,0)。 //如果沒有加0X40則顯示第一行 Write_LCD1602(x,0)。}/**************************************************///把數(shù)據(jù)顯示在LCD1602的指定位置//x,y是坐標,udata是需要顯示的數(shù)據(jù)//x不能大于15,每行最多顯示16字符//y不能大于1,最多顯示2行void Write_Byte_Locate(uchar x,uchar y,uchar udata){ if(y){x+=0x40。 //E=高脈沖,把數(shù)據(jù)/指令寫入 LCD_Data=udata。 //mand=0時寫入指令,mand=1時寫入數(shù)據(jù) RW=0。}/**************************************************///LCD1602寫數(shù)據(jù)和寫指令函數(shù)//把寫數(shù)據(jù)和指令二個合在一起,用一個變量mand來判斷void Write_LCD1602(uchar udata,bit mand){ LCD1602_Busy_Check()。 EN=0。amp。 EN=1。 RW=1。 }while((time)!=0)。j20。i15。//循跡電機驅(qū)動函數(shù)/*******************************************************************///延時函數(shù),延時時間=1ms*time(晶振12MHz)void Delay_1ms(int time){ uchar i,j。//讀取對光二極管的值void follow()。//void buchang(float,float,float,float)。//提示顯示void line(int,int,int,int)。//當前顯示void linedisp(int,int,int,int,int)。//右電機轉(zhuǎn)動一步,Dir=0時反轉(zhuǎn)(順時針),即收緊線;Dir=1時正轉(zhuǎn)(逆時針),即松開線void Draw_Circular(int x,int y)。void Motor_Left_Step(bit Dir)。 //鍵盤掃描函數(shù),返回鍵盤掃描碼uchar Scan_Code_Transform(uchar scancode)。 //把數(shù)據(jù)顯示在LCD1602的指定位置void Init_LCD1602()。 //LCD1602忙檢查函數(shù)void Write_LCD1602(uchar udata,bit mand)。/*******************************************************************///函數(shù)聲明void Delay_1ms(int time)。uchar code number[10]={0123456789}。uchar code wrong[16]={Wrong Coordinate}。uchar code table13[16]={(50,50)(25,50) }。uchar code table11[16]={Rectan perform. }。uchar code table9[16]={ ENTER to Begin }。 r= cm }。( , ) }。uchar code table5[16]={Follow the Line }。 uchar code table3[16]={ Draw a Line }。uchar code table0[16]={ 2 Rectan}。 ///**************************************************/uchar code kaiji0[16]={ WELCOME! }。 //1602的數(shù)據(jù)/sbit RW=P3^4。sbit jiesu=P3^6。sbit S_clk = P1^6。 //右步進電機方向控制端sbit Motor_FREE =P1^4。 //左步進電機方向控制端sbit Motor_Right_CP =P1^2。 六、參考文獻 附錄一 電路原理圖控制部分電路圖:循跡模塊電路圖:附錄二 源代碼/*******************************************************************/include include include include define uchar unsigned char //無符號字符類型定義define uint unsigned int //無符號整數(shù)類型定義/******************************************************************///步進電機驅(qū)動器引腳連接定義sbit Motor_Left_CP =P1^0。整個系統(tǒng)從軟件到硬件都體現(xiàn)優(yōu)良簡約的風格。五、結(jié)論本設計以AT89S52單片機為核心,利用軟件編程,實現(xiàn)了定點直線運動,圓形軌跡運動,間斷黑線循跡以及坐標的實時顯示。(6)讀數(shù)誤差。(5)繞線產(chǎn)生的誤差。(4)牽引線引入的誤差,包括拉伸誤差和由松弛產(chǎn)生的誤差。(3)步進電機的步進脈沖個數(shù)和步進線距離之間的折算誤差。同時,進行坐標變換時,單片機在計算精度上也會引進誤差,由于使用浮點運算,該誤差不大。(X,Y)坐標向(L,R)坐標轉(zhuǎn)換時使用幾何分析的方法,但為了處理方便,將懸掛滑輪視為一點,沒有考慮其半徑。(5)系統(tǒng)主程序流程框圖上電,初始化液晶顯示等待按鍵,選擇所需的功能1直線2正方形 3圓 4循跡輸入起 點終點坐 標按照事先設定運 行設定圓心手動到 點手動到循跡起始 點執(zhí) 行 部 件返回顯示程序按鍵確認,進入對應程序圖39系統(tǒng)主程序流程框圖四、系統(tǒng)測試1.測試儀器DT9205
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1