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

正文內(nèi)容

基于avr單片機(jī)的直流電機(jī)調(diào)速控制系統(tǒng)設(shè)計(jì)畢業(yè)設(shè)計(jì)-資料下載頁

2025-02-26 08:40本頁面

【導(dǎo)讀】速技術(shù)已廣泛運(yùn)用于工業(yè)領(lǐng)域的各個(gè)方面。最常用的直流調(diào)速技術(shù)是脈寬調(diào)制。文中采用AVR單片機(jī)ATmega16產(chǎn)生PWM信號(hào)、RI2110驅(qū)動(dòng)、行列式鍵。制的直流電機(jī)PWM調(diào)速系統(tǒng)。

  

【正文】 也正因如此, PWM 又被稱為“開關(guān)驅(qū)動(dòng)裝置”。 對(duì)小功率直流電機(jī)調(diào)速系統(tǒng),使用微型計(jì)算機(jī)或單片 機(jī)來控制是極為方便的。其方法是通過改變電機(jī)電樞電壓與通電周期的比值(即占空比)來控制電機(jī)速度。如圖 所示: 圖 ( a) PWM 調(diào)速系統(tǒng)原理圖 29 圖 ( b) 圖 直流電機(jī) PWM 調(diào)速曲線 在脈沖作用下,當(dāng)電機(jī)通電時(shí),速度增加,電機(jī)斷電時(shí),速度逐漸減少。只要按照一定規(guī)律改變通斷、電時(shí)間,即可讓電機(jī)轉(zhuǎn)速得到控制。 設(shè)電機(jī)始終接通電源時(shí),電機(jī)轉(zhuǎn)速最大為 Vmax,設(shè)占空比為 D=t1/T,則電機(jī)的平均速度為: Vd=Vmax*D 式中 , Vd指的是電機(jī)平均轉(zhuǎn)速, Vmax指電機(jī)在全通 電時(shí)的最大速度,為 D=t1/T指占空比。 由以上公式可知,當(dāng)改變占空比,就可以得到不同的電機(jī)平均速度,從而達(dá)到調(diào)速的目的。 產(chǎn)生 PWM 脈沖的四種方法 ① 分立電子元件組成的 PWM 信號(hào)發(fā)生器這種方式是用分立的邏輯電子元件組成 PWM 信號(hào)電路 ,是較早采用的方法 ,可靠性、可調(diào)性較差 。 ②軟件模擬式利用單片機(jī)的一個(gè) I/O 引腳 ,通過軟件對(duì)該引腳輸出高低電 30 平來模擬 PWM 波 ,該方法占用 CPU 的時(shí)間較多 , 控制軟件較復(fù)雜 。 ③專用 PWM 集成電路采用芯片制造商生產(chǎn)專用的 PWM 集成電路芯片 ,該方法功能強(qiáng) ,但增 加了調(diào)速系統(tǒng)的成本開銷 。 ④單片機(jī)的 PWM 口新一代的許多單片機(jī)具有 PWM 功能。通過單片機(jī)的初始化設(shè)置 ,使其自動(dòng)發(fā)生 PWM脈沖波 ,只有在改變脈沖寬度時(shí) ,CPU才進(jìn)行干預(yù) ,該方法控制直流電動(dòng)機(jī)轉(zhuǎn)速簡單、可靠。 本設(shè)計(jì)采用通過改變單片機(jī)引腳輸出高低電平的時(shí)間比產(chǎn)生占空比可調(diào)的PWM 脈沖,進(jìn)而控制直流電機(jī)轉(zhuǎn)速,其中脈沖周期為 T,若每個(gè)周期高電平時(shí)間為 U0(0≦ U0≦ T),則低電平時(shí)間為 TU0,程序流程圖如圖 所示 ,相關(guān)程序見。在系統(tǒng)運(yùn)行期間,根據(jù)每次采樣的速度值進(jìn)行數(shù)字 PID 運(yùn)算后改變 U0,進(jìn)而實(shí)現(xiàn)對(duì) 電機(jī)的調(diào)節(jié)。 圖 PWM 產(chǎn)生流程圖 31 主流程圖 主程序完成系統(tǒng)初始化、中斷判斷、數(shù)據(jù)檢測(cè)機(jī)處理和電機(jī)的 PID調(diào)節(jié)等工作,主程序結(jié)構(gòu)如圖 所示: 圖 主流程圖 系統(tǒng)主程序 (包含 PWM 波產(chǎn)生程序) include include include Main() {zf=0。 Flag1=0。 EA=1。 IT0=1。 EXO=1。 32 count=0。 en=0。en1=1。en2=0。 U0=200。 Un=0。 cc=0。 zan ting=0。 pwm1=0。 pwm2=0。 P1=0xf0。 Init_lcd()。 //設(shè)置液晶顯示器 Clr_Scr()。 //清屏 flag0=0; for(;;) //等待設(shè)置鍵按下 {if( flag0==1) break; } Clr_Scr()。 //清 屏 Left()。Disp_Chinese(0,32,can)。 left()。Disp_Chinese(0,48,shu)。 right()。Disp_Chinese(0,0,she)。 right()。Disp_Chinese(0,16,zhi)。 left()。Disp_Chinese(2,4,Kp)。 left()。Disp_Digit(2,20,maohao)。 left()。Disp_Digit (2,28,s[0])。 left()。Disp_Digit (2,36,s[0])。 left()。Disp_Digit (2,24,dian0)。 left()。Disp_Digit (2,52,s[0])。 right()。Disp_Chinese(2,4,Ki)。 right()。Disp_Digit(2,20,maohao)。 right()。Disp_Digit(2,28,s[0])。 right()。Disp_Digit(2,36,s[0])。 right()。Disp_Digit(2,24,dian0)。 33 right()。Disp_Digit(2,52,s[0])。 left()。Disp_Chinese(4,4,Kd)。 left()。Disp_Digit (4,20,maohao)。 left()。Disp_Digit (4,28,s[0])。 left()。Disp_Digit (4,36,s[0])。 left()。Disp_Digit (4,4,dian0)。 left()。Disp_Digit (4,52,s[0])。 right()。Disp_Chinese(4,4,V)。 right()。Disp_Digit(4,20,maohao)。 right()。Disp_Digit(4,28,s[0])。 right()。Disp_Digit(4,36,s[0])。 right()。Disp_Digit(4,44,s[0])。 Left()。Disp_Chinese(6,4,zhuan)。 Left()。Disp_Chinese(6,20,xiang)。 Left()。Disp_Digit(6,36,maohao)。 Left()。Disp_Chinese(6,44,zheng)。 Flag1=0。 For(set=0。) //等待啟動(dòng)鍵按下 {switch(set) {case 0:break。 case 1: left()。Disp_Digit (2,28,s[0])。 left()。Disp_Digit (2,36,s[0])。 left()。Disp_Digit (2,52,s[0])。 Kpp=0。 For(flag=0,n=0。) { left()。Disp_Digit (2,28,kong)。 Delay12864(1000)。 left()。Disp_Digit (2,28,s[n])。 Delay12864(2500)。 34 if(flag==1) break。} left()。Disp_Digit (2,28,s[n])。 Kpp+=10*n。 For(flag=0,n=0。) { left()。Disp_Digit (2,36,kong)。 Delay12864(1000)。 left()。Disp_Digit (2,36,s[n])。 Delay12864(2500)。 if(flag==1) break。} left()。Disp_Digit (2,28,s[n])。 Kpp+=10*n。 For(flag=0,n=0。) { left()。Disp_Digit (2,36,kong)。 Delay12864(1000)。 left()。Disp_Digit (2,36,s[n])。 Delay12864(2500)。 If(flag==1) Break。} left()。Disp_Digit (2,36,s[n])。 Kpp+=n。 For(flag=0,n=0。) { left()。Disp_Digit (2,52,kong)。 Delay12864(1000)。 left()。Disp_Digit (2,52,s[n])。 Delay12864(2500) If(flag==1)break} left()。Disp_Digit (2,52,s[n])。 35 Kpp+=*n。 Set=0。break。 case 2:right()。Disp_Digit(2,28,s[0])。 right()。Disp_Digit(2,36,s[0])。 right()。Disp_Digit(2,52,s[0])。 Kii=0。 For(flag=0,n=0。) { right()。Disp_Digit(2,28,kong)。 Delay12864(1000) right()。Disp_Digit(2,28,s[n])。 Delay12864(2500)。 If(flag==1)break。} right()。Disp_Digit(2,28,s[n])。 Kii+=10*n。 For(flag=0,n=0。) { right()。Disp_Digit(2,36,kong)。 Delay12864(1000)。 right()。Disp_Digit(2,36,s[n])。 Delay12864(2500)。 If(flag==1)break。} right()。Disp_Digit(2,36,s[n])。 Kii+=n。 For(flag=0,n=0。) { right()。Disp_Digit(2,52,kong)。 Delay12864(1000)。 right()。Disp_Digit(2,52,s[n])。 Delay12864(2500)。 If(flag==1)break。} right()。Disp_Digit(2,52,s[n])。 36 Kii+=*n。 Set=0。break。 case 3: left()。Disp_Digit (4,28,s[0])。 left()。Disp_Digit (4,36,s[0])。 left()。Disp_Digit (4,52,s[0])。 Kdd=0。 For(flag=0,n=0。) { left()。Disp_Digit (4,28,kong)。 Delay12864(1000): left()。Disp_Digit (4,28,s[n])。 Delay12864(2500)。 If(flag==1)break。} left()。Disp_Digit (4,28,s[n])。 Kdd+=10*n。 For(flag=0,n=0。) { left()。Disp_Digit (4,36,kong)。 Delay12864(1000)。 left()。Disp_Digit (4,36,s[n])。 Delay12864(2500)。 If(flag==1)break。} left()。Disp_Digit (4,36,s[n])。 Kdd+=n。 For(flag=0,n=0。) { left()。Disp_Digit (4,52,kong)。 Delay12864(1000)。 left()。Disp_Digit (4,52,s[n])。 Delay12864(2500)。 If(flag==1)break。} left()。Disp_Digit (4,52,s[n])。 37 Kdd+=*n Set=0。break。 Case 4: right()。Disp_Digit(4,28,s[0])。 right()。Disp_Digit(4,36,s[0])。 right()。Disp_Digit(4,44,s[0])。 V0=0。for(flag=0,n=0。) { right()。Disp_Digit(4,28,kong)。
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1