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

正文內(nèi)容

can總線的溫室控制系統(tǒng)設(shè)計(編輯修改稿)

2024-08-26 00:13 本頁面
 

【文章內(nèi)容簡介】 機存儲器)指令,這樣才能對DS18B20與微處理器間采用串行數(shù)據(jù)傳送,因此,在對DS18B20進行讀寫編程時,必須嚴格地保證讀寫時序,否則,將無法正確讀取測溫結(jié)果。2)在DS18B20測溫程序設(shè)計中,向DS18B20發(fā)出溫度轉(zhuǎn)換命令后,程序總要等待DS18B20的返回信號,一旦某個DS18B20接觸不好或斷線,當(dāng)程序讀該DS18B20時,將沒有返回信號,程序進入死循環(huán)。4. 系統(tǒng)下位機軟件設(shè)計調(diào)試程序代碼編寫完成以后再開發(fā)環(huán)境中編譯看是否通過,如檢查到有錯誤編譯系統(tǒng)就會報錯,然后再根據(jù)提示進行修改,至沒有錯誤時。將此文件燒錄到STC89C52RC單片機中,連接好硬件電路,給系統(tǒng)上電。觀察四位共陰極數(shù)碼管上面是否顯示出我們想要顯示的溫度數(shù)據(jù),如不是再修改程序代碼,重新編譯,重新燒錄程序,觀察結(jié)果……此過程重復(fù)進行,直到所采集溫度數(shù)據(jù)能在數(shù)碼管上面穩(wěn)定顯示并且準確度較高。此模塊疏通后再加入串行通信部分代碼,首先用串口助手測試數(shù)據(jù)的收發(fā),看單片機與上位機之間能否正常收發(fā)數(shù)據(jù),如不能修改代碼,再編譯、燒錄、觀察,直到數(shù)據(jù)收發(fā)正常為止。如果測試通信沒有問題,我們再將下位機系統(tǒng)連接好,通過串口發(fā)送命令(比如采集1號節(jié)點溫度值),看看串口助手能否接收到數(shù)據(jù)并且正確。如果不行的話,就查看CAN轉(zhuǎn)232節(jié)點的程序代碼和CAN主節(jié)點與從節(jié)點之間通信的相關(guān)代碼并進行修改。另外還有個問題需要注意就是保證CAN節(jié)點之間的通信波特率一致和CAN轉(zhuǎn)232端波特率設(shè)置與上位機端波特率設(shè)置一致。就這樣反復(fù)調(diào)試程序,直到下位機系統(tǒng)能正確的按照我們的意愿對某個按鍵進行響應(yīng)為止。此三個模塊都疏通之后,下位機的軟件設(shè)計工作也就基本完成,接下來要做的就是簡化、優(yōu)化程序代碼、整理相關(guān)文檔。第五章 上位機程序設(shè)計上位機程序設(shè)計主要包括Visual Bisic界面設(shè)計和代碼編寫以及Visual Basic程序設(shè)計中問題處理。要求上位機程序能夠完成與下位機的基本的通信的功能,設(shè)計完成后可以用來顯示下位機的測量數(shù)據(jù)以及發(fā)送控制命令。1. Visual Bisic界面設(shè)計Visual Bisic界面設(shè)計即為系統(tǒng)上位機人機界面設(shè)計。設(shè)計時針對系統(tǒng)所要實現(xiàn)的功能添加一些相應(yīng)的控件,如Label控件、PictureBox控件、CommandButton控件、Text控件、Shape控件Timer控件、OptionButton控件以及MSComm控件。其中與通信相關(guān)的控件為MSComm控件要求在實現(xiàn)系統(tǒng)要求的基礎(chǔ)上盡量將界面設(shè)計的美觀得體。界面設(shè)計完成后運行效果如圖51所示。圖51 系統(tǒng)上位機窗體設(shè)計效果圖2. 代碼編寫代碼編寫就是針對窗體中所加的控件的屬性和行為進行設(shè)置和控制,這部分內(nèi)容在VB工程的代碼窗口中。程序代碼編寫可以分為幾個主要的部分:窗體加載事件、定時器事件(定時讀取數(shù)據(jù)或者讀取系統(tǒng)時間以及用來延時等)MSComm控件的OnComm事件、畫動態(tài)鐘表程序等。 窗體加載事件窗體加載事件是程序運行時首先執(zhí)行的,里面要包括一些提示信息和一些控件或者變量的初始化信息,當(dāng)然有時候這些信息通過設(shè)置控件屬性設(shè)置比較好。窗體加載事件的程序代碼如下: 定時器事件設(shè)計中共用到5個定時器,定時器Timer1用來定時讀取下位機發(fā)送過來的數(shù)據(jù)(此處不再附錄代碼),Timer2用來定時將PictureBox控件中的Label控件由右向左移動以實現(xiàn)標題欄由右向左移動效果,Timer3用來讀取系統(tǒng)時間為動態(tài)走針鐘表提供時間基準,Timer4和Timer5分別用來模擬兩個電動機的動態(tài)仿真通過定時畫扇形來實現(xiàn)(限于篇幅僅附錄其中Timer4事件代碼)。相關(guān)程序代碼如下: MSComm控件的OnComm事件MSComm控件的OnComm事件在使用VB進行通信設(shè)計中是至關(guān)重要的,此處我們只用其中的一種情況,即Case EvReceive。當(dāng)接收緩沖區(qū)中數(shù)據(jù)個數(shù)與MSComm控件的Rthreshold屬性設(shè)定的一樣時觸發(fā)該事件。在該事件中不僅要完成數(shù)據(jù)接收還要進行數(shù)據(jù)處理,如將接收到的數(shù)據(jù)在相應(yīng)的控件中進行顯示,相關(guān)程序代碼見附錄四。 畫動態(tài)走針時鐘為了時使界面看上去更加美觀這里顯示當(dāng)前系統(tǒng)時間時采用的是走針式時鐘。用代碼實現(xiàn)時可以將其分為畫時鐘的表盤和畫走針兩個部分。畫走針是和時間相關(guān)的,已經(jīng)在定時器事件中的Timer3處提到。所以,這里就只是考慮畫時鐘表盤了,相關(guān)程序代碼如下:3. 系統(tǒng)上位機軟件設(shè)計調(diào)試系統(tǒng)上位機軟件設(shè)計調(diào)試只是檢查程序運行時有沒有語法錯誤和窗體上面的控件能否按照要求實現(xiàn)其功能或者顯示其效果。調(diào)試方法是:按照以上窗體設(shè)計和代碼設(shè)計,程序單步運行,直到整個程序都仿真運行完成之后,看窗體的反應(yīng)是否和代碼的控制相對應(yīng),二者結(jié)合所實現(xiàn)的人機操作界面能否達到要求。如果不能則修改其中代碼或者修改窗體的控件的相關(guān)參數(shù),直到能使系統(tǒng)穩(wěn)定運行為止。然后再將上位機與下位機用通信線連接起來,首先編寫簡單的下位機程序(可以使單字節(jié)或者雙字節(jié)數(shù)據(jù)的收發(fā))來進行上位機與下位機之間的通信狀況,直到測試結(jié)果為,上位機接收到并顯示的數(shù)據(jù)正好就是下位機上傳的數(shù)據(jù)和下位機接收到的數(shù)據(jù)正好是上位機發(fā)送的數(shù)據(jù)為止,此間一定要注意上位機上面的端口號的選擇和波特率的設(shè)置,要保證上位機和下位機的通信方式保持一致。4. 系統(tǒng)上位機軟件設(shè)計時常見問題1)上位機顯示的數(shù)據(jù)與預(yù)想的效果不一致,或者出現(xiàn)嚴重錯誤。在進行上位機和下位機之間的通信時,我們首先要保證通信線已連接好,并且串口號選擇正確和波特率保持一致,數(shù)據(jù)位、停止位,奇偶校驗這些保持一致。在此基礎(chǔ)上出現(xiàn)上述問題時,我們先檢查下位機相關(guān)通信的程序代碼,看是否有錯誤,然后再檢查是否上位機發(fā)送數(shù)據(jù)的格式與上位機接收和顯示數(shù)據(jù)的格式一致。2)編寫上位機代碼時,對某些控件的屬性或者方法不了解。在VB中編寫程序代碼時,我們遇到上述問題時,可以從有關(guān)VB的MSDN中獲取幫助,里面給我們提供了相關(guān)控件的屬性或者方法以及相應(yīng)的參考程序示例。如果沒有安裝MSDN系統(tǒng),我們也可以從有關(guān)VB程序設(shè)計的教材中獲取解決問題的方法,這里尤其要特別提出的時,遇到問題時,不防到網(wǎng)上查找下相關(guān)資料。網(wǎng)上的資料很多,這給我們提取出對我們用的資料增加了難度,但是它確是特別方便的,其中的資料有時候能給我們解決問題的直接答案,有時候是給我們指了一條如何解決問題的思路。結(jié) 論本設(shè)計將CAN 總線技術(shù)、溫度傳感器DS18B20 及STC89C52RC單片機應(yīng)用于溫室控制系統(tǒng)中,文章重點介紹了基于主從式CAN 現(xiàn)場總線獨立控制器SAJ1000和總線收發(fā)器PCA82C250 的智能溫度采集模塊的硬件設(shè)計,并簡要介紹了CAN節(jié)點軟件系統(tǒng)的設(shè)計思路。實踐表明,SJA1000是一種較好的CAN總線控制器件,它的抗干擾性能優(yōu)良,通信速率較高,電路也比較簡單。在PeliCAN模式下,其識別碼達29位,因而可滿足各種應(yīng)用場合。在自動化控制系統(tǒng)中,合理安排這29位識別碼可以使許多問題得以簡化。PeliCAN模式增加的各種功能,大大地方便了通信的調(diào)試。DALLAS公司的數(shù)字單總線溫度傳感器DS18B20是目前最新的測溫器件,以其線路簡單、硬件開銷少、成本低廉,集溫度測量、A/D轉(zhuǎn)換于一體,具有單總線結(jié)構(gòu),數(shù)字量輸出,直接與微機接口等優(yōu)點,即可用它組成單路溫度測量裝置,也可用它組成多路溫度測量裝置,有著無可比擬的應(yīng)用前景。本設(shè)計采用控制器STC89C52RC與DS18B20構(gòu)成的溫度采集系統(tǒng),經(jīng)采集測試,證實可以實現(xiàn)準確測量,且系統(tǒng)集成度較高,滿足最簡的要求。 該溫度采集模塊不僅能夠更方便地獲取通信數(shù)據(jù),并把數(shù)據(jù)通過CAN現(xiàn)場總線發(fā)送到PC機,而且系統(tǒng)結(jié)構(gòu)簡潔、擴展方便、抗干擾能力強、可靠性高、實時響應(yīng)性好。參考文獻[1] [M].北京:北京航空航天大學(xué)出版社,2003.[2] [M].北京:北京航空航天大學(xué)出版社,2003.[3] [M].北京:北京航空航天大學(xué)出版社,1996.[4] [J].微計算機信息,1999,6.[5] [M].北京:北京航空航天大學(xué)出版社,1993.[6] [J].電子技術(shù)應(yīng)用,2000.[7] 趙景波,——Protel 99 SE 高級應(yīng)用[M].北京:人民郵電出版社,2012. [8] [M].北京:北京航空航天大學(xué)出版社,2007.[9] 王化祥,[M].北京:天津大學(xué)出版社,2007.[10] 范逸之, Basic與RS232串行通信控制(最新版)[M].北京:清華大學(xué)出版社,2002.[11] 趙亮,[M].北京:人民郵電出版社,2003.致 謝光陰似箭,日月如梭。四年的讀書生活伴隨著我們畢業(yè)設(shè)計的完成將在這個季節(jié)畫上一個句號。在這次畢業(yè)設(shè)計中,我要感謝很多給予我過幫助的老師和同學(xué)。其中我要特別感謝的是我的專業(yè)課老師也是我的畢業(yè)論文的指導(dǎo)老師張明海老師。從最初的定題,到資料收集,到系統(tǒng)設(shè)計,到論文寫作,到最終的論文定稿,張老師都是給我耐心的指導(dǎo)和無私的幫助。盡管他現(xiàn)在的課程任務(wù)很多,但是總能抽出時間來為跟著他做畢業(yè)設(shè)計的同學(xué)輔導(dǎo)。張老師不僅教會了我專業(yè)知識,還教會了我如何學(xué)習(xí),教會了我如何做人。在此向所有曾幫助過我的老師表示我由衷的謝意,并祝愿我的老師們培養(yǎng)出越來越多的優(yōu)秀人才,桃李滿天下!同時也非常感謝幫助過我的同學(xué)們,愿他們步入社會后工作順利,前程似錦!附錄一 1號CAN節(jié)點程序代碼include include include define uchar unsigned chardefine uint unsigned intunsigned char ser,shi,ge,xiao。unsigned int temp。// 存放溫度值unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8, 0x80,0x90,0x88, x83,0xc6,0xa1,0x86,0x8e }。unsigned char xdata *SJA_BCANAdr。unsigned char data RevceData[10]。unsigned char inbuf1[8]。sbit DS=P2^4。//定義DS18B20接口DS=P2^4sbit P2_0=P2^0。//數(shù)碼管位選sbit P2_1=P2^1。sbit P2_2=P2^2。//數(shù)碼管位選sbit P2_3=P2^3。sbit CS=P2^0。void init_serialm(void){ SCON=0x50。 TMOD|=0x20。 //定時器T1方式2定時 PCON|=0x80。 //波特率倍增 TH1=0xFA。 //波特率9600初始值 TL1=0xFA。 IE=0x90。 //開中斷總允許,開串行中斷 TR1= 1。 // 啟動定時器1}//向串口發(fā)送一個字符 void send_char_(unsigned char ch) { SBUF=ch。 while(!TI)。 TI=0。}void delay(uint count) //delay{ uint i。 while(count) { i=200。 while(i0) i。 count。 }}/*1.復(fù)位:對DS18B20操作之前,首先要將它復(fù)位。復(fù)位時序為:(1)主機將信號線置為低電平,時間為480~960μ S。(2)主機將信號線置為高電平,時間為15~60 μS。3)DS18B20發(fā)出60~240μS 的低電平作為應(yīng)答信號。主機收到此信 號后,才能對DS18820作其它操作。*/void dsreset(void) //send reset and initialization mand{ uint i。 //DS18B20初始化 DS=0。 i=103。 while(i0)i。 DS=1。 i=4。 while(i0)i。} /*讀操作:主機將信號線從高電平 拉低至低電平1μS以上,再使數(shù)據(jù)線 升為高電平,產(chǎn)生讀起始信號。從主機將信號線從高電平拉低至低電平起15~60μS的時間內(nèi)DS18820將數(shù)據(jù)放到信號線上,供主機讀取。從而完成了一個讀周期。在開始另一個讀周期前,必須有1μS以上的高電平恢復(fù)期。*/bit tmpreadbit(void) //read a bit 讀一位{ uint i。 bit dat。 DS=0。i++。 //i++ for delay 小延時一下 DS=1。i++。i++。 dat=DS。 i=8。while(i0)i。 return (dat)。} uchar tmpread(void) //read a byte date 讀一個字節(jié){ uchar i,j,dat。 dat=0。 for(i=1。i=8。i++) { j=tmpreadbit()。 dat=(j7)|(dat1)。//讀出的數(shù)據(jù)最低位在最前面,這樣一個字節(jié)在DAT里 } return(dat)。 //將一個字節(jié)數(shù)據(jù)返回}/*
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1