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

正文內(nèi)容

基于單片機的直流電機轉(zhuǎn)速pid控制系統(tǒng)設(shè)計-資料下載頁

2025-08-20 11:13本頁面

【導讀】本設(shè)計中的電子鐘的核心是AT89C51。硬件電路主要由六部分構(gòu)。以及溫度檢測電路。流電機無法正常穩(wěn)定運行。本系統(tǒng)電路采用的晶振,一。時間的計時,定時時間為10ms。復位電路可使單片機回復到初始狀。鍵盤可實現(xiàn)對直流電機轉(zhuǎn)速的設(shè)定及啟動的操作。過DS18B20芯片實現(xiàn),在溫度顯示中還要注意數(shù)的轉(zhuǎn)換。片機之間串行傳送數(shù)據(jù)。二號單片機的溫度顯示與之類似。DS18B20可編程溫度傳感器。GND為接地線,DQ為數(shù)據(jù)輸入輸出接口,通過。一個較弱的上拉電阻與單片機相連。數(shù)據(jù)線提供電源,又可由外部提供電源,范圍3.O~5.5V。高速暫存存儲器的0,1字節(jié)。單片機可通過單線接口讀到該。一號單片機的鍵盤采用4×4的按鍵方式檢測按鍵。過另一端口發(fā)送PWM波,從而使電機改變轉(zhuǎn)速。在需要的鍵數(shù)比較多時,采用矩陣法來做鍵盤是合理的。為輸出端,而列線所接的I/O口則作為輸入。時,所有的輸入端都是高電平,代表無鍵按下。值依次左移,實現(xiàn)百十個位的設(shè)定。

  

