計算機控制技術課程設計---二階環(huán)節(jié)電壓跟蹤控制系統(tǒng)的設計_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  計算機控制技術課程設計報告</p><p>  設計課題: 二階環(huán)節(jié)電壓跟蹤控制系統(tǒng)的設計 </p><p> ?。ú捎肞C機、JK實驗裝置) </p><p>  本科學生課程設計任務書</p><p> 課程設計題目二階環(huán)節(jié)電壓跟蹤控制系統(tǒng)的設計(采用PC機、JK實驗裝

2、置)</p><p> 學院自動化學院專業(yè)自動化專業(yè)年級2008</p><p> (1)已知參數和設計要求1)按下圖搭建一個二階環(huán)節(jié)。2)設計一個控制器輸出作用于電路輸入IN使得電路輸出端能夠跟蹤0—5V范圍內的任意階躍信號。并能通過示波器顯示輸出信號曲線。3)設計人機交互接口,包括鍵盤、顯示器能通過人機交互接口設置信號參數。4)控制精度≤±5%,調節(jié)時間≤5秒。(2)實現(xiàn)方法

3、采用單片機教學實驗系統(tǒng)實現(xiàn)(限≤4人選做)</p><p> 學生應完成的工作:1)硬件設計:要求完成控制系統(tǒng)框圖;繪制完整的控制系統(tǒng)電原理圖;說明各功能模塊的具體功能和參數;搭建并調試一個二階環(huán)節(jié)電路;結合實驗室現(xiàn)有的單片機教學實驗系統(tǒng)進行系統(tǒng)組成,對整個系統(tǒng)的工作原理進行全面分析,論述其結構特點、工作原理、優(yōu)、缺點和使用場合。分析和論述系統(tǒng)采用的主要單元的工作原理和特性。2)軟件設計:要求合理分配系統(tǒng)資源,完

4、成二階環(huán)節(jié)電壓跟蹤控制系統(tǒng)的程序設計(如:系統(tǒng)初始化;主程序;A/D轉換;D/A轉換;標度變換;顯示與鍵盤管理;控制算法;輸出等)。3)對設計控制系統(tǒng)進行系統(tǒng)聯(lián)調。4)編寫課程設計報告:按統(tǒng)一論文格式、統(tǒng)一報告紙和報告的各要素【封面、任務書、目錄、摘要、序言、主要內容(包括設計總體思路、設計步驟、原理分析和相關知識的引用等)、總結、各組員心得體會、參考書及附錄(包括系統(tǒng)框圖、程序流程圖、電原理圖和程序原代碼)】進行編寫,字數要求不少于4

5、000字,要求設計報告論理正確,邏輯性強,文理通順,層次分明,表達確切。</p><p> 目前資料收集情況(含指定參考資料):《計算機硬件技術基礎實驗教程》 黃勤等編著 重慶大學出版社《單片微型計算機機與接口技術》 李群芳等編著 電子工業(yè)出版社《計算機控制技術》 王建華等編著 高等教育出版社</p><p> 課程設計的工作計劃:(1)2011年1月10日熟悉

6、設計任務和要求。(2)2011年1月11日確定設計方案。(3)2011年1月12日硬件調試。(4)2011年1月13、14日軟件及系統(tǒng)調試。(5)2011年1月15日設計答辯。</p><p> 任務下達日期 2011年 1 月 10 日完成日期 2011 年 1 月 15 日</p><p> 指導教師 (簽名)學 生 (

7、簽名)</p><p><b>  目錄</b></p><p><b>  1前言1</b></p><p><b>  2設計基本要求1</b></p><p>  2.1已知參數和設計要求1</p><p><b>  2.2實現(xiàn)方

8、法2</b></p><p>  3系統(tǒng)的總體設計2</p><p>  3.1 硬件設計2</p><p>  3.2 軟件設計2</p><p>  3.3程序運行結果及分析4</p><p><b>  3.4參數整定5</b></p><p>

9、;<b>  4個人心得體會6</b></p><p>  4.1 袁吉的個人心得體會6</p><p>  4.2李雷的個人心得體會6</p><p>  4.3楊坤的個人心得體會6</p><p>  4.3楊果的個人心得體會7</p><p><b>  結束語8<

10、;/b></p><p><b>  參考文獻9</b></p><p><b>  附錄10</b></p><p><b>  1 前言</b></p><p>  近年來計算機自動控制技術在我國工業(yè)中的發(fā)展非常迅速。我國的許多大型企業(yè)、工廠由于在80、90年代引

11、入國外生產設備和生產線,雖然擴大了生產能力,實現(xiàn)了生產自動化,但對生產中的數據采集和自動控制能力日益提出了新的要求。因此,針對不同企業(yè)的要求和情況,將最新的計算機自動控制技術引入到工業(yè)生產過程中,是計算機工作人員義不容辭的責任。微型計算機控制技術在工業(yè)領域中的掃廣泛的應用。工業(yè)控制微型計算機可靠性高、實時性好,且具有標準化、模塊化、組合化合開放式結構,能適應千差萬別的工業(yè)控制對象,因而也成為了現(xiàn)代工業(yè)自動化中不可缺少的工具。</p

12、><p>  隨著計算機技術的發(fā)展,當今世界上基于PC的自動化方案已成為主流,PC在自動化領域的應用正迅速增長,通過將所有的功能集成于這個統(tǒng)一開放的平臺上,通過人機界面可以使復雜的控制和數據處理變得更加簡單化。</p><p>  本篇論文主要采用PC機和JK實驗裝置,設計一個二階環(huán)節(jié)的電壓跟蹤控制系統(tǒng)。</p><p>  關鍵字:計算機控制技術、二階環(huán)節(jié)、控制系統(tǒng)&

