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

正文內(nèi)容

電子設(shè)計大賽訓(xùn)練設(shè)計報告-基于at89c52單片機的電梯控制模型系統(tǒng)設(shè)計-資料下載頁

2024-10-23 09:20本頁面

【導(dǎo)讀】與否帶來的電平的改變來控制對應(yīng)的單片機輸入或輸出口工作。爾傳感器;速度控制采用易控的步進電機子;基于這些完備而可靠的硬件設(shè)計,使用了一套軟件算法,實現(xiàn)了電機在運動和加速及減速過程的精確控制。示意圖如圖1所示。準確平層,平層的位置誤差?要求平均每層運行時間不超。過5秒,平層結(jié)束時給出提示信號。應(yīng)的運動,并依次在呼叫的樓層停留5秒。能自動記錄、顯示橋廂模型當前到達的樓層編號。大于1秒,并自動記錄、顯示運行時間。量,顯示分辨率為1克,誤差:±3%。發(fā)出超重報警信號。梯模型運行規(guī)則作相應(yīng)的運動。該電梯間豎井模型每隔20cm. 本系統(tǒng)的系統(tǒng)板主要由MCS51系列單片機AT89C52組成。節(jié)的ROM足夠本系統(tǒng)中的編程部分。

  

【正文】 ||in_call[1]||up_call[1]) //2 樓為目的樓層 {gf=2。downer()。down_call[1]=0。in_call[1]=0。up_call[1]=0。} else if(in_call[0]||up_call[0]) //1 樓為目的樓層 {gf=1。downer()。in_call[0]=0。up_call[0]=0。} } } ///mian 函數(shù) void main() { nf=1。 S=0。 X=0。 J=0。 f1=1。 f2=1。 f3=1。 f4=1。 f5=1。 vKeyProcess(ucKeyScan())。 TMOD=0x11。 //T2MOD=0x01。 EA=1。 //開定時器中斷 ET0=1。 ET1=1。 ET2=1。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 TH1=(6553620200)/256。 TL1=(6553620200)%256。 RCAP2H = (655365000)/256。//晶振 12M 60ms 16bit 自動重載 RCAP2L = (655365000)%256。 while(1) { vKeyProcess(ucKeyScan())。 display(gf,disnum/10,disnum%10,nf)。 if(vKeyProcess(ucKeyScan())==15) { floor()。 display(gf,disnum/10,disnum%10,nf)。 } } } /*************************************** 電梯運動定時函數(shù) ***************************************/ void t0(void) interrupt 1 //可計時 1000S { TH0=(6553650000)/256。 TL0=(6553650000)%256。 count++。 if(count==20) { count=0。 disnum++。 if(disnum==1000) {disnum=0。} } } //定時函數(shù) // void t1(void) interrupt 3 //可計時 1000S 用于步進電機的減速 { static unsigned char counter。 TH1=(6553620200)/256。 //步進電機的速度控制 TL1=(6553620200)%256。 if(counter==8) {counter=0。} if(flag==1) //flag==1 時步進電機正轉(zhuǎn) flag==0 時步進電機反轉(zhuǎn) { if(counter==0) { Coil_A1 } if(counter==1) { Coil_AB1 } if(counter==2) { Coil_B1 } if(counter==3) { Coil_BC1 } if(counter==4) { Coil_C1 } if(counter==5) { Coil_CD1 } if(counter==6) { Coil_D1 } if(counter==7) { Coil_DA1 } counter++。 } else { if(counter==0) { Coil_D1 } if(counter==1) { Coil_CD1 } if(counter==2) { Coil_C1 } if(counter==3) { Coil_BC1 } if(counter==4) { Coil_B1 } if(counter==5) { Coil_AB1 } if(counter==6) { Coil_A1 } if(counter==7) { Coil_DA1 } counter++。 } } void TIM2(void) interrupt 5 using 1//定時器 2 中斷 用于控制步進電機在正常情況下的速度及正反轉(zhuǎn) { static unsigned char jishu 。 TF2=0。 RCAP2H = (655365000)/256。// 用于控制正常情況下的步進電機的速度 RCAP2L = (655365000)%256。 if(jishu==8) {jishu=0。} if(flag==1) //控制步進電機的正反轉(zhuǎn) { if(jishu==0) { Coil_A1 } if(jishu==1) { Coil_AB1 } if(jishu==2) { Coil_B1 } if(jishu==3) { Coil_BC1 } if(jishu==4) { Coil_C1 } if(jishu==5) { Coil_CD1 } if(jishu==6) { Coil_D1 } if(jishu==7) { Coil_DA1 } jishu++。 } else { if(jishu==0) { Coil_D1 } if(jishu==1) { Coil_CD1 } if(jishu==2) { Coil_C1 } if(jishu==3) { Coil_BC1 } if(jishu==4) { Coil_B1 } if(jishu==5) { Coil_AB1 } if(jishu==6) { Coil_A1 } if(jishu==7) { Coil_DA1 } jishu++。 } } 顯示部分程序 ifndef __DISPLAY_H__ define __DISPLAY_H__ define uint unsigned int define uchar unsigned char include sbit P20=P2^0。 // 數(shù)碼管段選 1 sbit P21=P2^1。 // 數(shù)碼管段選 2 sbit P22=P2^2。 // 數(shù)碼管段選 3 sbit P23=P2^3。 // 數(shù)碼管段選 4 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0X66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}。 /*1ms 延時程序 */ void delay(uint z) { uint x,y。 for(x=z。x0。x) for(y=100。y0。y)。 } void display(uchar gf,uchar shi ,uchar ge,uchar nf) { P20=0。 P0=table[gf]。 delay(5)。 P20=1。 P21=0。 P0=table[shi]。 delay(5)。 P21=1。 P22=0。 P0=table[ge]。 delay(5)。 P22=1。 P23=0。 P0=table[nf]。 delay(5)。 P23=1。 } 鍵盤掃描部分程序 ifndef __KEYSCAN_H__ define __KEYSCAN_H__ include define SCANPORT P3 unsigned char uca_LineScan[4]={0xEF,0xDF,0xBF,0x7F}。 //LINE 1 2 3 4 unsigned char ucKeyScan() { unsigned char ucTemp=0。 //掃描狀態(tài)暫存。 unsigned char ucRow=0,ucLine=0。 //行號,列號。 for(ucLine=0。ucLine4。ucLine++) //列掃描 { SCANPORT=uca_LineScan[ucLine]。 //輸出掃描電位。 ucTemp=SCANPORTamp。0x0F。 //輸入掃描電位,并屏蔽高 4 位。 if(ucTemp!=0x0F) //判斷該列是否有按鍵按下,有則判斷出行號。 { switch(ucTemp) { case 0x0E: ucRow=10。break。 case 0x0D: ucRow=20。break。 case 0x0B: ucRow=30。break。 case 0x07: ucRow=40。break。 default: ucRow=50。break。 } break。 } } SCANPORT=0x0F。 //恢復(fù) P2 return ucRow+ucLine+1。 } endif
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1