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

正文內(nèi)容

畢業(yè)論文基于pc機(jī)空調(diào)控制系統(tǒng)數(shù)據(jù)通信的設(shè)計(參考版)

2025-07-01 11:14本頁面
  

【正文】 /*接受地址與本機(jī)地址相同SM2置0準(zhǔn)備接受數(shù)據(jù)*/ signal=receive。/*當(dāng)SM2置1只有RB8為1才可接收到發(fā)來的地址數(shù)據(jù)*/ while(RI) { tmp1=receive()。 while(1) { SM2=1。} void main(void) {uchar tmp1,i。 tempercode[0]=tvalue%1000/100+0x30。tvalue=tvalue|a。tvalue=b。 a=ds1820rd()。 ds1820wr(0xcc)。ds1820wr(0x44)。 reset()。 wdata=1。 delay_18B20(10)。 DQ = wdataamp。 i0。}void ds1820wr(uchar wdata)/*向DS18B20寫一個字節(jié)數(shù)據(jù)*/{unsigned char i=0。 delay_18B20(10)。 DQ = 1。i){ dat=1。for (i=8。 } uchar ds1820rd()/*從DS18B20讀一個字節(jié)*/{ unsigned char i=0。 DQ=1。 DQ=0。}void reset(void)/*復(fù)位DS18B20*/{ DQ=1。 if(controlcode==K) led4=0。 if(receivecode[1]==C) led2=1。 if(receivecode[0]==G) led1=1。 return temp。 temp2=temp20x30。 temp1=temp10x30。 TI=0。i++) { SBUF=p[i]。 for(i=0。 return temp。 RI=0。 } uchar receive()/*單片機(jī)串口接受PC機(jī)發(fā)來的一個字節(jié)數(shù)據(jù)*/ { uchar temp。 SCON=0xd0。 TR1=1。 TH1=uchar temperature。/*存儲環(huán)境溫度緩沖區(qū)*/uchar receivecode[]={0x00,0x00,0x00,0x00}。uint tvalue。sbit led3=P1^2。sbit led1=P1^0。 temperi = 1j = Len() = TrueEnd SubPrivate Sub Command5_Click()‘通過計時器2將所有空調(diào)關(guān)閉 = 1 amp。 D amp。 windtype amp。 [1]. 張毅坤,陳善久,裘雪紅.單片機(jī)微型計算機(jī)原理及應(yīng)用[M]. 西安:電子科技大學(xué)出版社,1997.[2] .[M]. 北京:電子工業(yè)出版社.[3]. [M].北京:航空航天大學(xué)出版社,2007.[4]. [M].西安:電子科技大學(xué)出版社,2007.[5]. [M].長沙:湖南大學(xué)出版社,2004.[6].[M].北京:人民郵電出版社,2006.[7]. (第二版)[M].西安:電子科技大學(xué)出版社,2004.[8] .[M].北京:北京航空航天大學(xué)出版社,1993. [9]. [M].長沙:湖南大學(xué)出版社,2004.[10].[M].北京:北京航空航天大學(xué)出版社,2006.[11].白康生.Visual :清華大學(xué)出版社, 2006.[12].李長林.Visual :清華大學(xué)出版社, 2006.[13]. 王永軍、[M]. 北京:電子工業(yè)出版社,1999.[14]. 王松武,[M].國防工業(yè)出版社,2005年1月第1版.[15]. [M].西安:電子科技大學(xué)出版社,2007年6月第二版.[16]. [M].西安:電子科技大學(xué)出版社,2005年7月.[17] .[M].北京:北京航空航天大學(xué)出版設(shè),2000年9月.[18]. [M].北京:北京航空航天大學(xué)出版設(shè),2003年4月.[19]. [M].哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2003年2月.[20]. [M].北京:人民郵電出版社,2005年1月.[21]. 馬 壯,吳 錚,王永強(qiáng). 基于VB的PC 機(jī)與單片機(jī)串行通信系統(tǒng)研究與實現(xiàn)[J].唐山學(xué)院學(xué)報,2008,24(4):350355. 附錄A(上位機(jī)VB程序)Option Explicit ’遇到未經(jīng)聲明的變量名提出警告Dim controlcode, windtype, windtype2 ’定義變量Dim addr As Integer ’定義下位機(jī)地址Dim temperature As String ‘定義字符串變量,存儲下位機(jī)發(fā)來的溫度值Dim i, jDim temper As String‘定義字符串變量,表示PC機(jī)發(fā)給下位機(jī)的溫度值Private Sub Command1_Click()‘開啟計時器1對所有空調(diào)實行輪流監(jiān)控addr = 1 = TrueEnd SubPrivate Sub Command2_Click()‘關(guān)閉計時器停止監(jiān)控 = FalseEnd SubPrivate Sub Command3_Click()‘開啟計時器2將控制選定空調(diào)的命令字符串發(fā)送 = amp。一步一步總結(jié)和調(diào)試,最后還是成功完成了。為此專門從圖書館借了兩邊相關(guān)類型的書。該方法編程簡單、通信可靠,是一種有效的多機(jī)通信方法,但MSCOMM控件本身不能專門針對多機(jī)通信,所以此方法應(yīng)用還是有一定的范圍。本設(shè)計的主要思想是對每臺下位單片機(jī)都規(guī)定了明確的地址(編程時固定)。包括的控制命令主要有:任意房間空調(diào)的選擇;空調(diào)基本的開啟與關(guān)閉;風(fēng)類的選擇;溫度的任意設(shè)定;對每臺空調(diào)實行自動監(jiān)控與控制從而達(dá)到節(jié)能的目的;對所有空調(diào)一次性開啟與關(guān)閉?;旧辖鉀Q了這些問題。首先是確定設(shè)計方案,剛開始這個環(huán)節(jié)遇到了一些麻煩,因為設(shè)計一個控制界面要考慮好多可能的情況,而且要符合人為操作習(xí)慣,但又不能太過復(fù)雜和繁瑣。 /***得到溫度值的個位數(shù)字**/ 下位機(jī)通信程序流程下位機(jī)通信流程如圖6所示 圖 6 下位機(jī)通信流程圖 本系統(tǒng)主要研究的是數(shù)據(jù)通信,沒有對具體控制空調(diào)的控制器進(jìn)行研究,所以原理圖比較簡單,系統(tǒng)原理圖如下 圖 7 系統(tǒng)原理圖 附:二極管在電路中起隔離作用,考慮到單片機(jī)向PC機(jī)傳送數(shù)據(jù)時不受其它的單片機(jī)的影響,就在每個單片機(jī)的TXD端串入一個二極管。tempercode[0]=tvalue%1000/100+0x30。tvalue=tvalue|a。/**高字節(jié)**/tvalue=b。其中從DS18B20讀出來的溫度值處理函數(shù)如下:a=ds1820rd()。4. D 開啟電源命令字5. G 關(guān)閉電源命令字6. H 熱風(fēng)命令字7. C 冷風(fēng)命令字8. K 待機(jī)命令字9. R 解除待機(jī)恢復(fù)工作命令字10. addr 當(dāng)前下位機(jī)地址11. S 提示下位機(jī)發(fā)送當(dāng)前溫度命令字以上控制命令字都是人為規(guī)定,只需通信雙方識別即可。2. 一幀有效數(shù)據(jù)傳輸位數(shù)為8位。此時X=250 fosc= 通信協(xié)議 通信雙方實現(xiàn)數(shù)據(jù)收發(fā),必須有統(tǒng)一規(guī)定的通信協(xié)議。在模式1和模式3下,通信數(shù)據(jù)傳輸率是由定時器T1的溢出頻率來決定的,相應(yīng)的公式為:數(shù)據(jù)傳輸率=其中 定時器T1在模式2工作, X為定時器T1的初值。本系統(tǒng)采用模式3,通過控制SM2來區(qū)別PC機(jī)發(fā)送的是地址還是數(shù)據(jù),以此來實現(xiàn)多機(jī)通信 串口通信數(shù)據(jù)傳輸率在模式0下,串口數(shù)據(jù)傳輸率是固定的,它的值為單片機(jī)晶振頻率的1/12。其中模式1常用于單機(jī)通信,即點(diǎn)對點(diǎn)通信。在模式1,2,3中,串行通信數(shù)據(jù)傳輸率在SMOD為1時提高一倍。S BUF雖然只有一個入口地址(99H)但實際上對SBUF的讀寫并不是一個寄存器,這樣才可以使單片機(jī)能夠同時進(jìn)行收發(fā)工作。其中SUBF的功能是:當(dāng)發(fā)送數(shù)據(jù)時,先將數(shù)據(jù)移到累加器ACC,然后在從ACC移到SBUF中,然后通過TXD腳一位位發(fā)送出去。 51單片機(jī)串行口控制寄存器51單片機(jī)的串行口由串行口控制寄存器SCON,PCON。串行通信一般分為同步和異步兩種方式,51單片機(jī)通常采用的是異步通信,它通常以字符或者字節(jié)為單位,組成字符幀來傳送,它不需要信號線來傳送數(shù)據(jù)的時鐘,通信雙方均使用自己的時鐘來控制數(shù)據(jù)的發(fā)送和接收,不是同步進(jìn)行的。 = Mid$(, i, 1)/** **/ 單片機(jī)串口通信 AT89S51芯片內(nèi)部有一個全雙工的串行口,與外部數(shù)據(jù)交換僅需兩根口現(xiàn),分別為RXD和TXD。 controlcode amp。本系統(tǒng)用了兩個TextBox控件,一個為輸入溫度值文本框,另一個為存放控制命令字符串。若選擇文本數(shù)據(jù)發(fā)送,一般就要用到TextBox控件,將所發(fā)文本信息統(tǒng)一寫到文本框中,通過計時器定時依次發(fā)送出去。 Gi = 1j = Len() = TrueEnd SubPrivate Sub Command6_Click()/***關(guān)閉通信串口退出控制界面***/ = FalseEndEnd Sub TextBox控件 TextBox控件用于顯示或者輸入文本信息,比如要輸入一串字符串就必須在TextBox文本框中輸入。 windtype2 amp。 i = 1j = Len() = TrueEnd SubPrivate Sub Command4_Click()/***開啟所有空調(diào)使其正常工作***/ = 1 amp。 controlcode amp。該控件最為重要的的一個事件就是Click事件,當(dāng)用戶按下Command就可以觸發(fā)該事件,完成相應(yīng)的操作。另一個作為對所有空調(diào)定時監(jiān)控,設(shè)置計時間隔為1S, 每隔一秒換一臺空調(diào)進(jìn)行監(jiān)控,如此循環(huán)下去,直到用戶關(guān)閉監(jiān)控,即關(guān)閉計時器。由此可得,若想在一秒鐘內(nèi)執(zhí)行n此計時器事件,則必須將internal屬性值設(shè)置為1000/n才可實現(xiàn)。由于本系統(tǒng)實現(xiàn)對空調(diào)的控制需發(fā)送一連串控制命令,故通過Timer控件定時發(fā)送,可以有效的提高數(shù)據(jù)發(fā)送的正確性,有利于和下位機(jī)接收速度相匹配。本系統(tǒng)僅僅只接受單片機(jī)發(fā)送的兩位數(shù)據(jù)溫度值,所以Rthreshold屬性值設(shè)置為2。Rthreshold屬性值為0時,不產(chǎn)生OnComm事件。 通常與下位機(jī)通信采用默認(rèn)值即可,因為單片機(jī)有效處理的數(shù)據(jù)位也是8位,波特率也可以設(shè)置為9600。Value 由四個設(shè)置值組成,格式如下: “BBBB,P,D,S” BBBB為波特率,P為奇偶校檢,D為數(shù)據(jù)位數(shù),S為停止位數(shù)。 設(shè)置并返回波特率,奇偶較檢,數(shù)據(jù)位,停止位參數(shù)。 PortOpen屬性語法: =valueValue為布爾表達(dá)式TURE和FALSE,說明端口的狀態(tài),分別為打開和關(guān)閉。 設(shè)置并返回通信端口狀態(tài)(開或關(guān))。發(fā)送二進(jìn)制數(shù)據(jù),必須傳送一個包含字節(jié)數(shù)組的variant到output屬性。Output屬性語法:=valueOutput屬性可以傳輸文本數(shù)據(jù)和二進(jìn)制數(shù)據(jù)。Input屬性語法:往發(fā)送緩沖區(qū)寫數(shù)據(jù)流。返回并刪除接受緩沖區(qū)中的數(shù)據(jù)流。如果用PortOpen屬性打開一個并不存在的端口,MSCOMM控件會產(chǎn)生錯誤68(設(shè)備無效)。在設(shè)計時,value可以設(shè)置成從1到16的任何數(shù)(默認(rèn)值為1)。其中PC機(jī)數(shù)據(jù)接收的代碼如下: Dim temperature Private Sub MSComm1_OnComm()Select Case Case EvReceivetemperature = Case EvSendCase EvCTSCase EvDSRCase EvCDCase EvEOFEnd SelectEnd Sub MSCOMM控件的常用屬性 設(shè)置并返回通信端口。此方法大大降低了CPU利用率。事件驅(qū)動方式類似于單片機(jī)的中斷方式,當(dāng)事件發(fā)生了即中斷發(fā)生了,CPU進(jìn)入中斷處理程序,處理完就退出做其他工作并等待下一次中斷來臨,大大提高了CPU的工作效率。查詢方式實質(zhì)上還是事件驅(qū)動,但在有些情況下,這種方式顯得更為便捷。在許多情況下,在事件發(fā)生時需要得到通知,例如,在串口接受緩沖區(qū)中有字符,可以利用MSCOMM控件的OnComm事件捕捉并處理這些通信事件。 串口通信控件MSCOMM MSCOMM控件全稱為Microsoft Communication Control,是Microsoft公司提供的簡化Windows下串行通信編程的ActiveX控件,它為應(yīng)用程序提供了通過串行接口收發(fā)數(shù)據(jù)的簡便方法,MSCOMM控件提供兩種處理通信的方式:事件驅(qū)動方式和查詢方式。為了達(dá)到上位機(jī)與下位機(jī)的通信的協(xié)調(diào)與匹配,因此雙方需要一套相同的通信協(xié)議,該協(xié)議是人為自己規(guī)定的。8. 負(fù)壓特性,電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。最大轉(zhuǎn)換時間為200MS6. 用戶可自設(shè)定非易失性的報警上下限值7. 支持多點(diǎn)組網(wǎng)功能。3. 可用數(shù)據(jù)線供電,電壓范圍為+~+。DS18B20與處理器連接時僅需一根口線即可實現(xiàn)處理器與DS18B20的雙向通信。DS18B20內(nèi)部主要由4部分組成:64位光刻ROM,溫度傳感器,非揮發(fā)的溫度報警觸發(fā)器TH和TL,配置寄存器。系統(tǒng)復(fù)位電路也就是單片機(jī)的復(fù)位電路,如圖4所示:圖4 AT89S51復(fù)位電路當(dāng)按下復(fù)位鍵時,ESET瞬間為高平,然后電源與電容、電阻構(gòu)成回路,并對C1電容進(jìn)行充電,R1上的電壓逐漸下降,直至為低電平,系統(tǒng)處于正常工作狀態(tài)。使用時人選一組即可。
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1