13、lt;/p><p><b>  2 設計基本要求</b></p><p>  2.1 已知參數和設計要求</p><p>  (1)按下圖搭建一個二階環(huán)節(jié)</p><p>  圖1 二階環(huán)節(jié)電路圖</p><p>  (2)設計一個控制器輸出作用于電路輸入IN使得電路輸出端能夠跟蹤0——5V范圍內的任

14、意階躍信號。并能通過CRT顯示器畫出輸出信號曲線。</p><p>  (3)設計人機交互接口,包括鍵盤、顯示器能通過人機交互接口設置信號參數。</p><p>  (4)控制精度≤±5%,調節(jié)時間≤5秒。</p><p><b>  2.2 實現(xiàn)方法</b></p><p>  采用單片機實驗教學系統(tǒng)實現(xiàn)。&

15、lt;/p><p><b>  3系統(tǒng)的總體設計</b></p><p>  本次設計的總體思路如下:輸入設定值X,系統(tǒng)采集電路板的輸出電壓值Y,經A/D轉換成數字信號進入計算機,經過數字濾波、標度變換等過程,在屏幕上顯示出來,并且將其與設定值X想比較,所得到的差值作用于控制回路,調整系統(tǒng)電壓值,最終達到穩(wěn)定輸出。最后經過參數整定達到本次課程設計的要求。</p>

16、;<p>  根據電路圖課計算出系統(tǒng)的傳遞函數為:</p><p>  控制系統(tǒng)結構框圖如下:</p><p>  圖2 控制系統(tǒng)的結構結構框圖</p><p><b>  3.1硬件設計</b></p><p>  本次二階環(huán)節(jié)電壓跟蹤控制系統(tǒng)硬件組成主要有模擬輸出通道、模擬輸入通道和跟蹤對象等組成。其工

17、作過程如下:跟蹤對象——即電壓,經模擬輸入通道轉換成數字信號進入計算機,計算機將該信號與給定值比較,得到偏差信號,控制算法程序對偏差信號進行決策和計算,并將計算結果通過模擬輸出通道轉換成模擬量,加載到跟蹤對象,使跟蹤對象輸出值與給定值的偏差最小。硬件電路就是選取合適的電子器件、芯片或設備,設計這樣一個二階環(huán)節(jié),使得系統(tǒng)能夠按要求完成上述工作過程。</p><p>  由于任務書上已經明確給出了本次電路圖,故本次硬

18、件設計僅需按所給電路圖焊接電路板即可。</p><p><b>  3.2軟件設計</b></p><p>  軟件設計除了達到數據采集系統(tǒng)的要求外,還必須有控制算法程序和更強的數據處理能力。一個控制系統(tǒng)的控制過程可以歸納為以下3個步驟:</p><p>  實時數據采集:即對電壓的瞬時值進行測量;</p><p>  

19、實時決策:對表征電壓參數狀態(tài)的測量值進行分析,并按已定的控制規(guī)律作出相應的的控制決策;</p><p>  實時控制:根據決策,實時的對控制機構發(fā)出控制信號。</p><p>  本次軟件設計流程圖如下所示:</p><p><b>  圖3 主程序流程圖</b></p><p>  該程序由初始化程序和數據采集、數字濾

20、波、標度變換、屏幕顯示、D/A輸出、控制決策和屏幕描點等子程序組成。初始化程序主要完成:在屏幕上顯示“R_SET(mV)=”字樣,待輸入完設定值后,在屏幕上顯示一個坐標軸和有關操作提示符,并在屏幕上開辟一個顯示區(qū),用于顯示采樣值、設定值、控制輸出值等相關信息。各子程序功能如下:</p><p> ?。?)數據采集 連續(xù)采集20個數據,每采集一個數據,調用一次采樣程序SAMP0。</p><p

21、>  (2)數字濾波 具體方法是對20個數據有大到小進行排列(SAMP1),去掉兩個最大值,去掉兩個最小值,將中間16個數據區(qū)平均值(SAMP2)。</p><p> ?。?)標度變換 將數字濾波后的采樣值X變換成語實際輸入相對應的模擬電壓毫伏值Y,然后存放在數據緩沖區(qū)。子程序名BTOD和SDATA。</p><p> ?。?)屏幕顯示 利用計算機屏幕顯示采樣值、設定值和輸出值

22、等相關信息由于數據緩沖區(qū)的存放格式是二進制數,而送屏幕顯示的必須是ASCⅡ碼,所以子程序DISPH是完成二進制轉換BCD碼,再轉換成ASCⅡ碼,存放在顯示緩沖區(qū)的相應的地址單元中。DISPL再將顯示緩沖區(qū)的內容送屏幕顯示。</p><p> ?。?)控制決策 根據控制標志位,判斷是否調用控制算法子程序CT,該程序根據設定值和采樣值計算出誤差值,根據誤差的大小確定是否采用積分計算,同時將誤差值進行比例運算,計算出

23、本次運算的結果,存放在輸出緩沖區(qū)。</p><p> ?。?)D/A輸出 D/A輸出程序DAOUT,是將當前輸出緩沖區(qū)數據輸出到D/A轉換器端口。</p><p> ?。?)屏幕描點 子程序POINT是將采樣值對應的坐標點描繪在屏幕對應的位置上。</p><p> ?。?)檢查按鍵 當一個數據從采集到處理,最后送屏幕顯示完畢后,進行適當延時,檢查是否有鍵按下,

