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

正文內(nèi)容

基于51單片機的直流電機的pid控制器畢業(yè)論文-資料下載頁

2025-06-19 13:10本頁面
  

【正文】 問題全面的系統(tǒng)的鍛煉。使我在單片機的基本原理、單片機應用系統(tǒng)的開發(fā)過程,以及在常用編程設計思路技巧都能向前邁一大步,為日后成為合格的應用型人才打下良好基礎。 直流電機控制在工業(yè)領域有著非常重要的作用。本文完成了基于單片機的直流電機控制系統(tǒng)的設計與模擬。包括控制方案的設計,系統(tǒng)的硬件開發(fā)、軟件編程與仿真調(diào)試等。相對于其他解決方案來說,單片機具有成本低廉,通用性高,維護簡單,軟件靈活,成熟度高等優(yōu)勢。但是,單片機發(fā)展到現(xiàn)在也有存儲空間較小、下游方案較少等局限性。單片機作為已經(jīng)發(fā)展了30年的成熟產(chǎn)品,很多優(yōu)勢正在逐漸失去,讓位于更加先進的芯片解決方案。但是作為成熟方案還是在很多領域能夠發(fā)揮作用。 致謝 在本次設計論文完成之際,首先要向我的指導老師表示真誠的謝意。同時要向研究生師兄表示誠懇的感謝。在設計過程、論文寫作期間,正是朱老師的指點和師兄的從旁協(xié)助才能順利完成。 其次,還要感謝大學四年各位老師的悉心教導,本設計是圍繞單片機而設計的,需要用到單片機、模電、數(shù)電等方方面面的知識。同時,我自身的專業(yè)知識、動手能力和文檔撰寫能力也得到了一定的提升。同時也使我明白了我們的學習不但要立足于書本,以解決理論和實際教學中的實際問題為目的,還要與實踐相結合,理論問題即實踐課題,解決問題即課程研究,通過自己的雙手來解決問題比用腦子解決問題來的更加深刻。 再次感謝在這次畢業(yè)設計中給予我無限幫助的老師和同學,正是由于你們的慷慨協(xié)助,才有我今天的順利完成!參考文獻【1】 徐慧民,安德寧,丁玉珍,單片微型計算機原理、接口及應用,北京郵電大學出版社,2010【2】 唐正,Proteus在單片機教學中的應用,華中科技大學,2008【3】 羅金成,智能全數(shù)字直流調(diào)速系統(tǒng)理論研究與設計,武漢理工大學,2006【4】 徐英鳳,直流調(diào)速控制系統(tǒng)的研究與設計,沈陽理工大學,2007【5】 王新嵐,淺談直流調(diào)速系統(tǒng)的發(fā)展,吉林工程技術師范學院學報,2009【6】 盧純,提高供電企業(yè)電氣設備試驗儀器集成度的研究,華北電力大學,2011【7】 王勇,基于ARM的數(shù)字式直流電機控制器的研究,浙江大學,2007【8】 廖艷娥,具有模糊控制的直流傳動系統(tǒng)的研究設計,西北工業(yè)大學,2004【9】 閆哲峰,基于MATLAB的直流電機調(diào)速系統(tǒng)性能仿真研究,中國農(nóng)業(yè)大學,2006【10】 楊琳琳,數(shù)字直流調(diào)速系統(tǒng)的設計與實現(xiàn),合肥工業(yè)大學,2007【11】 楊詠梅,無刷直流電機的DSP調(diào)速控制的設計與模糊控制的仿真,電子科技大學,2006【12】 李海濱,片春媛,許瑞雪,單片機技術課程設計與項目實例,中國電力出版社,2009【13】 吳黎明, 王桂棠, 洪添勝,單片機原理及應用技術,科學出版社,2005【14】 童詩白,模擬電子技術基礎,高等教育出版社,2006【15】 彭冬明,韋友春,單片機實驗教程,北京理工大學出版社,2007【16】 李華,MCS51系列單片機實用接口技術,北京航空航天大學出版社,1993【17】 閻石,數(shù)字電子技術基礎(第三版),高等教育出版社,1989【18】 葉挺秀,應用電子學,浙江大學出版社,1994【19】 朱承高,電工及電子技術手冊,高等教育出版社,1990【20】 李朝青,單片機原理及接口技術,北京航空航天大學出版社,2005【21】 呂能元,孫育才,楊峰,MCS51單片微型計算機原理接口技術應用實例,北京科技出版社,1993【22】 黃賢武,傳感器實際應用電路設計,成都電子科技大學出版社,1997【23】 李廣軍,實用接口技術,電子科技大學出版社,1998【24】 李華,MCS51系列單片機實用接口技術,北京航空航天大學出版社,1993附錄附錄一:程序include define uint unsigned intdefine uchar unsigned charsbit p30=P3^0。sbit p31=P3^1。sbit p32=P3^2。sbit p34=P3^4。sbit p35=P3^5。sbit p36=P3^6。uchar code table[]={0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f }。 uchar code chose[]={0x01,0x02,0x04,0x08,0x10,0x20}。uint shu[6]={1,2,3,4,5,6}。uint count,miaoshu,sv。 //定義計數(shù)值uchar sec,tt,flag,flag1,flag2,flag3。int rk,yk,uk,uk_1=0,ek,ek_1=0,ek_2=0。 //PID計算參數(shù)signed char T=20,Kp=30,Td=8,Ti=100,q0,q1,q2。 //延時1ms子程序void delay(uchar z){ uchar x,y。 for(x=z。x0。x) for(y=110。y0。y)。}//顯示子程序void display(uint a,uint b){ char i。 shu[0]=a/100。 shu[1]=a%100/10。 shu[2]=a%10。 shu[3]=b/100。 shu[4]=b%100/10。 shu[5]=b%10。 for(i=0。i6。i++) { P2=chose[i]。 P0=table[shu[i]]。 delay(5)。 }}//左移一位void yishu(uchar num){ uchar bai,shi,ge。 bai=sv%100/10。 shi=sv%10。 ge=num。 sv=bai*100+shi*10+ge。}//按鍵子程序void key(){ uchar i,temp,lie,hang,shu。 for(i=0。i4。i++) //求出按鍵值 { P1=~chose[i]。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { hang=i。 if(temp==0xe0) lie=1。 else if(temp==0xd0) lie=2。 else if(temp==0xb0) lie=3。 else if(temp==0x70) lie=4。 break。 } } shu=hang*4+lie。 //數(shù)為對應的按鍵 switch(shu) { case 1: if(!flag) yishu(0)。break。 case 2: if(!flag) yishu(1)。break。 case 3: if(!flag) yishu(2)。 break。 case 4: if(!flag) yishu(3)。break。 case 5: if(!flag) yishu(4)。 break。 case 6: if(!flag) yishu(5)。break。 case 7: if(!flag) yishu(6)。break。 case 8: if(!flag) yishu(7)。break。 case 9: if(!flag) yishu(8)。break。 case 10: if(!flag) yishu(9)。break。 case 11: flag++。 break。 case 12: flag2++。break。 case 13: flag3++。 break。 case 14: break。 case 15:flag1++。 break。 case 16: sv=0。miaoshu=0。flag=0。flag1=0。flag2=0。flag3=0。break。 default: break。 } while(temp!=0xf0) //放鍵檢測 { temp=P1。 temp=tempamp。0xf0。 for(i=0。i10。i++) display(sv,miaoshu)。 }}//按鍵檢測程序void keyscan(){ uchar temp。 P1=0xf0。 delay(5)。 //消除抖動 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) { delay(5)。 //消除抖動 P1=0xf0。 temp=P1。 temp=tempamp。0xf0。 if(temp!=0xf0) key()。 } }/******************************************************/void pid(void) //PID 計算輸出量{ ek=svmiaoshu。 uk=uk_1+q0*ek+q1*ek_1+q2*ek_2。 ek_2=ek_1。 ek_1=ek。 uk_1=uk。 if(uk501) uk=501。 //限定輸出上限 if(uk1) uk=1。 //限定輸出下限 if(ek100) { p30=1。 } else if(ek=0) { p30=1。 delay(uk/10)。 display(sv,miaoshu)。 p30=0。 delay(50uk/10)。 }}void pid_init(){ q0=Kp*(1+T/Ti+Td/T)。//先算出PID的計算參數(shù) q1=Kp*(1+2*Td/T)。 q2=Kp*Td/T。 p30=0。 sec=0。 miaoshu=0。tt=0。count=0。sv=0。 flag=0。}void inittimer(){ IT1=1。 ET0=1。 //允許T0 產(chǎn)生中斷 TMOD=0x02。 //定時器T0工作在方式2 自動重裝方式,計數(shù)器T1工作在方式2 自動重裝方式 TH0=0x06。 //對TH0 TL0 賦值 TL0=0x06。 TR0=1。 //開始定時 EX1=1。 EA=1。}void jian(){ if(flag) { p35=1。 p36=0。 p34=0。 p31=0。 p32=1。 } if(flag2) { p35=0。 p36=0。 p34=1。 p31=1。 p32=0。 } if(flag3) { p35=0。 p36=1。 p34=0。 p31=0。 p32=0。 } if(flag1==2) { pid()。 }}void main(){ p34=0。 p35=0。 p36=1。 pid_init()。 inittimer()。 while(1) { P1=0xf0。 keyscan()。 jian()。 display(sv,miaoshu)。 } }// 定時器中斷0子程序void t0(void) interrupt 1 using 0 //定時T0中斷服務函數(shù){ tt++。 //每過250ust tt 加一 if(tt==40) //計滿40 次(1/100 秒)時 { tt=0。 //重新再計 sec++。 if(sec==10) // 秒,再從零開始計時 { sec=0。 TH0=0x06。 //對TH0 TL0 賦值 TL0=0x06。 miaoshu=count。 count=0。 } }}void sdf(void) interrupt 2 using 0 //計數(shù)T1中斷服務函數(shù){ count++。
點擊復制文檔內(nèi)容
醫(yī)療健康相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1