【正文】 [0]]。 //片選 LCD4 delay(100)。 P2=0xff。 } } 32 //顯示正值子函數(shù) void display() { buf[1]=temp/1000。//顯示百位 buf[2]=temp/100%10。//顯示十位 buf[3]=temp%100/10。//顯示個位 buf[0]=temp%10。 //第 4 位 南北秒個位 temp2=temp*7。 buf2[1]=temp2/1000。//顯示百位 buf2[2]=temp2/100%10。//顯示十位 buf2[3]=temp2%100/10。//顯示個位 for(j=0。j3。j++) { P2=0xff。 // 初始燈為滅的 P0=0x00。 P2=0xfd。 //顯示小數(shù)點 P0=0x80。 //顯示小數(shù)點 delay(300)。 P2=0xff。 // 初始燈為滅的 P0=0x00。 P2=0xf7。 //片選 LCD1 P0=table[buf[1]]。 delay(300)。 P2=0xff。 P0=0x00。 P2=0xfb。 //片選 LCD2 P0=table[buf[2]]。 delay(300)。 P2=0xff。 P0=0x00。 P2=0Xfd。 //片選 LCD3 P0=table[buf[3]]。 delay(300)。 P2=0xff。 P0=0x00。 P2=0Xfe。 P0=table[buf[0]]。 //片選 LCD4 delay(300)。 P2=0xff。 } } /**********************************************************************************/ 掃描按鍵,進行上下限的設(shè)定 33 /**********************************************************************************/ void key() //按鍵掃描子程序 { if(k1!=1) { delay(20)。 if(k1!=1) { while(k1!=1) { key_to1()。 for(n=0。n8。n++) Show()。 } } } if(k2!=1) { delay(20)。 if(k2!=1) { while(k2!=1) { key_to2()。 for(n=0。n8。n++) Show()。 } } } if(k3!=1) { TR0=1。 //復位,開定時 temp=ReadTemperature()。 } if(k4!=1) { delay(20)。 if(k4!=1) { while(k4!=1)。 set=!set。 if(set==0) { Red=0。Green=1。} else { Green=0。Red=1。} } } } 34 void key_to1() { TR0=0。 //關(guān)定時器 temp+=10。 if(temp=1100) {temp=550。} if(set==0) {alarmH=temp。} else {alarmL=temp。} } void key_to2() { TR0=0。 //關(guān)定時器 temp=10。 if(temp=550) {temp=1100。} if(set==0) { alarmH=temp。} else { alarmL=temp。} } void alarm(void) { if(tempalarmH||tempalarmL) { //bell=1。 //delay(50)。 //bell=0。 Flag=1。 }else {Flag=0。} } logo()//開機的 Logo { P0=0x40。 P2=0xf7。 delay(50)。 P2=0xfb。 delay(50)。 P2=0Xfd。 delay(50)。 P2=0Xfe。 delay(50)。 P1 = 0xff。 //關(guān) 閉顯示 35 } void Show() { if(temp=0) {HLight=1。LLight=0。display()。}//顯示函數(shù) if(temp0) {HLight=0。LLight=1。display00()。} } /**********************************************************************************/ 主函數(shù) /**********************************************************************************/ void main() { TCON=0x05。 TMOD=0X21。 SCON=0X40。 TH0=0XD8。 TL0=0XF0。 TH1=0Xfc。 TL1=0Xfc。 EA=1。 ET0=1。 TR0=1。 TR1=1。 //EX0=1。 for(n=0。n500。n++)//顯示啟動 LOGo {bell=0。logo()。} Red=0。 while(1) { key()。 ss=ReadTemperature()。 Show()。 alarm()。 if(Flag==1) {bell=!bell。} //蜂鳴器滴滴響 else {bell=0。} } } 36 /**********************************************************************************/ 延時子程序用來產(chǎn)生 10ms 的延時,用于在程 序中的等待,并且每 10ms 進行一次 串行通信,把電機應有的轉(zhuǎn)速值發(fā)給另一個單片機。 /**********************************************************************************/ void time0(void) interrupt 1 using 1 //每隔 10ms 執(zhí)行一次此子程序 { TH0=0X56。 TL0=0XDC。 temp=ss。 TI=0。 SBUF=buf2[i0]。 i0++。 if(i0==4) i0=0。 /* if(i0==3) {SBUF=buf2[i0]。 i0=0。 } else {SBUF=buf2[i0]。 i0++。 }*/ } 第五章 說明及調(diào)試 調(diào)試過程 在該系統(tǒng)的構(gòu)想之初有不少困惑。主要是在定時器個數(shù)的選擇以及關(guān)于 PID算法。最后還是決定用 1 個定時器。在調(diào)試過程中遇到了不少小小的麻煩。比如在按鍵調(diào)試的時候,就遇到了按鍵沒反應的問題,后來修改程序后,按鍵有反應了,但新的問題又出來了。主要是按鍵不好使,要么按下沒反應,要么按下太久, 37 系統(tǒng)把一次按鍵動作當成了幾次。后來在按 鍵掃描函數(shù)中加入了等待按鍵彈起的語句,解決了按鍵的靈敏問題。 在調(diào)制 PWM 波形的時候發(fā)現(xiàn)電機的轉(zhuǎn)速并不隨輸出的控制信號的改變而變化。用示波器觀察輸出波形,發(fā)現(xiàn)輸出波形并不規(guī)則。理論上應該是輸出一個一定占空比的方波啊。經(jīng)過一段時間的測試,發(fā)現(xiàn)信號輸出引腳給出了高低電平,但示波器檢測出來的信號看上去并不像給了高低電平啊,就像一個脈沖干擾。突然來個尖脈沖,然后很快衰減。后來縮短定時器的中斷時候后,該問題得到解決,輸出波形正常。輸出波形正常后再測試電機轉(zhuǎn)速,電機轉(zhuǎn)速仍然不正常。 在編寫 PID算法的時候,發(fā)現(xiàn)占空 比變化劇烈,要么是 0,要么就是 100,總是在兩個極值上變化。修改 PID 參數(shù)后問題沒有得到很好解決,后來才發(fā)是因為現(xiàn)變量的類型給定義錯了。修改后,問題得到解決。在 PID的調(diào)試過程中還遇到不少小問題,在此就不一一累述了。 還有一個是編寫串行通信的時候發(fā)現(xiàn)串行通信始終沒法完成。后來發(fā)現(xiàn)時程序中對于 RI的處理不對導致了失敗。 在編寫完了后,發(fā)現(xiàn)程序并沒按預定的程式那樣運行,后來才發(fā)現(xiàn)是定時器中代碼太長的原因。后來只在定時器中保留 PWM波形調(diào)制部分將一些按鍵掃描之類的函數(shù)都拿到主函數(shù)中,在定時器中設(shè)立標志位 。在主函數(shù)中通過判斷標志位來選擇調(diào)用子函數(shù),該問題得到了解決。 運行結(jié)果 手動設(shè)定轉(zhuǎn)速的運行情況如下 38 圖 設(shè)定為根據(jù)溫度自動運行情況如下 圖 根據(jù)溫度自動運行 39 ? 第六章 ??課程設(shè)計體會 ?經(jīng)過一周時間的學習實驗,我已經(jīng)對很熟悉了,在做課程設(shè)計的過程中,我感到自己學到的知識十分有限,所以查閱了大量書籍,通過這次書記的學習,我的知識增長了很多。更深刻地了解有關(guān)變壓器的知識,同時也弄明白了以前不明白的 知識點。這次實驗設(shè)計對我的益處很大。 第七章 參考文獻 .單片機原理及接口技術(shù) (第 2 版 )[M].北京:機械工業(yè)出版社, 2020 ,趙性初 .單片機微型計算機原理與接口技術(shù) (第 2版 )[M].武漢:華中科技大學出版社, 1999
點擊復制文檔內(nèi)容
教學課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1