24、如有鍵按下,讀取鍵值,執(zhí)行相應的操作;若沒有鍵按下,重復執(zhí)行以上(1)——(7)程序。</p><p>  3.3 程序運行結果及分析</p><p>  使用Matlab軟件對系統(tǒng)進行仿真可得到輸出波形圖如下:</p><p>  圖5 對控制系統(tǒng)進行Matlab仿真輸出波形圖</p><p>  將電路板連接到JK實驗裝置上,檢查無誤后,

25、打開JK實驗裝置開關,編譯、鏈接所編寫好的原程序,按F9一次運行,出現(xiàn)提示輸入“R_SET(mV)=”字樣,鍵盤輸入設定值,回車。程序自動運行繪制出坐標圖,點擊鍵盤B鍵開始進行電壓跟蹤,并在坐標圖上顯示出同步輸出電壓的波形圖。</p><p>  實驗測試過程中,我們輸入R_SET(mV)=2500,按下“B”開始進行電壓同步跟蹤,得到以下輸出波形:</p><p>  2.5V系統(tǒng)輸出電

26、壓波形圖</p><p>  由圖示可以看出,我們所得系統(tǒng)的調節(jié)時間相當長。導致這種現(xiàn)象的原因有兩個:一是系統(tǒng)控制參數設置偏離太大,沒能達到系統(tǒng)所要求的狀態(tài);二是實驗系統(tǒng)條件的影響,我們的實驗儀器相老化比較嚴重,而且電路板的阻尼比相對較小,這種種原因延長了控制系統(tǒng)的調節(jié)時間。</p><p><b>  3.4 參數整定</b></p><p>

27、;  試湊法是通過仿真或實際運行,觀察系統(tǒng)對典型輸入作用的響應曲線,然后根據各控制參數對系統(tǒng)的影響,反復調節(jié)試湊,直到達到滿意的響應從而確定PID個參數。</p><p>  增大比例系數Kp可以加快系統(tǒng)的響應,減小靜差;但過大的比例系數會使系統(tǒng)有較大的超調,并產生振蕩,使穩(wěn)定性變差。</p><p>  增大積分時間常數Ti有利于減小超調,減小振蕩,使系統(tǒng)穩(wěn)定,但系統(tǒng)靜差的消除將隨之減慢

28、。</p><p>  增大微分時間常數Td,有利于加快系統(tǒng)響應,減小超調,增強穩(wěn)定性,但系統(tǒng)對擾動的抑制能力將減弱。</p><p>  本次課程設計的參數整定方法采用試湊法,由于二階環(huán)節(jié)電壓跟蹤控制系統(tǒng)的干擾做用不明顯,或者說幾乎沒有擾動作用,因此在這里我們只需考慮比例系數Kp和積分時間常數Ti對系統(tǒng)的影響。通過調整Kp和Ti的值使得系統(tǒng)滿足給定的要求。</p><

29、p><b>  4 個人心得體會</b></p><p>  4.1 xx的個人心得體會</p><p>  在放假的最后一周,我們迎來了計算機控制技術的課程設計。本身來說,編程方面的知識我掌握的很不理想,自己也不是特別感興趣。所以剛開始對于這門設計感到很頭疼。第一天早上,我們4個人對任務要求進行了仔細的閱讀,對要求有了不同的看法,然后就是以前最不重視的流程圖了

30、,以前很少認真的畫流程圖,雖然老師經常說,但這次讓我體會到流程圖太重要了,只有有一個清楚的邏輯思路,才能有一個清楚的流程圖,有了清楚的流程圖編寫程序時才會清楚,把總程序變成一個個模塊,在組合起來,把復雜的問題分成一部分一部分的就簡單了。</p><p>  通過這次的課程設計,我感覺我學到了很多。也真的切身體會到了編程和硬件設計的滋味,因為我們一開始沒有別人的幫助,只能靠自己。雖然我們小組的成員以前計算機的成績都

31、很一般,但是我們可以互補.我們反復討論,反復修改,反復查證,并且一起找出錯誤.我覺得這樣的團隊精神是難能可貴的. 整個設計,趣味性還是很高的,不僅鍛煉了自己,同時也是一面鏡子,讓我發(fā)現(xiàn)自己不足的地方。最后感謝老師們給的這次機會,讓我大學的程序設計有了進一步的了解。</p><p>  4.2 xx的個人心得體會</p><p>  在此次計算機控制技術課程設計中,我主要工作任務是完成程序的

32、編寫,學習AD574的應用,通過本次設計,自己AD574有了深刻的了解。</p><p>  AD574為12位逐次逼近型ADC芯片,并且有兩種電壓輸入方式,單極性工作時為0—10V和0—20V,雙極</p><p>  在實際應用中,一開始AD574總是不工作,而程序的控制并沒有錯,最后經過我用萬用表查看芯片每個腳的電平,才找到AD574的硬件接線與提供的資料不同,CE端并沒有高電平,致

33、使芯片不工作。為了解決這個問題,我用線直接給芯片的6腳(CE)接上高電平。通過實際應用AD574,我學會了將理論與實際相聯(lián)系,學會了硬件電路的檢查與性工作時輸入-5V— +5V和-10V—+10V。AD574可選擇12位或8位轉換。排錯。</p><p>  其次寫論文雖然不需要親自編寫出所有程序,但是對整個系統(tǒng)的結構及框架要有很清晰的認識,為此我與其他三名隊員的交流討論,當他們有了新的進展和突破后我就去向他們咨

34、詢,讓他們把大概的原理及程序流程講解給我,使自己與系統(tǒng)的進展保持同步。</p><p>  在程序結構上我參考了書上的程序,起初完全照搬書上的怎么調試都無法成功。后面經過自己不斷的努力和參考人家的結果終于解決了問題,收獲還是蠻多的。通過這次課程設計讓自己對計算機控制有了更新的認識,也彌補了自己的不足。</p><p>  4.3 xx的個人心得體會</p><p>

