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

正文內(nèi)容

基于單片機控制直流電機調(diào)速系統(tǒng)設(shè)計正文(文件)

2025-12-03 14:58 上一頁面

下一頁面
 

【正文】 時子程序和 2個顯示子程序 組成。 PCON=0x80。TH0=0XFE。EX0=1。 while(1) { while (key1==0||key2==0||key3==0||a==0) { if(key1==0amp。key3==1) { while(key1==0)。 en =0。 wide=150。 EA=0。 time=0。 a=0。amp。 delay1(20)。amp。amp。 if(set_count==100) set_count=300。key2==1amp。a==1) { if(time==400) { 智能儀器綜合設(shè)計用紙 20 time=0。 } } } } 主程序主程序是一個循環(huán)程序,其主要思路是, 首先 判斷系統(tǒng)的運行模式,如果 KEY1鍵按下 , 且 state_flag 為 1則系統(tǒng)處于運行模式,如果 state__flag 為 0則為設(shè)置模式 。 un=a0*ena1*en_1+a2*en_2。en_1=en。 } 位置式 PID控制: 智能儀器綜合設(shè)計用紙 21 增量式 PID控制: 從表達式我們可以得出以下結(jié)論: ( 1) 位置式 PID 控制的輸出與整個過去的狀態(tài)有關(guān),用到了誤差的累加值;而增量式 PID的輸出只與當前拍和前兩拍的誤差有關(guān),因此位置式 PID 控制的累積誤差相對更大; ( 2) 增量式 PID 控制輸出的是控制量增量,并無積分作用,因此該方法適用于執(zhí)行機構(gòu)帶 積分部件的對象,如步進電機等,而位置式 PID 適用于執(zhí)行機構(gòu)不帶積分部件的對象,如電液伺服閥。因此,實際用得較多的還是 試測 法 。 : void delay(uint time) { uint i。key1==1。itime。 } void delay1(uint num) { uint i。 } : void display_num1(uint dat,uchar num1) //指定的位上顯示 指定的一位數(shù)據(jù) { P0=xianshi[dat]。break。break。 qian=num/1000。 if(qian==11amp。 shi=(num%100)/10。amp。 display_num1(ge,1)。 時器中斷子程序: 關(guān)中斷 開啟計數(shù)器 T1 工作 計數(shù)器清零 調(diào)用子程序 dis_num() 將 TL1 中的十六進制數(shù)轉(zhuǎn)換成十進制數(shù) 將 TL1 中的計數(shù)值賦給 count 開啟定時器 T0 工作 定時器 T0 賦初值 計時值 ++ 0832 輸入值減小/PWM 占 空比減小 8032 輸入值增大/PWM 占空比增大 0832 數(shù)據(jù)口賦初值 TL1 計數(shù)值的十進制數(shù)賦值給 out 計時 1s 到? 輸出值 鍵入值? 有值鍵入? 是 否 是 否 是 否 智能儀器綜合設(shè)計用紙 24 void time0() interrupt 1 //定時器 0用于產(chǎn)生 PWM ,占空比通過 PID 計算獲得 {// SBUF=39。 time++。//低電平時間計時 t2++。} if(t1==wide)//wide 的值即為低電平的時間 {PWM=0。 /**/ } 智能儀器綜合設(shè)計用紙 25 第五章 上位機設(shè)計 函數(shù)介紹 配置串口 此函數(shù)主要的作用是使 VISA 資源名稱指定的串口按特定設(shè)置初始化。波特率= 2^SMOD/32據(jù)此可計算溢出率和波特率。 讀取 這個函數(shù)的作用是從 VISA 資源名稱指定的設(shè)備或接口中讀取指定數(shù)量的字節(jié),并使數(shù)據(jù) 返回至讀取緩沖區(qū)。異步通信通過規(guī)定字符幀格式來協(xié)調(diào)發(fā)送端和接收端的數(shù)據(jù)發(fā)送和接收。解決的辦法是使用 Bytes at Port這個串口的屬性節(jié)點 ,在 VISASerialadvance 下 ,也可以在 VISA 資源線上右鍵 創(chuàng)建 屬性節(jié)點 串口設(shè)置 Bytes at Port, Bytes at Port 這個屬性節(jié)點讀取當前串口緩沖區(qū)有多少字節(jié)數(shù) ,然后將它的輸出連接到 VISA 讀取的 讀取字節(jié)數(shù) 這個輸入端上即可 ,這樣當前緩沖區(qū)中有多少個字節(jié)就讀回多少個 ,不會有任何等待。在字符串中搜索 /拆分搜索字符串 /字符中指定的字符串或字符。在搜索字符串 /字符輸入端接入字符串常量 F即可。剛開始遇到串口線不能使用的問題,所以我們只能接一根串口轉(zhuǎn) USB線。我們組的課題 —— 直流電機轉(zhuǎn)速測量與控制系統(tǒng)設(shè)計與實現(xiàn)。同時在對硬件電路設(shè)計的過程中,鞏固了我的專業(yè)課知識,使自己受益匪淺。主要就是 ZYMCU02 主機模塊 、 顯示與鍵盤模塊、 ZigBee 無線收發(fā) 實驗?zāi)K 和 轉(zhuǎn)動源實驗?zāi)K 的運用異界連接。并且為了能夠不出錯,對于各個導線都 要進行測試是否導通。很希望大學期間可以多有一些這樣的課程設(shè)計。所以在這次的課程設(shè)計中選擇作為上位機。波特率可變,取決于定時器 T1 或 2 的溢出率。如果計數(shù)器的初始值為 X,則每過 256— X 個機器周期 T1 就產(chǎn)生溢出,溢出的周期為( 256— X) *12/fosc。 數(shù)據(jù)位 端口 是輸入數(shù)據(jù)的位數(shù) , 數(shù)據(jù)位的值介于 5 和 8 之間 , 默認值為 8,我們選擇的也是 端口 指定要傳輸或接收的每一幀使用的奇偶校驗 ,本次課程設(shè)計中只需要從單片機向 PC 傳輸數(shù)據(jù),選擇方式 1,所以奇偶端口選擇 . 清空 I/O 緩沖區(qū) 運用此函數(shù)來清除發(fā)送和接收的 I/O 接口的緩沖區(qū)。發(fā)送端和接收端可以由各自的時鐘來控制數(shù)據(jù)的發(fā)送和接收,兩個時鐘源彼此獨立,互不同步。 在串口通 信中 ,如果指定讀 取 100 個串口緩沖區(qū)的字節(jié)數(shù) ,如果當前緩沖區(qū)的數(shù)據(jù) 量 不足 100 個時 ,程序會一直停在 VISA 讀取 這個節(jié)點上 ,如果在超時的時間 (默認是 10 秒 )內(nèi)還沒有湊足 100個數(shù)據(jù)的話 ,程序就會報 Time out的錯誤 ,如果超時時間設(shè)置得太長 ,有可能導致程序很長時間停止在 VISA 讀取 這個節(jié)點上。 可在特定字符或子字符串上拆分字符串。 這個函數(shù)節(jié)點可以幫助我們以字符串形式保存所要接收的數(shù)據(jù)。 總體的設(shè)計方案如圖 1 和圖 2: 圖 1 前面板 智能儀器綜合設(shè)計用紙 36 圖 2 程序框圖 智能儀器綜合設(shè)計用紙 37 在最后的調(diào)試階段還是出現(xiàn)不少的問題。 下面的圖片是最后調(diào)試出來的結(jié)果。同時在對硬件電路設(shè)計的過程中,鞏固了我的專業(yè)課知識,使自己受益匪淺。 如果系統(tǒng)處于運行模式 , xcount 開始計時,當 xcount=82 時,即為 1s 時,調(diào)用串口中斷子程序,單片機開始發(fā)送數(shù)據(jù),模擬 I/O 口輸出 PWM,此時 PWM 波的頻率為 ,周期為 ,然后調(diào)用 PID 函數(shù),計算出PWM 波輸出的占空比,最后上位機顯示轉(zhuǎn)速。 在編寫串口時,需要了解單片機串行口的基礎(chǔ)知識,串行口的結(jié)構(gòu)、有關(guān)的寄存器、串行口的工作方式、波特率等。這就是 PID 算法的優(yōu)越性。 此次的設(shè)計并不奢望一定能成功,但一定要對已學的各種電子知識能有一定的運用能力,我做設(shè)計的目的是希 望能檢查下對所學知識的運用能力的好壞,并且開始慢慢走上創(chuàng)造的道路,這是非??少F的一點。 sbit PWM=P1^7。 uint wide=100。 uint time_high=100。 bit state_flag=0。 //電機轉(zhuǎn)速存儲變量 uint time=0。 定義延時子函數(shù) void delay1(uint num)。 void pid(void)。 TMOD=0x21。TL0=0X33。 TR1=1。amp。 state_flag=~state_flag。en_1 =0。 a=1。TR0=0。t1=0。 } } if(key1==1amp。key3==1amp。 set_count+=1。key2==1amp。state_flag==0) //KEY3 為按鍵減 { while(key3==0)。 } else //如果系統(tǒng)處于運行模式則顯示電機的實際轉(zhuǎn)速值 display_num4(stop_count)。amp。stop_count=run_count/2。 un=a0*ena1*en_1+a2*en_2。en_1=en。 } 智能儀器綜合設(shè)計用紙 47 void delay(uint time) { uint i。key1==1。itime。 } void delay1(uint num) { uint i。 } void display_num1(uint dat,uchar num1) //指定的位上顯示 指定的一位數(shù)據(jù) { P0=xianshi[dat]。break。break。 qian=num/1000。 if(qian==11amp。 shi=(num%100)/10。amp。 display_num1(ge,1)。 } void time0() interrupt 1 //定時器 0用于產(chǎn)生 PWM ,占空比通過 PID 計算獲得 {// SBUF=39。 time++。//低電平時間計時 t2++。} if(t1==wide)//wide 的值即為低電平的時間 {PWM=0。 /**/ } 。low_flag=1。 t2=0。TL0=0X9c。 //while(TI) {TI=0。run_count++。 display_num1(shi,2)。amp。bai==0)bai=11。 display_num1(qian,4)。 } 智能儀器綜合設(shè)計用紙 48 delay1_ms(2)。break。break。inum。j123。 } void delay1_ms(uint time) //1ms 延時函數(shù) { uint i,j。itimeamp。 //計算 wide,用于調(diào)節(jié) PWM 的占空比,計算周期為 100ms if(wide900)wide=900。 else if(un 400)un = 400。 pid()。amp。amp。 if(set_count100) set_count=1。key3==0amp。 } if(key1==1amp。state_flag==0) //KEY2 為按鍵加 { while(key2==0)。key2==0amp。 display_num4(set_count)。stop_count=0。 } if(state_flag==0) //如果系統(tǒng)處于設(shè)置模式,則關(guān)閉定時器中斷和外部中斷,同時初始化部分變量 { PWM = 0。un =0。TR0=1。amp。EA=1。ET0=1。TH1=0xfa。 SCON=0x40。 void display_num1(uint dat,uchar num1)。 //定義 三個時刻的誤差存儲變量 float a0=,a1=,a2 =,un=0。//設(shè)定轉(zhuǎn)速值 uint run_count=0。 bit high_flag=0。 //低電平脈寬 uint t2=0。 sbit key2=P1^1。同事,在 老師的身上我學得到很多實用的知識,在此我表示感謝!同時,對給過我?guī)椭乃型瑢W和各位指導老師再次表示衷心的感謝。 還有就是數(shù)字 PID 算法,因為這是關(guān)鍵的一步,位置型和增量型都是數(shù)字型 PID 算法,但是兩者都有自己的優(yōu)缺點。 總之,通過本次設(shè)計不僅進一步強化了專業(yè)知識,還掌握了設(shè)計系統(tǒng)的方法、步驟等,為今后的工作和學習打下了堅實的基
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1