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

正文內(nèi)容

基于at89c51單片機(jī)的步進(jìn)電機(jī)控制系統(tǒng)畢業(yè)論文-資料下載頁(yè)

2025-06-27 17:23本頁(yè)面
  

【正文】 keycount++。 display()。 } else keycount=4。 } }/**************************判斷按鍵是否松開(kāi)************************/void keyloosen(void){ unsigned char temp。 temp=P1。 temp=tempamp。0xf0。 while(temp!=0xf0) { temp=P1。 temp=tempamp。0xf0。 }}/*****************************鍵盤(pán)掃描函數(shù)*************************///功能:根據(jù)鍵值執(zhí)行相應(yīng)的功能,按鍵功能包或0~9的數(shù)字按鍵、啟動(dòng)按鍵、//停止按鍵、正轉(zhuǎn)按鍵、反轉(zhuǎn)按鍵、復(fù)位按鍵(用于當(dāng)輸入有誤時(shí)對(duì)輸入狀態(tài)//進(jìn)行復(fù)位)void keyscan(void) { unsigned char temp。 P1=0xfe。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(15)。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { temp=P1。 temp=tempamp。0xf0。 switch(temp) { case 0xe0: //0 key=0。 break。 case 0xd0: //1 key=1。 break。 case 0xb0: //2 key=2。 break。 case 0x70: //3 key=3。 break。 default: //多個(gè)按鍵同時(shí)按下時(shí)該次按鍵無(wú)效 key=20。 break。 } keypro()。 //調(diào)用數(shù)字按鍵處理函數(shù) } keyloosen()。 //判斷按鍵是否松開(kāi) } P1=0xfd。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(15)。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { temp=P1。 temp=tempamp。0xf0。 switch(temp) { case 0xe0: //4 key=4。 break。 case 0xd0: //5 key=5。 break。 case 0xb0: //6 key=6。 break。 case 0x70: //7 key=7。 break。 default: //多個(gè)按鍵同時(shí)按下時(shí)該次按鍵無(wú)效 key=20。 break。 } keypro()。 //調(diào)用數(shù)字按鍵處理函數(shù) } keyloosen()。 //判斷按鍵是否松開(kāi) } P1=0xfb。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(15)。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { temp=P1。 temp=tempamp。0xf0。 switch(temp) { case 0xe0: //8 key=8。 break。 case 0xd0: //9 key=9。 break。 case 0xb0: //啟動(dòng)按鍵 key=10。 state=1。 //置啟動(dòng)狀態(tài)標(biāo)志位為1 break。 case 0x70: //停止按鍵 key=11。 state=0。 //置啟動(dòng)狀態(tài)標(biāo)志位為0 break。 default: //多個(gè)按鍵同時(shí)按下時(shí)該次按鍵無(wú)效 key=20。 break。 } keypro()。 //調(diào)用數(shù)字按鍵處理函數(shù) } keyloosen()。 //判斷按鍵是否松開(kāi) } P1=0xf7。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(15)。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { temp=P1。 temp=tempamp。0xf0。 switch(temp) { case 0xe0: //正轉(zhuǎn)按鍵 led1=1。 //正轉(zhuǎn)指示燈亮 led2=0。 //反轉(zhuǎn)指示燈滅 zf=0。 //正轉(zhuǎn)控制信號(hào) break。 case 0xd0: //反轉(zhuǎn)按鍵 led1=0。 //正轉(zhuǎn)指示燈滅 led2=1。 //反轉(zhuǎn)指示燈亮 zf=1。 //反轉(zhuǎn)控制信號(hào) break。 case 0xb0: //復(fù)位按鍵 rest=1。 //置復(fù)位狀態(tài)位為1 break。 case 0x70: //連續(xù)運(yùn)行按鍵 break。 } } keyloosen()。 //判斷按鍵是否松開(kāi) } }/**************************調(diào)速范圍控制函數(shù)************************/// 功能:調(diào)速范圍控制在2599 r/min,防止步進(jìn)電機(jī)因速度太高發(fā)生失步void speedrange(void) { if(speedflag=25) speedflag=25。 else { if(speedflag=99) speedflag=99。 }}/*****************************調(diào)速函數(shù)*****************************///功能:根據(jù)輸入的步數(shù)是否大于100,再確定是否需要進(jìn)行調(diào)速,若步數(shù)大//于100,則加速,當(dāng)步數(shù)小于100后就減速;當(dāng)輸入步數(shù)小于100,則以最低//設(shè)定的最低速度運(yùn)行void changespeed(void){ if((dispbuf[3]==0)amp。(dispbuf[2]==0)) //判斷千位和十位是否都為0,即步數(shù)//是否小于100 speedflag。 //步數(shù)小于100減速 else speedflag++。 //步數(shù)大于100加速 speedrange()。 //判斷是否超出調(diào)速范圍}/***************************步數(shù)減一函數(shù)***************************/void stepdec(void){ if(dispbuf[0]==0) { if((dispbuf[1]!=0)|(dispbuf[2]!=0)|(dispbuf[3]!=0)) { dispbuf[0]=9。 if(dispbuf[1]==0) { if((dispbuf[2]!=0)|(dispbuf[3]!=0)) { dispbuf[1]=9。 if(dispbuf[2]==0) { if(dispbuf[3]!=0) dispbuf[2]=9。 if(dispbuf[3]!=0) dispbuf[3]=dispbuf[3]1。 } else dispbuf[2]=dispbuf[2]1。 } } else dispbuf[1]=dispbuf[1]1。 } } else dispbuf[0]=dispbuf[0]1。 display()。}/*******************停止判斷函數(shù),判斷步數(shù)是否為0*******************/void stop(void) { if(dispbuf[3]==0) //判斷千位是否為0 if(dispbuf[2]==0) //判斷百位是否為0 if(dispbuf[1]==0) //判斷十位是否為0 if(dispbuf[0]==0) //判斷個(gè)位是否為0 { TR0=0。 //定時(shí)器T0停止計(jì)數(shù) state=0。 //停止標(biāo)志位 keycount=0。 //停止后允許輸入步數(shù) } }/****************************主函數(shù)********************************/void main(void){ init()。 //調(diào)用初始化函數(shù) while(1) { keyscan()。 //調(diào)用鍵盤(pán)掃描函數(shù) if(rest==1) //判斷是否復(fù)位 init()。 if(state==1) //判斷是否啟動(dòng) { TR0=1。 //啟動(dòng)定時(shí)器T0 led4=1。 //亮啟動(dòng)指示燈 led3=0。 //滅停止指示燈 } else { TR0=0。 //定時(shí)器T0停止計(jì)數(shù) led3=1。 //亮停止指示燈 led4=0。 //滅啟動(dòng)指示燈 } }}/***********************定時(shí)器T0啟動(dòng)中斷函數(shù)**********************/void t0(void) interrupt 1 { speedtemp=speedflag25。 TH0=speed[speedtemp]/ 256。 TL0=speed[speedtemp]% 256。 count1++。 clk=~clk。 count++。 if(count==2) //一個(gè)周期走一步 { count=0。 stepdec()。 //調(diào)用步數(shù)減一函數(shù) stop()。 //調(diào)用停止判斷函數(shù) changespeed()。 //調(diào)用調(diào)速函數(shù) }} 附錄B 20BY步進(jìn)電機(jī)轉(zhuǎn)速與定時(shí)器定時(shí)常數(shù)關(guān)系表轉(zhuǎn)速r/min周期 T(us)定時(shí)器計(jì)算初值(65536T/2)定時(shí)初值四舍五入2512000055365536267844279980281196529138123010000015536155363117149329375018661186613320081342141835226793623869372499538
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1