35、  剛開始做的時候,覺得無從下手,因為書本上的知識學的比較淺,沒有完全理解、吃透,根本不知道該做什么,也不知道自己能做什么,一時間茫然了。隨著我們組查資料,問同學,才漸漸的理解深入,才有些明白,但這都沒有關系,也許正是因為這些原因我們才更需要做,要從中學到新知識,鍛煉自己各方面的能力,為以后的工作,生活和學習奠定一個良好的基礎。從寫這次論文中我們學到了很多知識,比如查閱資料,分析問題進而解決問題。通過這次設計,讓我們從被動的接受知識轉到

36、了主動學習知識。我們認為達到了這個目的,這真是讓人興奮的一件事。當然了,這其中離不開老師給與的教導,正是老師給了我這樣一次機會,讓我們學會獨立解決問題,以及團隊合作的重要</p><p>  4.4 xx的個人心得體會</p><p>  本次課程設計中我主要負責硬件的設計,包括電路板的焊接、D/A(A/D)的轉換等以及部分子程序的編寫。通過這次課程設計,讓我對計算機控制技術有了更深的體會

37、,同時自己的動手與分析問題的能了也得到了加強。由于我們的課題涉及硬件連接等方面,更加鞏固了計算機硬件技術,在小范圍了建立起了學科間知識的聯(lián)系。值得一提的是,作為本次課程設計的小組組長,我自身領導方面的能力得到了很大的鍛煉,根據各個隊員的優(yōu)勢與特長分配工作、合理安排設計進度、組織大家分析與討論、協(xié)調各功能模塊等,雖然只有短短的四、五天時間,但是我卻感覺過得十分充實。</p><p>  在這不到一周的時間里,我個人

38、感覺時間還是挺緊張的。特別是時間安排方面有點不和理,我們是1月10日開始的本次課程設計,而就在5天后(即1月15日)就是研究生的考試日期了,很多想要考研的同學都在緊張的抓時間復習,記單詞、背政治、做習題,忙得不亦樂乎。這次課程設計這樣安排無疑讓大家陷入了兩難的抉擇啊,也給我的任務帶來了極大地挑戰(zhàn)。</p><p>  盡管如此,大家還是在百忙之中完成了本次設計任務。這次課程設計讓我暴露了很多問題,也讓我想明白了很

39、多問題。</p><p>  我們在任務下達的第二天就到實驗室拉開了本次課程設計的序幕,向老師咨詢該課題的難度、特點以及如何處理相關問題等重要信息,領取設計所需的實驗器材。經過大家討論一致決定先將實驗電路板焊接好,再開始下一步。由于實驗條件有限,大家輪流使用為數不多的電烙鐵,那讓我感覺焦急而又萬般無奈,終于在吃晚飯前完成了這個“無比艱巨”的任務啊。</p><p>  然后我根據大家的優(yōu)勢

40、和特長進行了簡單的分工,具體情況就不作說明了。最后大家將做好的工作進行融合,完成了我們的初級目標。在我編寫程序的過程中,我發(fā)現(xiàn)自己自己遺忘了相當一部分的知識點,很多簡單的匯編語言都沒把握好,經過一番快速的復習才找回了一點編程的感覺。并且,我的很多編程方面的問題也相繼暴露了出來,什么變量定義錯誤、、數據中途被修改、語言混亂等等問題一大堆。</p><p>  總之,本次課程設計給我敲響了警鐘,要不是地熟悉下以往學習

41、過了的知識點,努力把它們留在腦海中。其次,讓我深刻的認識到團隊合作的重要性,分工并不是意味著分開,大家還是要有一定的聯(lián)系的,分工進行程序模塊化的編寫是為了主程序的實現(xiàn),因此在編寫子程序的過程中要把握好各個數據的定義是否和其他隊友有矛盾,并且進行處理,常常和隊友交流交流是很有必要的,一人計短,兩人計長嘛。我也堅信這次課程設計給我的很多東西將伴隨我一生,并且?guī)Ыo我巨大的財富,讓我受益無窮。</p><p><b

42、>  結束語</b></p><p>  通過本次課程設計,我們小組成員各有所得,受益匪淺。這是我們團隊協(xié)作的成果,是大家智慧與汗水的結晶。短短的幾天時間,大家得到了進一步的鍛煉,加強了大家的團隊協(xié)作能力,為即將到來的畢業(yè)工作以及繼續(xù)深造打下了良好的社會基礎。</p><p>  計算機控制技術作為本專業(yè)的主要專業(yè)課程,是一門應用十分廣泛的技術知識,其重要程度不可小覷。通

43、過這次課程設計,大家集思廣益,將以往學習的知識切切實實的應用到了實踐之中,實踐固然重要,但理論知識也必不可少。理論是實踐的指導,實踐是理論的證明,只有將理論知識與實際相結合才能發(fā)揮其重要性。</p><p>  近年來,隨著計算機技術、自動控制技術、檢測與傳感器技術、網絡與通信技術、微電子技術、CRT顯示技術、現(xiàn)場總線智能儀表、軟件技術以及自控理論的高速發(fā)展,計算機控制的技術水平大大提高,計算機控制系統(tǒng)的應用突飛

44、猛進。利用計算機控制技術,人們可以對現(xiàn)場的各種設備進行遠程監(jiān)控,完成常規(guī)控制技術無法完成的任務,微型計算機控制已經被廣泛地應用于軍事、農業(yè)、工業(yè)、航空航天以及日常生活的各個領域??梢哉f,21世紀是計算機和控制技術獲得重大發(fā)展的時代,大到載人航天飛船的研制成功,小到日用的家用電器,甚至計算機控制的家庭主婦機器人,到處可見計算機控制系統(tǒng)的應用。計算機控制技術的發(fā)展日新月異,作為現(xiàn)代從事工業(yè)控制和智能儀表研究、開發(fā)及使用的技術人員,必須不斷學

