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

正文內(nèi)容

集散系統(tǒng)的設(shè)計與模擬-資料下載頁

2024-12-03 16:46本頁面

【導(dǎo)讀】[摘要]該設(shè)計是一個基于串行通信的集散控制系統(tǒng)。該集散控制系統(tǒng)由PC與2. 兩片AT89C52單片機作為下位機,用來接收上位機指令并實現(xiàn)相應(yīng)。通信基于USB通用串行總線標(biāo)準(zhǔn),線路由USB-hub中轉(zhuǎn)擴展。PC和單片機之間主從式半雙工通信。本文詳細討論了硬件電路的設(shè)計方法、主。方法以及開發(fā)環(huán)境keiluVision2、Visual的使用方法,通過以上各種方法,

  

【正文】 個系統(tǒng)設(shè)計過程中我受益匪淺,感慨頗豐,由于篇幅限制, 現(xiàn)簡要概述如下 : 剛開始做系統(tǒng),我是一頭霧水,不知從何下手,我借了數(shù)本關(guān)于串行通信、VB和單片機的書,看了大概有一個多月,看完之后合上課本,腦中一片空白。于是我準(zhǔn)備做硬件,邊做邊學(xué)。購置了兩片單片機,開始一個功能一個功能的編程,突然發(fā)現(xiàn)之前在書本上看的知識幾乎一點沒用到,后悔自己沒有早點下手實踐。 單片機部分很快就熟悉了,購買的最小系統(tǒng)學(xué)習(xí)版上的所有資源我都可以靈活利用,最后將這些模塊一個一個的集成在一塊,就基本構(gòu)成了現(xiàn)在的下位機驅(qū)動系統(tǒng)。 在單片機的編程中,我最大的收獲就是學(xué)會了如何使用標(biāo)志變量,也就是編程中出現(xiàn)的 flag變量,用該變量可以觸發(fā)某段程序,也可以關(guān)閉某段程序。這種思想貫穿了整個程序,使整個程序得以相互交織,相互聯(lián)系。還有一個難點就是單片機的數(shù)據(jù)發(fā)送,因為系統(tǒng)是主從系統(tǒng),從機無法主動向主機發(fā)送數(shù)據(jù),必須等待主機發(fā)送“允許從機發(fā)送數(shù)據(jù)指令”,這樣就有一個問題,主機發(fā)送了“允許指令”,從機發(fā)送是需要時間的,怎么才能保證從機發(fā)送的數(shù)據(jù)被主機準(zhǔn)確接收呢?本來我設(shè)計的是讓從機在 main函數(shù)中一直發(fā)送,從而主機可以隨時接收都有數(shù)據(jù)在緩存中,但這有造成了兩大問題:一是如何讓主機從這一大堆連續(xù)數(shù)據(jù)中按順序挑出從 機數(shù)據(jù),另一問題是從機一直在發(fā)送,發(fā)送的時候是要關(guān)中斷的,如果這時主機發(fā)送命令,從機是無法接收到的。解決這兩個問題,我采用了主機延遲接收和從機在串口中斷中發(fā)送數(shù)據(jù)的方式。 為了實現(xiàn)主從機通信,必須設(shè)計通信協(xié)議,我選擇了通用的通信格式:9600bps波特率、 10位一幀。我設(shè)計了一種獨特的指令模式,那就是帶有數(shù)據(jù)長度的數(shù)據(jù)塊,主機發(fā)送的指令帶有 0x01,表示這發(fā)送的是數(shù)據(jù)塊,然后下一幀是數(shù)據(jù)長度 data_length,下幾幀是數(shù)據(jù)塊,從機接收要判斷是否 0x01,若是則接收長度 data_length的數(shù)據(jù)塊,存入 某暫存數(shù)組中,接收完畢準(zhǔn)備接收下一個指令,這樣主機就可以發(fā)送任意長度的數(shù)據(jù)了。我看了某些教材寫的是格式固定的指令模式。即數(shù)據(jù)塊不能多不能少,就是這么些幀。數(shù)據(jù)少時就要發(fā)送一些空數(shù)據(jù)來填補,造成多余通信,既浪費時間又浪費通信資源;數(shù)據(jù)多時又分批發(fā)送,可能會造成數(shù)據(jù)接收混亂。我的這種帶數(shù)據(jù)長度的數(shù)據(jù)塊發(fā)送模式,可以說本設(shè)計的一大亮點。 至于主從機通信的硬件鋪設(shè),一定要從實際出發(fā)。我本來打算用 RS485總線來實現(xiàn),但是需要很多芯片,諸如 232/485轉(zhuǎn)換芯片、 MAX485芯片,相應(yīng)的資金煙臺 大學(xué)畢業(yè)論文(設(shè)計) 20 就會增加。主從機的協(xié)議也會 增加一部分篩選過程,因為這樣設(shè)計出來的系統(tǒng)采用廣播方式,主機發(fā)送到的數(shù)據(jù)從機都可以接收到,為了甄別從機,主機首先要發(fā)送一個地址片選標(biāo)志,從機接收該標(biāo)志后對比篩選,相應(yīng)的從機準(zhǔn)備接收數(shù)據(jù),其他從機繼續(xù)等待地址標(biāo)志,這樣設(shè)計又給從機驅(qū)動增加了很多負擔(dān)。本設(shè)計要求的通信距離不是很遠,從機數(shù)量僅有兩片,而且最重要的是我購置的單片機集成了 PL2303芯片,該芯片可以把 USB信號和 RS232芯片進行相互轉(zhuǎn)換,所以我們的通信采用 USB線路,中間利用 USBHUB擴展接口。經(jīng)過以上設(shè)計,主從機就可以順利通信了。 用 VB編制 上位機的界面是重頭戲, VB很好上手,功能也很強大,過去學(xué)習(xí)C的時候一直面對的不是藍屏就是黑屏,連個窗口也沒有,鼠標(biāo)也不能用,界面十分丑陋,使用十分不方便,現(xiàn)在突然面對對象,感覺特別新鮮,制作完成之后還可以生成 .exe文件或者程序安裝包,在其他任何一部電腦上均可安裝執(zhí)行。 VB的控件十分豐富,本設(shè)計僅僅用了一個 Msm控件就解決了所有串行通信的問題。剛開始看串行通信的教材,看到碼制傳輸轉(zhuǎn)換那一塊幾乎不知所云,上機之后才發(fā)現(xiàn),這都不能算是問題,一天編程勝我讀十年書。 VB和單片機不一樣,VB是鍵盤和鼠標(biāo)觸發(fā)的事 件進行驅(qū)動的,而要進行數(shù)據(jù)采集的時候我考慮過兩個方法,一是采用 OnComm事件觸發(fā),一是采用 Timer定時器觸發(fā),經(jīng)過實戰(zhàn)檢驗,我還是選擇了 Timer定時器觸發(fā)。還有圖相框繪制曲線圖這一塊,我是嚴(yán)格模仿教材上的程序編制的,如果讓我自己琢磨,估計漏洞百出,耗時巨大!站在前人的肩膀上,可以少走很多彎路。 (二) 不足 該系統(tǒng)還存在著很大的不足,主要體現(xiàn)在以下幾個方面: 由于時間原因,系統(tǒng)硬件方面直接購置了現(xiàn)成的 51學(xué)習(xí)版和 USB集線器,我主要的精力全部放在了軟件上,對硬件很不熟悉。以后有時間可以自行焊制一塊51最小系統(tǒng) ,加深對硬件的理解。 系統(tǒng)用鍵值數(shù)據(jù)來模擬溫度、壓力等物理量,沒有真正的實際采集處理這些物理量,導(dǎo)致系統(tǒng)不直觀不實用。以后若是資源充足,可以采用 ds18b20對溫度進行采集,對其他物理量可以采用一些傳感器和 AD/DA芯片進行采集。 系統(tǒng)采用 USB通信,通信長度太短,從機數(shù)量不多,可以采用 RS485進行通信來彌補這一塊的缺失。 主機采集上來的數(shù)據(jù)不能存儲和打印,關(guān)閉程序就會導(dǎo)致數(shù)據(jù)丟失。存儲可以生成 .dat文件或者寫入數(shù)據(jù)庫,打印可以用 VB設(shè)計器生成報表。 該系統(tǒng)通信方式有一些可以改進升級之處,比如從機可以 主動向主機發(fā)送數(shù)據(jù),不必等待主機發(fā)送“允許發(fā)送數(shù)據(jù)指令”;還有就是兩從機之間也可以進行通信。這一塊可以用主機的軟件編程來實現(xiàn),首先應(yīng)采用 OnComm事件觸發(fā),接收從機發(fā)送的數(shù)據(jù),比較并執(zhí)行相應(yīng)功能。這里需要重新設(shè)計通信協(xié)議。 煙臺 大學(xué)畢業(yè)論文(設(shè)計) 21 致謝 四年大學(xué)生活即將結(jié)束,掀掉這一頁,我們又要去描繪新的一頁。在這個收尾處,我認認真真地完成了一次畢業(yè)設(shè)計,算是為自己的大學(xué)生涯畫上了一個完美的句號。回想這四年的大學(xué)學(xué)習(xí)生活,不算完美,但很充實;沒留下多少驕傲,但留下了很多回憶。感謝那些一塊學(xué)習(xí)一塊生活的同學(xué),感謝那些教授我知識、教育我做人的老師們,謝謝你們陪伴和見證我長大,謝謝你們給我溫暖給我知識,謝謝你們讓我走過一段美好快樂的大學(xué)生活。 在這次畢業(yè)設(shè)計過程中,首先要感謝王培進老師的全力支持、熱心關(guān)懷和悉心教導(dǎo)。他公務(wù)繁忙,卻抽出很多時間來實驗室對我們進行指導(dǎo)和關(guān)切,我經(jīng)常問一些很幼稚很基本的問題,他總是很耐心很細致的講給我聽,這讓我很是感動。還有劉老師和孫老師,他們一直都在關(guān)注著我的設(shè)計進度,一直鼓勵我大膽設(shè)計,催促我不要偷懶,對我起了很好的激勵和鞭策作用,讓我有干勁有動力去克服困難和接受挑戰(zhàn),感謝他們。還要感謝在實驗室陪我一起 設(shè)計的戰(zhàn)友們,在我遇到瓶頸的時候,我首先想到的總是這些同學(xué)們,他們給了我很多靈感和技術(shù)上的幫助,謝謝他們。 煙臺 大學(xué)畢業(yè)論文(設(shè)計) 22 參考文獻 [1] 百度空間 .串行通信 [ EB/ OL ][ 20210716].D4%B5_%C4%E3/blog/item/ [2] 百度百科 . USB HUB[ EB/ OL ][ 20210221]. [3] 中文資料 [ EB/ OL ][2021216]. ?tid=54203amp。goto=lastpost [4] 趙建領(lǐng)編著 .51 系列單片機開發(fā)寶典 [M]. 北京:電子工業(yè)出版社, 2021 [5] 何立民編著 .單片機高級教程 應(yīng)用與設(shè)計 [M].第二版 .北京 : 北京航空航天大學(xué)出版社, 2021 [6] 謝宜仁主編 .單片機實用技術(shù)問答 [M].北京:人民郵電出版社, 2021 [7] 晁陽編著 .單片機 MCS51 原理及應(yīng)用開發(fā)教程 [M].北京:清華大學(xué)出版社,2021 [8] 李朝青編著 .單片機原理及接口技術(shù) [M].北京 :北京航空航天大學(xué)出版社,2021 [9] 范逸之,陳立元編著 .Visual Basic 與 RS232 串行通信控制 [M].北京:清華大學(xué)出版社, 2021 [10] 戴仙金主編 .51單片機及其 C語言程序開發(fā)實例 [M]北京:清華大學(xué)出版社,2021 [11] 鄭海春,謝維成主編 .Visual Basic 編程及實例分析教程 [M].北京:清華大學(xué)出版社, 2021 煙臺 大學(xué)畢業(yè)論文(設(shè)計) 23 附錄 A 下位機程序 代碼 include include include define unchar unsigned char define unint unsigned int define shuma P0 //定義 P0口為數(shù)據(jù)口 sbit LED_0=P1^0。 sbit LED_1=P1^1。 sbit LED_2=P1^2。 sbit LED_3=P1^3。 sbit add=P2^0。 //加按鍵定義 sbit dec=P2^1。 unchar code table[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0x86,0x8e,0x82,0X7f}。 unchar ctlstart_flag=0,controls_flag=0,data_length=0,T_flag=0,L_flag=0,D_flag=0,J_flag=0。 unchar tt,i,j,led=1,ii=0。 unchar s0[]={It39。s ok!!}。 unchar len_s0=sizeof(s0)。 unchar a0,a1,a2,a3,a4,a5,b0,b1,b2,b3。 static unchar a[20]。 int temp_shi,temp_fen。 void m_init()。 void dian_zhen()。 void led_tube()。 void display(unchar d0,unchar d1,unchar d2,unchar d3)。 void delay(unchar z)。 void main() { m_init()。 while(1) { dian_zhen()。 led_tube()。 } } void m_init() { TMOD=0x21。 //設(shè)置 T1為工作方式 2 TH1=0xfd。 //裝入初值,比特率為 9600bps 煙臺 大學(xué)畢業(yè)論文(設(shè)計) 24 TL1=0xfd。 TR1=1。 //開啟 T1 REN=1。 //接收允許 SM0=0。 //方式 1 SM1=1。 EA=1。 ES=1。 PS=1。 TH0=(6553650000)/256。 TL0=(6553650000)%256。 ET0=1。 TR0=1。 P0=0xff。 T_flag=0。J_flag=0。 } void dian_zhen() { if(D_flag==1) { for(i=0。i8。i++) { if(D_flag==0) break。 P0=a[i]。 P2=~(1i)。 delay(1)。 } } } void led_tube() { if(T_flag==1) { display(a0,a1,a2,a3)。 if(tt==0) { P0=0x7f。 LED_1=0。 for(i=20。i0。i)。 LED_1=1。 } } if(J_flag==1) { 煙臺 大學(xué)畢業(yè)論文(設(shè)計) 25 if(add==0) { delay(5)。 temp_fen++。 if(temp_fen99) { temp_shi++。 temp_fen=0。 if(temp_shi99) {temp_shi=0。temp_fen=0。} } } else if(dec==0) { delay(5)。 temp_fen。 if(temp_fen0) { temp_shi。 temp_fen=99。 if(temp_shi0) {temp_shi=99。temp_fen=99。} } } b0=temp_shi/10。 b1=temp_shi%10。 b2=temp_fen/10。 b3=temp_fen%10。 display(b0,b1,b2,b3)。 } } void display(unchar d0,unchar d1,unchar d2,unchar d3) { shuma=table[d0]。 LED_0=0。 delay(1)。 LED_0=1。 shuma=table[d1]。 LED_1=0。 delay(1)。 LED_1=1。 shuma=table[d2]。 LED_2=0。 煙臺 大學(xué)畢業(yè)論文(設(shè)計) 26 delay(1)。 LED_2=1。 shuma=table[d3]。 LED_3=0。 delay(1)。 LED_3=1。 } void timer0() interrup
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1