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

正文內(nèi)容

基于單片機(jī)的運(yùn)動控制系統(tǒng)-資料下載頁

2025-01-18 15:16本頁面
  

【正文】 我對直流調(diào)速系統(tǒng)的理解,培養(yǎng)了分析和解決問題的能力,為以后的工作積累了寶貴經(jīng)驗(yàn)。本次設(shè)計(jì)的轉(zhuǎn)速單閉環(huán)控制系統(tǒng)的性能基本令人滿意,但是除了電流環(huán)之外還有一些問題值得注意。(1)對于電機(jī)保護(hù)和故障處理部分并無涉獵,但是在實(shí)際工程中這也是不可或缺的部分,可以增加過電流保護(hù)電路和電機(jī)溫度檢測環(huán)節(jié),設(shè)置溫度報(bào)警功能,并將這些信息發(fā)送上位機(jī),方便人們對系統(tǒng)進(jìn)行比較全面的監(jiān)測。(2)數(shù)字PID的改進(jìn):采用積分分離法即當(dāng)偏差很大時(shí)去除積分環(huán)節(jié)改進(jìn)積分作用;采用不完全微分法即在PID算法之后加入慣性環(huán)節(jié),可以有效對付干擾的影響。參考文獻(xiàn)[1][M].:機(jī)械工業(yè)出版社,2010.[2][M].西安:西安電子科技大學(xué)出版社,.[3][M].:北京航空航天大學(xué)出版社,.[4]曾慶波,[M].:哈爾濱工業(yè)大學(xué)出版社,.[5][M].北京:電子工業(yè)出版社,.[6][M].北京:電子工業(yè)出版社,.[7]薛小玲,劉志群,[M].北京:.[8][M].北京:機(jī)械工業(yè)出版社,.[9]曾慶波,左曉英,[M].成都:電子科技大學(xué)出版社.[M],.[10][M].北京:人民郵電出版社,.[11]宋鳳娟,曹勝敏,.[J].:9495.[12]康凌,.[J].2010第1期:1214.[13]藍(lán)和慧,寧武,[M].北京:.[14]蔣輝平,[M].北京:機(jī)械工業(yè)出版社,.[15][M].北京:機(jī)械工業(yè)出版社,1999.[16]李發(fā)海,[M].西安:西安電子科技大學(xué)出版社,2000.[17]李萍,.[J].2009第第3期(總第53期):9697.[18]范逸之, Basic與RS232串行通信控制[M].北京:.[19] Basic典型控制應(yīng)用[M] .北京:附錄電路實(shí)物圖:系統(tǒng)完整程序代碼:(1)單片機(jī)處理程序includeincludedefine uchar unsigned chardefine uint unsigned intdefine Kp define Ki define Kd sbit rs=P3^6。sbit len=P3^7。sbit P1_7=P1^7。sbit P1_6=P1^6。uchar code note1[]=SPEED_SET:。uchar code note2[]=AHEAD。uchar code note3[]=BACK 。uchar code note4[]=DET:。uchar code note5[]=stop。uchar code note6[]=Wele。uchar count,flag,flag1,flag2。uchar num1,num2,i。uchar temp0,temp1,temp2,temp3。uint speed,key_speed,dis_speed,sum_speed。uint speed0,speed1,speed2。uint T0L_L,T0L_H,T0H_L,T0H_H。int D,e1,e2,e3,duk,uk。uchar value。void delay_ms(uint ms){ uint j。 for(j=0。jms。j++)。}void delay(uint m){ uint x,y。 for(x=m。x0。x) for(y=110。y0。y)。}void write_(uchar ){ rs=0。 P0=。 delay(5)。 len=1。 delay(5)。 len=0。}void write_data(uchar dat){ rs=1。 P0=dat。 delay(5)。 len=1。 delay(5)。 len=0。}void init(){ len=0。 write_(0x38)。 write_(0x0c)。 write_(0x06)。 write_(0x01)。 }void send(uchar mes){ SBUF=mes。 while(TI==0)。 TI=0。 }uchar checkkey() //檢測是否按鍵按下{ P2 = 0x0f。 if(P2 != 0x0f) { delay_ms(100)。 //按鍵消抖 if(P2 != 0x0f) return (0xff)。 else return (0)。 } }uchar keyscan(){ uchar i,j, temp, Buffer[4] = {0xef, 0xdf, 0xbf, 0x7f}。 for(j=0。 j4。 j++) { P2 = Buffer[j]。 /*以下三個(gè)_nop_()。作用為讓 P1 口的狀態(tài)穩(wěn)定*/ _nop_()。 _nop_()。 _nop_()。 temp = 0x08。 for(i=0。 i4。 i++) { if(!(P2 amp。 temp)) { value=i+j*4。 while(checkkey()!=0)。 //等待按鍵釋放 return value。 } temp = 1。 } }}void set_speed() //設(shè)定轉(zhuǎn)速及方向 然后啟動{ while(1) { if(checkkey()==0) continue。 else { num1=keyscan()。 if(num1==11) //按下刪除按鍵 { temp0=0。 temp1=0。 temp2=0。 temp3=0。 write_(0x80+0x0A)。 for(i=0。i=3。i++) {write_data(0x20)。} write_(0x80+0x0A)。 } else if(num1==10) {break。} //按下設(shè)定鍵,確定轉(zhuǎn)速 else {write_data(0x30+num1)。 temp3=temp2。 temp2=temp1。 temp1=temp0。 temp0=num1。 } } } key_speed=temp3*1000+temp2*100+temp1*10+temp0。 //D1=((float)(key_speed+4635)/8900)*1000。 write_(0x80+0x40)。 while(1) { if(checkkey()==0) continue。 else { num2=keyscan()。 if(num2==11) //按下刪除鍵 { write_(0x80+0x40)。 for(i=0。i=4。i++) {write_data(0x20)。} write_(0x80+0x40)。 } if(num2==12) //等待設(shè)定方向 {flag1=0。 for(i=0。i=4。i++) { write_data(note2[i])。 //正轉(zhuǎn) } send(0)。 //向上位機(jī)發(fā)送轉(zhuǎn)速方向 } if(num2==13) {flag1=1。 for(i=0。i=4。i++) { write_data(note3[i])。 } send(1)。 } if(num2==14) break。 //按下啟動鍵表示確定方向 } }}main(){ uchar i,j。 init()。 IE=0x82。 SM1=1。 SM0=0。 C_T2=1。 TMOD=0x21。 //T1工作于方式2(串口),T0工作于方式1 IP=0x1A。 //串口,T0,T1為高優(yōu)先級中斷,外部中斷X1為低優(yōu)先級中斷 TL1=0xFD。 TH1=0xFD。 //波特率為9600 TL2=0x00。 TH2=0x00。 TR1=1。 write_(0x80+0x10)。 for(i=0。i=6。i++) { write_data(note6[i])。 } for(i=0。i24。i++) { write_(0x18)。 delay(150)。 } write_(0x01)。 //清屏 write_(0x80+0x00)。 for(i=0。i=9。i++) { write_data(note1[i])。 } set_speed()。 //D1=((float)(key_speed+4615)/8900)*1000。 key_speed=(float)key_speed/10。 write_(0x80+0x46)。 for(i=0。i=3。i++) { write_data(note4[i])。 } TL0=(65535500)%256。 TH0=(65535500)/256。 P1_6=1。 P1_7=0。 P2=0xf0。 EX1=1。 TR0=1。 TR2=1。 while(1) { e1=key_speedspeed。 duk=Kp*(e1e2)+Ki*e1+Kd*(e12*e2+e3)。 uk=uk+duk。 if(uk=450) uk=450。 if(uk=50) uk=50。 e3=e2。 e2=e1。 D=500+uk。 if(flag1==1) {D=1000D。} T0L_L=(64536+D)%256。 T0L_H=(64536+D)/256。 T0H_L=(65536D)%256。 T0H_H=(65536D)/256。 if(flag==1) { flag=0。 speed=(TH2*256)+TL2。 TH2=0x00。 TL2=0x00。 sum_speed+=speed。 j++。 if(j=10) { j=0。 speed2=speed1。 speed1=speed0。 speed0=sum_speed。 dis_speed=(speed2+speed1+speed0)/3。 sum_speed=0。 send(dis_speed/15)。 //發(fā)送轉(zhuǎn)速值 } write_(0x80+0x4A)。 if(flag2==1) {flag2=0。 for(i=0。i=3。i++) { write_data(note5[i])。 } } else { write_data(0x30+(dis_speed/1000))。 write_data(0x30+((dis_speed/100)%10))。 write_data(0x30+((dis_speed/10)%10))。 write_data(0x30+(dis_speed%10))。 } write_(0x80+0x4A)。 } }}void T0_timer() interrupt 1{ if(P1_6==1) {TL0=T0L_L。 TH0=T0L_H。 P1_6=0。 P1_7=1。 } else { TL0=T0H_L。 TH0=T0H_H。 P1_6=1。 P1_7=0。 count++。 if(count==16) { flag=1。 count=0。 } }}void INT_1() interrupt 2{ EX1=0。 TR2=0。 TH2=0。TL2=0。speed0=0。speed1=0。speed2=0。sum_speed=0。dis_speed=0。 T0L_L=(64536+D)%256。 T0L_H=(64536+D)/256。 T0H_L=(65536D)%256。 T0H_H=(65536D)/256。 while(1) { num2=keyscan()。
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1