45、習,加快知識更新的速度,才能適應社會的需要,才能在工業(yè)控制領域里繼續(xù)邀游。</p><p>  計算機控制技術作為一門愈來愈重要的專業(yè)知識,我們有理由學習好它、掌握好它、運用好它。</p><p><b>  參考文獻</b></p><p>  【1】《微型計算機控制技術》,黃勤,李楠,甘思源,胡青,機械工業(yè)出版社.</p>&

46、lt;p>  【2】《計算機硬件技術基礎實驗教程》,黃勤,高富強,重慶大學出版社.</p><p>  【3】《單片微型計算機與接口技術》,李群芳,電子工業(yè)出版社。</p><p>  【4】《計算機控制技術》,王建華,高等教育出版社。</p><p><b>  附錄</b></p><p><b> 

47、 x</b></p><p><b>  原程序清單</b></p><p><b>  .486</b></p><p>  DATA SEGMENT 'DATA'</p><p>  H_PORT EQU 200H;讀取數據高8位口地址</p><

48、p>  L_PORT EQU 201H;讀取數據低4位口地址</p><p>  CH_PORT EQU 205H;通道選擇端口地址</p><p>  IN_PORT EQU 202H;輸入寄存器地址</p><p>  DAC_PORT EQU 204H;DAC寄存器地址</p><p>  X_P DW 10</p&g

49、t;<p>  R_SET DW 1000</p><p>  K_SET DW 28</p><p>  O_SET DW 40960</p><p>  DATAA DW 8 DUP(0)</p><p>  BUFF DW 9,8,7,6,5,4,3,2,1,0,0,1,2,3,4,5,6,7,8,9</p

50、><p>  MES1 DB '"B"--BEGIN,"E"--EXIT,"S"--SET,"P"--PAUSE',0AH,0DH,'$'</p><p>  DISP DB 'CH0 R_SET: V',0AH,0DH,'$'&l

51、t;/p><p>  DISP1 DB 'CH0 000000V',0DH,'$'</p><p>  MES_KP DB 'PLEASE SET VALUE Kp=','$'</p><p>  MES_KI DB 'PLEASE SET VALUE KI=','$'

52、</p><p>  KONG DB ' ',0DH,'$'</p><p>  CHAO DB '',0DH,'$'</p><p>  CBUFF DW 4 DUP(0)</p><p>  MESS0 DB

53、'+5.000V'</p><p>  MESS1 DB '-5.000V'</p><p>  CH_NUM DB 0</p><p>  OUTDA DB 0</p><p>  FLAG1 DB 0</p><p>  FLAG2 DB 0</p><p

54、>  KEYBUF DB 6</p><p>  COUNT DB ?</p><p>  KEYNUM DB 6 DUP(?)</p><p>  MES2 DB 'R_SET(mV)=','$'</p><p><b>  EK DW 0</b></p>&

55、lt;p><b>  EK1 DW 1</b></p><p><b>  KP DW 5</b></p><p><b>  KI DW 1</b></p><p><b>  KPP DW 0</b></p><p><b>  K

56、II DW 0</b></p><p>  OUTDA1 DB 0</p><p><b>  M1 DW 1</b></p><p>  PMAX DW 0</p><p>  PMAX1 DW 0</p><p>  DATA ENDS</p><p&g

57、t;  STCK SEGMENT PARA STACK'STACK'</p><p>  DB 256 DUP(0)</p><p>  STCK ENDS</p><p>  CODE SEGMENT</p><p>  MAIN PROC FAR</p><p>  ASSUME CS:

58、CODE,DS:DATA,SS:STCK</p><p>  START: PUSH DS</p><p><b>  MOV AX,0</b></p><p><b>  PUSH AX</b></p><p>  MOV AX,DATA</p><p><b>

59、  MOV DS,AX</b></p><p>  LEA DX,MES2;顯示輸入提示信息</p><p>  MOV AH,09H </p><p><b>  INT 21H</b></p><p>  LEA DX,KEYBUF</p><p>  MOV AH,0AH<

60、/p><p>  INT 21H;從鍵盤輸入系統(tǒng)設定值</p><p>  MOV BX,0;將從鍵盤接收的數據轉換成二進制數</p><p><b>  MOV DI,0</b></p><p>  MOV AL,KEYNUM[DI]</p><p>  CMP AL,'-'<

61、/p><p><b>  JZ S1</b></p><p>  LLP: MOV AL,KEYNUM[DI]</p><p>  AND AL,0FH</p><p><b>  MOV AH,0</b></p><p>  XCHG AX,BX</p>&l

62、t;p><b>  MOV CX,10</b></p><p><b>  MUL CX</b></p><p><b>  ADD BX,AX</b></p><p><b>  INC DI</b></p><p><b>  MOV

63、AX,DI</b></p><p>  CMP AL,COUNT</p><p><b>  JZ LLP0</b></p><p><b>  JMP LLP</b></p><p>  S1: INC DI</p><p>  S2: MOV A

64、L,KEYNUM[DI]</p><p>  AND AL,0FH</p><p><b>  MOV AH,0</b></p><p>  XCHG AX,BX</p><p><b>  MOV CX,10</b></p><p><b>  MUL CX<

65、;/b></p><p><b>  ADD BX,AX</b></p><p><b>  INC DI</b></p><p><b>  MOV AX,DI</b></p><p>  CMP AL,COUNT</p><p><b&g

66、t;  JZ S3</b></p><p><b>  JMP S2</b></p><p>  S3: NEG BX</p><p>  LLP0: MOV R_SET,BX;存放設定值</p><p>  LLP00:MOV BX,R_SET</p><p>  MOV DAT

67、AA[4],BX</p><p>  MOV CH_NUM,2;設定值送顯示緩存區(qū)</p><p>  CALL DISPH1</p><p>  MOV CH_NUM,0</p><p>  CALL TT;在屏幕上畫坐標</p><p>  LEA DX,MES1;送操作提示符屏幕上顯示</p>&l

68、t;p>  MOV AH,09H</p><p><b>  INT 21H</b></p><p>  LEA DX,disp </p><p>  MOV AH,09H</p><p><b>  INT 21H</b></p><p>  PL: L

69、EA DX,CHAO</p><p>  MOV AH,09H</p><p><b>  INT 21H</b></p><p>  LEA DX,DISP1;送顯示緩存區(qū)數據屏幕上顯示</p><p>  MOV AH,09H</p><p><b>  INT 21H</b&

70、gt;</p><p>  LP: MOV DI,0</p><p><b>  MOV CX,20</b></p><p>  LP00: CALL SAMP0;讀20次A/D轉換結果</p><p><b>  LOOP LP00</b></p><p>  CALL

71、SAMP1;20個數據由大到小排列</p><p>  CALL SAMP2;求中間16個數據平均值</p><p>  CALL BTOD;標尺變換,將采集樣變換為電壓毫伏值</p><p>  CMP FLAG2,0</p><p><b>  JZ NEXT</b></p><p> 

72、 MOV FLAG2,0</p><p><b>  PUSH AX</b></p><p><b>  PUSH BX</b></p><p><b>  PUSH CX</b></p><p>  MOV BX,R_SET</p><p>

73、  MOV CX,BX</p><p>  MOV AX,PMAX</p><p>  SUB AX,BX;PMAX 減去 預設值</p><p><b>  JS NN</b></p><p><b>  DIV CX</b></p><p><b> 

74、 MOV BH,4</b></p><p>  MOV BL,10</p><p>  LEA DI,CBUFF </p><p>  WW: MOV [DI],AX</p><p><b>  INC DI</b></p><p><b>  INC DI&l

75、t;/b></p><p>  MOV CX,R_SET</p><p>  MOV AX,DX</p><p><b>  MUL BL</b></p><p><b>  DIV CX</b></p><p><b>  DEC BH</b

76、></p><p><b>  JZ NN</b></p><p><b>  JMP WW</b></p><p>  NN: POP CX</p><p><b>  POP BX</b></p><p><b>  POP

77、 AX</b></p><p>  CALL BFB;轉換超調量的百分比</p><p>  LEA DX,CHAO</p><p>  MOV AH,09H</p><p>  INT 21H </p><p>  NEXT: CALL SDATA;傳送到內存</p>

78、<p>  CALL DISPH;送顯示預處理,將電壓值轉換成ASCII碼</p><p>  CALL DISPL;送屏幕顯示</p><p>  CALL CT;調控制算法程序</p><p>  CALL DAOUT;送數到D/A轉換</p><p>  CMP FLAG1,0</p><p><

79、;b>  JZ LP03</b></p><p>  CALL POINT;將當前采集樣在屏幕描點 </p><p>  LP03: MOV ECX,300000H</p><p>  LP02: LOOPD LP02</p><p>  MOV AH,01H</p><p>  INT 16H;查詢

80、是否有鍵按下</p><p>  JZ LP;沒有鍵按下,繼續(xù)循環(huán)</p><p><b>  MOV AH,0</b></p><p>  INT 16H;有鍵按下,讀鍵值</p><p>  CMP AL,'E'</p><p>  JZ LPQ;退出鍵按下,轉退出程序&l

81、t;/p><p>  CMP AL,'B'</p><p>  JZ LPB;開始鍵按下,轉置標志程序</p><p>  CMP AL,'P'</p><p>  JZ LPP;停止鍵按下,轉清標志程序</p><p>  CMP AL,'S'

82、 </p><p>  JZ LPS;設置鍵按下轉設置子程序</p><p>  JMP LP;無操作鍵按下,轉循環(huán)程序</p><p>  LPS: LEA DX,MES_KP</p><p>  MOV AH,09H</p><p><b>  INT 21H</b></p>

83、;<p>  LEA DX,KEYBUF</p><p>  MOV AH,0AH</p><p><b>  INT 21H</b></p><p>  CALL ZHUANG</p><p>  MOV KP,BX</p><p>  LEA DX,KONG</p>

84、<p>  MOV AH,09H</p><p><b>  INT 21H</b></p><p>  LEA DX,MES_KI</p><p>  MOV AH,09H</p><p><b>  INT 21H</b></p><p>  LEA DX,

85、KEYBUF</p><p>  MOV AH,0AH</p><p><b>  INT 21H</b></p><p>  CALL ZHUANG</p><p>  MOV KI,BX</p><p>  LEA DX,KONG</p><p>  MOV AH

86、,09H</p><p><b>  INT 21H</b></p><p>  JMP LLP00</p><p>  LPB:MOV FLAG1,1;置系統(tǒng)控制開始標志</p><p><b>  JMP LP</b></p><p>  LPP:MOV FLAG1,0

87、;置系統(tǒng)控制停止標志</p><p><b>  JMP LP</b></p><p>  LPQ:MOV AH,4CH</p><p><b>  INT 21H</b></p><p>  MAIN ENDP</p><p>  BFB PROC NEAR;進行顯示

88、預處理</p><p>  LEA DI,CHAO</p><p>  ADD DI,29</p><p>  MOV AX,CBUFF[0]</p><p>  ADD AL,30H</p><p><b>  INC DI</b></p><p>  MOV [D

89、I],AL</p><p>  MOV AX,CBUFF[2]</p><p>  ADD AL,30H</p><p><b>  INC DI</b></p><p>  MOV [DI],AL</p><p>  MOV AX,CBUFF[4]</p><p> 

90、 ADD AL,30H</p><p><b>  INC DI</b></p><p>  MOV [DI],AL</p><p>  MOV AL,'.'</p><p><b>  INC DI</b></p><p>  MOV [DI],AL&

91、lt;/p><p>  MOV AX,CBUFF[6]</p><p>  ADD AL,30H</p><p><b>  INC DI</b></p><p>  MOV [DI],AL</p><p><b>  RET</b></p><p>&

92、lt;b>  BFB ENDP</b></p><p>  ZHUANG PROC NEAR</p><p>  MOV BX,0;將從鍵盤接收的數據轉換成二進制數</p><p><b>  MOV DI,0</b></p><p>  ZLP: MOV AL,KEYNUM[DI]</

93、p><p>  AND AL,0FH</p><p><b>  MOV AH,0</b></p><p>  XCHG AX,BX</p><p><b>  MOV CX,10</b></p><p><b>  MUL CX</b></p>

94、<p><b>  ADD BX,AX</b></p><p><b>  INC DI</b></p><p><b>  MOV AX,DI</b></p><p>  CMP AL,COUNT</p><p><b>  JNZ ZLP</

95、b></p><p><b>  RET</b></p><p>  ZHUANG ENDP</p><p>  CT PROC NEAR</p><p>  MOV AX,R_SET</p><p>  MOV DX,DATAA</p><p>  SUB AX,

96、DX;AX等于EK</p><p><b>  MOV EK,Ax</b></p><p><b>  MUL KP</b></p><p>  MOV OUTDA,AH</p><p><b>  RET</b></p><p><b>  

97、CT ENDP</b></p><p>  CT1 PROC NEAR</p><p>  MOV DX,DATAA</p><p>  MOV AX,R_SET</p><p><b>  CMP AX,DX</b></p><p><b>  JB CTFU</b&

98、gt;</p><p><b>  SUB AX,DX</b></p><p><b>  MOV EK,AX</b></p><p>  MUL KP;DX:AX中存積</p><p>  ;標度變換 </p><p>  MOV CX,100</p>

99、;<p><b>  DIV CX</b></p><p><b>  CMP DX,6</b></p><p><b>  JB BTOD11</b></p><p><b>  INC AX</b></p><p>  BTOD11:

100、 MOV CX,255</p><p><b>  MUL CX </b></p><p>  MOV CX,100</p><p><b>  DIV CX</b></p><p><b>  CMP DX,51</b></p><p>  JB

101、BTOD10</p><p><b>  INC AX</b></p><p>  BTOD10: MOV BL,80H</p><p><b>  SUB BL,AL</b></p><p>  JMP OUTDAOUT</p><p>  CTFU: SUB

102、DX,AX</p><p><b>  MOV AX,DX</b></p><p><b>  MUL KP</b></p><p>  MOV CX,255</p><p><b>  MUL CX </b></p><p>  MOV CX,100&

103、lt;/p><p><b>  DIV CX</b></p><p><b>  CMP DX,6</b></p><p>  JB BTOD111</p><p><b>  INC AX</b></p><p>  BTOD111: MOV CX,10

104、0</p><p><b>  DIV CX</b></p><p><b>  CMP DX,51</b></p><p>  JB BTOD110</p><p><b>  INC AX</b></p><p>  BTOD110: MOV B

105、L,80H</p><p><b>  ADD BL,AL</b></p><p>  OUTDAOUT: MOV OUTDA,BL</p><p><b>  RET</b></p><p><b>  CT1 ENDP</b></p><p>  

106、POINT PROC NEAR</p><p>  MOV AX,DATAA</p><p>  ADD AX,5000</p><p><b>  CWD</b></p><p><b>  MOV CX,25</b></p><p><b>  DIV CX&l

107、t;/b></p><p>  MOV DX,465</p><p>  SUB DX,AX;計算縱坐標值</p><p>  MOV CX,X_P;計算橫坐標值</p><p><b>  INC X_P</b></p><p>  CMP X_P,640</p><p

108、>  JNZ POINT0</p><p>  MOV X_P,10</p><p><b>  JMP LLP00</b></p><p>  POINT0:MOV AH,0CH;在屏幕上描點</p><p>  MOV AL,14 </p><p><b>  MOV BH,

109、0</b></p><p><b>  INT 10H</b></p><p><b>  RET</b></p><p>  POINT ENDP</p><p>  TT PROC NEAR;在屏幕上畫坐標</p><p>  MOV AH,0;置屏幕顯示模

110、式</p><p>  MOV AL,12H</p><p><b>  INT 10H</b></p><p><b>  MOV BH,0</b></p><p><b>  MOV BL,0</b></p><p><b>  INT 1

111、0H</b></p><p>  MOV CX,10;畫Y軸坐標</p><p>  MOV DX,470</p><p>  MOV AH,0CH</p><p>  YTT:MOV AL,02</p><p><b>  INT 10H</b></p><p&g

112、t;<b>  DEC DX</b></p><p><b>  CMP DX,55</b></p><p><b>  JNZ YTT</b></p><p>  MOV DX,265;畫X軸坐標</p><p>  XTT:INT 10H</p><p&

113、gt;<b>  INC CX</b></p><p>  CMP CX,610</p><p><b>  JNZ XTT</b></p><p>  MOV CX,607;畫X軸坐標箭頭</p><p>  MOV DX,262</p><p>  UPX:INT 10H

114、</p><p><b>  INC DX</b></p><p><b>  INC CX</b></p><p>  CMP CX,610</p><p><b>  JNZ UPX</b></p><p>  DOWNX:INT 10H</p

115、><p><b>  DEC CX</b></p><p><b>  INC DX</b></p><p>  CMP CX,606</p><p><b>  JNZ DOWNX</b></p><p>  MOV CX,7;畫Y軸坐標箭頭</p&

116、gt;<p><b>  MOV DX,58</b></p><p>  UPY: INT 10H</p><p><b>  INC CX</b></p><p><b>  DEC DX</b></p><p><b>  CMP CX,10<

117、/b></p><p><b>  JNZ UPY</b></p><p>  DOWNY:INT 10H;在Y軸上做標志 </p><p><b>  INC CX</b></p><p><b>  INC DX</b></p><p><

118、;b>  CMP CX,14</b></p><p><b>  JNZ DOWNY</b></p><p><b>  MOV DX,65</b></p><p><b>  MOV CX,11</b></p><p>  MARK:INT 10H;在X軸上

119、做標志</p><p><b>  ADD DX,40</b></p><p>  CMP DX,505</p><p><b>  JNZ MARK</b></p><p>  MOV DX,264</p><p><b>  MOV CX,10</b>

120、;</p><p>  MARK1:INT 10H</p><p><b>  ADD CX,40</b></p><p>  CMP CX,650</p><p><b>  JNZ MARK1</b></p><p>  MOV BX,000FH</p>&

121、lt;p>  MOV BP,SEG MESS0</p><p><b>  MOV ES,BP</b></p><p>  MOV BP,OFFSET MESS0</p><p><b>  MOV DL,02</b></p><p><b>  MOV DH,4</b>

122、</p><p>  MOV BL,1FH</p><p><b>  MOV AL,0</b></p><p>  MOV AH,13H</p><p>  MOV CX,07H</p><p><b>  INT 10H</b></p><p> 

123、 MOV BP,OFFSET MESS1</p><p><b>  MOV DL,02</b></p><p><b>  MOV DH,29</b></p><p>  MOV BL,1FH</p><p><b>  MOV AL,0</b></p><

124、;p>  MOV AH,13H</p><p><b>  MOV CX,07</b></p><p><b>  INT 10H</b></p><p><b>  RET</b></p><p><b>  TT ENDP</b></p

125、><p>  SAMP0 PROC NEAR;讀A/D轉換結果</p><p><b>  PUSH CX</b></p><p>  MOV DX,CH_PORT;通道選擇端口地址</p><p>  MOV AL,CH_NUM</p><p>  ADD AL,40H;選擇通道0</p&g

126、t;<p><b>  OUT DX,AL</b></p><p>  MOV CX,100H</p><p>  LP1:LOOP LP1;延時</p><p>  AND AL,0FH;給AD574送啟動信號脈沖(低電平)</p><p><b>  OUT DX,AL</b>&l

127、t;/p><p><b>  MOV CX,10</b></p><p>  LP2:LOOP LP2</p><p>  ADD AL,40H;給AD574送啟動信號脈沖(高電平)</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,L_P

128、ORT</p><p>  LP3:IN AL,DX</p><p>  TEST AL,01H;測STS信號</p><p>  JNZ LP3;未轉換完,繼續(xù)查詢</p><p>  MOV DX,H_PORT</p><p>  IN AL,DX;讀高8位</p><p><b&

129、gt;  MOV AH,AL</b></p><p><b>  INC DX</b></p><p>  IN AL,DX;讀低4位</p><p><b>  SHR AX,4</b></p><p>  MOV BUFF[DI],AX</p><p>&l

130、t;b>  INC DI</b></p><p><b>  INC DI</b></p><p><b>  POP CX</b></p><p><b>  RET</b></p><p>  SAMP0 ENDP</p><p>

131、  SAMP1 PROC NEAR;對A/D轉換結果排序</p><p><b>  MOV BX,19</b></p><p><b>  MOV CX,BX</b></p><p>  SAMP10:MOV SI,38</p><p>  SAMP11:MOV AX,BUFF[SI]</p

132、><p>  CMP AX,BUFF[SI-2]</p><p><b>  JAE UNCH</b></p><p>  EXCH:XCHG BUFF[SI-2],AX</p><p>  MOV BUFF[SI],AX</p><p>  UNCH:DEC SI</p><p&

133、gt;<b>  DEC SI</b></p><p>  LOOP SAMP11</p><p><b>  DEC BX</b></p><p><b>  MOV CX,BX</b></p><p><b>  CMP BX,0</b></p&

134、gt;<p>  JNE SAMP10</p><p><b>  RET</b></p><p>  SAMP1 ENDP</p><p>  SAMP2 PROC NEAR;求平均值</p><p><b>  MOV CX,16</b></p><p&g

135、t;<b>  MOV AX,0</b></p><p><b>  MOV SI,4</b></p><p>  SAMP20:MOV BX,BUFF[SI]</p><p><b>  ADD AX,BX</b></p><p><b>  INC SI</

136、b></p><p><b>  INC SI</b></p><p>  LOOP SAMP20</p><p><b>  RET</b></p><p>  SAMP2 ENDP</p><p>  BTOD PROC NEAR;標度變換</p>

137、;<p><b>  MOV CL,4</b></p><p><b>  SHR AX,CL</b></p><p>  MOV CX,2442</p><p><b>  MUL CX</b></p><p>  MOV CX,1000</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論