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

正文內(nèi)容

基于51單片機(jī)的溫度數(shù)據(jù)采集傳輸系統(tǒng)的設(shè)計(jì)(編輯修改稿)

2024-07-25 00:17 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 制系統(tǒng)軟件設(shè)計(jì) 軟件設(shè)計(jì) 在進(jìn)行數(shù)據(jù)通信的軟件設(shè)計(jì)時(shí),必須解決好兩個(gè)方面的問(wèn)題:一是可靠性,二是速度。而這兩方面的問(wèn)題,可靠性是第一位的,速度只能是在可靠的基礎(chǔ)上的速度??煽靠焖俎D(zhuǎn)輸?shù)膶?shí)現(xiàn),需要 PC單片機(jī)軟件以及通信協(xié)議等各個(gè)環(huán)節(jié)的可靠和其間的相互配合。 Microchip PIC16F877A 單片機(jī)溫度控制系統(tǒng)軟件結(jié)構(gòu)圖圖 41 單片機(jī)溫度控制系統(tǒng)軟件結(jié)構(gòu)圖檢測(cè)與變送A/D 轉(zhuǎn)換工程量變換溫度非線性轉(zhuǎn)換發(fā)送數(shù)據(jù)到串口比較判斷算法溫度預(yù)設(shè)值 溫度調(diào)節(jié) 電路執(zhí)行器從串口接受數(shù)據(jù)命令識(shí)別控制程序 單片機(jī)控制流程圖 圖 42 單片機(jī)控制流程圖開(kāi)始初始化 PIC16F877A 單片機(jī)端口地址讀入預(yù)設(shè)溫度值啟動(dòng) A/D 轉(zhuǎn)換A/D 轉(zhuǎn)換結(jié)果送入 NX 單元NXFF0F0NX0降溫加熱工程量變換溫度非線性溫度轉(zhuǎn)換命令識(shí)別程序從串口接受數(shù)據(jù)YYY NNN發(fā)送數(shù)據(jù)到串口 溫度變換程序模塊溫度傳感器在 12℃到 60℃輸出 —,溫度起點(diǎn)為 12℃,滿量程為 48℃。Micro Chip PIC16F877A 單片機(jī)內(nèi)嵌的 10 位 A/D 轉(zhuǎn)換器對(duì)應(yīng)輸出的數(shù)字量為 0000000000B~1111111111B(0~5V) ,應(yīng)用以下變換公式進(jìn)行變換:AX=A0+(AMA0)(NXN0)/(NMN0)式中,A 0 為一次測(cè)量?jī)x表的下限。AM 為一次測(cè)量?jī)x表的上限。AX 實(shí)際測(cè)量值。N0 儀表下限對(duì)應(yīng)的數(shù)字量。NM 儀表上限對(duì)應(yīng)的數(shù)字量。NX 測(cè)量值對(duì)應(yīng)的數(shù)字量。 溫度非線性轉(zhuǎn)換程序模塊采用折線擬合法進(jìn)行線性化處理如表 41 所示,分為以下幾段:當(dāng) ≤Ax 時(shí), T℃=*WN+12當(dāng) ≤WN 時(shí), T℃=*WN+25當(dāng) ≤WN 時(shí), T℃=*WN+40當(dāng) ≤WN 時(shí), T℃=+50表 41 溫度曲線實(shí)際測(cè)量數(shù)據(jù)溫度(℃ ) 12 13 14 15 16 17 18電壓(V) 溫度(℃ ) 19 20 21 22 23 24 25電壓(V) 溫度(℃ ) 26 27 28 29 30 31 32電壓(V) 溫度(℃ ) 33 34 35 36 37 38 39電壓(V) 溫度(℃ ) 40 41 42 43 44 45 46電壓(V) 溫度(℃ ) 47 48 49 50 51 52 53電壓(V) 溫度(℃ ) 54 55 56 57 58 59 60電壓(V) 圖 43 溫度分段線限等效圖 通信協(xié)議的設(shè)計(jì)由于溫度采集和實(shí)施控制是通過(guò)單片機(jī)控制系統(tǒng)實(shí)現(xiàn),而微機(jī)完成溫度監(jiān)控,所以需要采用單片機(jī)和微機(jī)之間的通信協(xié)議。本設(shè)計(jì)應(yīng)用條件為傳輸距離不超過(guò)15米的短距離數(shù)據(jù)傳輸,且傳輸數(shù)據(jù)量較小,所以采用在控制領(lǐng)域里應(yīng)用較廣泛RS232C串行通信方式。針對(duì)近程小批量的數(shù)據(jù)通信,設(shè)計(jì)時(shí)采用3 線制(RXD ,TXD ,GND )軟握手的零MODEM方式。即:將PC機(jī)和單片機(jī)的 “發(fā)送數(shù)據(jù)線(TXD )”與“ 接收數(shù)據(jù)( RXD)”交叉連接,二者的地線(GND)直接相連而其它信號(hào)線如握手信號(hào)線均不用,而采用軟件握手。這樣即可以實(shí)現(xiàn)預(yù)定的任務(wù),又可以簡(jiǎn)化電路設(shè)計(jì)節(jié)約了成本。由于RS232C是早期為促進(jìn)公用電話網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信而制定的標(biāo)準(zhǔn),其邏輯電平與TTL, MOS 邏輯電平不同。邏輯0 電平規(guī)定為+5~+15V之間,邏輯1是電平為5 ~15V 之間。因此在將PC機(jī)和單片機(jī)的RXD 和TXD交叉連接時(shí),必須進(jìn)行電平轉(zhuǎn)換。 通信協(xié)議概述在設(shè)計(jì)PC單片機(jī)通信協(xié)議時(shí),需說(shuō)明一點(diǎn):在本系統(tǒng)的實(shí)際通信中,PC 機(jī)是主控者單片機(jī)只是被動(dòng)接收者。采用這種通信協(xié)議較雙方互為主控者時(shí)簡(jiǎn)單。本通信協(xié)議的設(shè)計(jì)思想是基于幀傳輸方式。即在向RS232串口發(fā)送命令信號(hào),應(yīng)答信號(hào)及數(shù)據(jù)信號(hào)時(shí),是一幀一幀地發(fā)送的。為了使數(shù)據(jù)快速可靠地傳輸,將每一幀數(shù)據(jù)唯一對(duì)應(yīng)一命令幀。此時(shí)傳輸數(shù)據(jù)即執(zhí)行命令具體如下:1 在PC讀數(shù)據(jù)時(shí),遵循“讀命令等數(shù)據(jù)報(bào)告”,即 PC下達(dá)一命令,等待接收數(shù)據(jù),根據(jù)所接收數(shù)據(jù)的正誤向應(yīng)用程序報(bào)告此命令的執(zhí)行情況。2 在PC寫(xiě)數(shù)據(jù)時(shí),遵循“寫(xiě)命令等回應(yīng)報(bào)告”,即 PC下達(dá)一寫(xiě)命令(此時(shí)所要寫(xiě)的數(shù)據(jù)含于此命令中),等待單片機(jī)發(fā)來(lái)的“已正確接收”的回應(yīng)信號(hào),并向應(yīng)用程序報(bào)告此命令執(zhí)行完畢。3 如果在轉(zhuǎn)輸過(guò)程中,其間PC或MCU 所接收任何一幀信號(hào)出現(xiàn)錯(cuò)誤時(shí),均會(huì)向?qū)Ψ桨l(fā)送重發(fā)此幀信號(hào)的請(qǐng)求。如果連續(xù)三次轉(zhuǎn)輸失敗,則退出通信并向應(yīng)用程序報(bào)告。 通信協(xié)議說(shuō)明 信號(hào)幀分類(lèi)1 讀命令幀:當(dāng)PC讀數(shù)據(jù)時(shí), PC向PIC16F877A發(fā)送的命令信號(hào)。2 寫(xiě)命令幀:當(dāng)PC寫(xiě)數(shù)據(jù)時(shí), PC向PIC16F877A發(fā)送的命令信號(hào)(內(nèi)含所要寫(xiě)的數(shù)據(jù)) 。3 數(shù)據(jù)幀:當(dāng)PC讀數(shù)據(jù)時(shí), PIC16F877A向PC發(fā)送的內(nèi)含數(shù)據(jù)信息的信號(hào)。4 正回應(yīng)幀:當(dāng)PC寫(xiě)數(shù)據(jù)時(shí), PIC16F877A向PC報(bào)告數(shù)據(jù)已正確接收的信號(hào)。5 重發(fā)命令幀:當(dāng)PC讀/寫(xiě)數(shù)據(jù)時(shí),PIC16F877A所接收的信號(hào)幀(讀/寫(xiě)命令幀) 有誤時(shí)向PC發(fā)出的請(qǐng)求重發(fā)信號(hào)。6 放棄命令幀:當(dāng)PC讀/寫(xiě)數(shù)據(jù)時(shí)出現(xiàn)了使程序無(wú)法正常執(zhí)行時(shí)PC或PIC16F877A向?qū)Ψ桨l(fā)出的退出通信的通知信號(hào)。 信號(hào)幀格式1 讀命令幀格式幀頭標(biāo)志 幀類(lèi)型 器件地址 起始地址長(zhǎng)度 校驗(yàn)和 幀尾標(biāo)志幀頭標(biāo)志(1 Bit): 表示此數(shù)據(jù)包屬于本串口通信協(xié)議,并為是否接收此包數(shù)據(jù)的標(biāo)志。幀類(lèi)型(1 Bit): 所用信號(hào)幀的識(shí)別標(biāo)志, 信號(hào)幀分類(lèi)中的各類(lèi)型信號(hào)的標(biāo)志字節(jié)。器件地址(1Byte): PC所要訪問(wèn)的外部器件的地址即是哪一個(gè)外部器件。起始地址(2Byte): PC所要訪問(wèn)的器件的存貯器起始地址。長(zhǎng)度(1Byte): 一次命令所轉(zhuǎn)輸?shù)臄?shù)據(jù)長(zhǎng)度。校驗(yàn)和(1Byte): 此幀信號(hào)的校驗(yàn)字節(jié) ,為異或校驗(yàn)。幀尾標(biāo)志(1Byte): 此幀信號(hào)的結(jié)束標(biāo)志。2 寫(xiě)命令幀幀頭標(biāo)志 幀類(lèi)型 器件地址 起始地址長(zhǎng)度 數(shù)據(jù)區(qū) 校驗(yàn)和 幀尾標(biāo)志數(shù)據(jù)區(qū):所要寫(xiě)的數(shù)據(jù)信息。其它分析同上。3 數(shù)據(jù)幀幀頭標(biāo)志 幀類(lèi)型 長(zhǎng)度 數(shù)據(jù)區(qū) 校驗(yàn)字 幀尾標(biāo)志長(zhǎng)度:所轉(zhuǎn)輸數(shù)據(jù)的長(zhǎng)度。數(shù)據(jù)區(qū):所轉(zhuǎn)輸?shù)臄?shù)據(jù)信息。其它分析同上。4 正響應(yīng)幀幀頭標(biāo)志 幀類(lèi)型 空 校驗(yàn)字 幀尾標(biāo)志空無(wú)意義:為了PIC16F877A 編程的方便而加入。其它分析同上。5 重發(fā)幀幀頭標(biāo)志 幀類(lèi)型 空 校驗(yàn)字 幀尾標(biāo)志其它分析同上。6 放棄幀幀頭標(biāo)志 幀類(lèi)型 錯(cuò)誤碼 校驗(yàn)字 幀尾標(biāo)志錯(cuò)誤碼:00H 執(zhí)行PC命令發(fā)放棄幀回應(yīng)被動(dòng)退出通訊。01H PIC16F877A 單片機(jī)方寫(xiě)入芯片發(fā)生錯(cuò)誤主動(dòng)通知PC退出通訊。 通信協(xié)議處理流程1 數(shù)據(jù)分幀與數(shù)據(jù)重組圖 44 串口數(shù)據(jù)發(fā)送過(guò)程圖 45 串口數(shù)據(jù)接受過(guò)程將應(yīng)用程序發(fā)送過(guò)來(lái)的數(shù)據(jù)作為一個(gè)數(shù)據(jù)流放在發(fā)送緩沖區(qū)中,通過(guò)通信協(xié)議進(jìn)行分幀──切割──發(fā)送。在接收端,分幀的數(shù)據(jù)去掉幀頭重新組合到接收緩沖區(qū)中,交給應(yīng)用程序處理,發(fā)送過(guò)程的示意如圖。串口接受到一幀數(shù)據(jù)此幀是否正確連續(xù) 3 次不正確退出通信并報(bào)告讀命令信號(hào)退出等待下一幀重發(fā)命令幀寫(xiě)命令信號(hào)分析此命令開(kāi)始執(zhí)行分析此命令取出數(shù)據(jù)信息發(fā)數(shù)據(jù)幀發(fā)正回應(yīng)數(shù)據(jù)幀退出通信并報(bào)告 退出等待下幀命令N YY NYYNN單片機(jī)串口通信軟件設(shè)計(jì)流程圖如下:圖 46 單片機(jī)串口通信軟件流程圖 PC 上位機(jī)的軟件設(shè)計(jì) PC 軟件設(shè)計(jì)方法的選擇在開(kāi)發(fā)PC上位機(jī)的通信程序中 ,人們常用的編程語(yǔ)言可分為 3類(lèi):(1) 直接面向底層硬件的匯編語(yǔ)言。(2) DOS環(huán)境下的高級(jí)編程語(yǔ)言,如: C語(yǔ)言等。(3) Windows環(huán)境下的高級(jí)編程語(yǔ)言,如:C++等。而在這3種方式中Windows 環(huán)境下的串口編程以其設(shè)備無(wú)關(guān)性,可移植性以及界面友好等特征而得到廣泛應(yīng)用。同時(shí)在Windows操作系統(tǒng)已經(jīng)占據(jù)統(tǒng)治地位的情況下,欲開(kāi)發(fā)良好的通信程序,利用Windows環(huán)境下的高級(jí)語(yǔ)言已漸成為必然的選擇。開(kāi)發(fā)Windows環(huán)境下的串口通信程序主要有以下2種方法: API(Application Program Interface)用戶程序接口函數(shù);;后者的主要特點(diǎn)是簡(jiǎn)單易學(xué),但前者的功能更為強(qiáng)大控制手段更為靈活。 PC 軟件通信方式的選擇在Win32環(huán)境下串行通信有兩種:主要方式即同步方式,異步方式兩種方式有各自的特點(diǎn)。在軟件設(shè)計(jì)時(shí)應(yīng)根據(jù)實(shí)際情況選擇合適的方式。1. 同步方式在同步方式中,讀串口的函數(shù)試圖在串口的接收緩沖區(qū)中讀取規(guī)定數(shù)目的數(shù)據(jù),直到規(guī)定數(shù)目的數(shù)據(jù)全部被讀出或設(shè)定的超時(shí)時(shí)間已到時(shí)才返回。例如:(以C++ Builder編程語(yǔ)言為例下同)COMMTIMEOUTS cto。int timeConstant, timeMutiplier。 = timeConstant。 //設(shè)置總超時(shí)常數(shù) = timeMutiplier。 //設(shè)置總超時(shí)系數(shù)SetCommTimeouts(m_hFile,amp。cto)。 //超時(shí)設(shè)置ReadFile (hComport,inBuffer,nWantRead,amp。nRealRead,NULL)。//讀串口COMMTIMEOUTS結(jié)構(gòu)用于設(shè)置超時(shí),指定讀寫(xiě)函數(shù)的等待時(shí)間在ReadFile 函數(shù)中 hComport 為待讀串口句柄。inBuffer 為輸入緩沖區(qū)大小。nWantRead 為每次調(diào)用 ReadFile 時(shí),函數(shù)試圖讀出的字節(jié)數(shù)。nRealRead 為實(shí)際讀出的字節(jié)數(shù)。最后一個(gè)參數(shù)值NULL 代表ReadFile將采用同步文件讀寫(xiě)方式。2. 異步方式異步方式中,利用Win32 的多線程結(jié)構(gòu),可以讓串口的讀寫(xiě)操作在后臺(tái)進(jìn)行,而應(yīng)用程序的其它部分在前臺(tái)執(zhí)行例如:CreateFile(lpszPort, //打開(kāi)串口GENERIC_READ|GENERIC_WRITE,0,0,…………OPEN_EXISTING,FILE_FLAG_OVERLAPPED, //允許異步操作0)。OVERLAPPED lpOverlapped。COMMTIMEOUTS cto。int timeConstant, timeMutiplier。 = timeConstant。 //設(shè)置總超時(shí)常數(shù) = timeMutiplier。 //設(shè)置總超時(shí)系數(shù)SetCommTimeouts(m_hFile,amp。cto)。 //超時(shí)設(shè)置lpOverlapped hEvent=Create Event (,FALSE,NULL)。ReadFile (hComport,inBuffer,nWantRead,amp。nRealRead,amp。lp Overlapped)。 //讀串口lpOverlapped 是1個(gè)OVERLAPPED 結(jié)構(gòu)變量,OVERLAPPED 結(jié)構(gòu)用于指出讀寫(xiě)操作與其它操作的重疊為了實(shí)現(xiàn)線程間同步與通信,上面的代碼中用CreateEvent 函數(shù)產(chǎn)生 1 個(gè)人工復(fù)位事件 ,并將其句柄賦予lpOverlapped的hEvent 成員這樣 ,在異步讀寫(xiě)完成時(shí) ,Windows95發(fā)送該事件信號(hào)。3. 兩種方式的比較異步方式利用多線程結(jié)構(gòu)來(lái)監(jiān)視通信設(shè)備,其最大優(yōu)點(diǎn)是程序?qū)邮諗?shù)據(jù)具有自主覺(jué)察能力。一旦通信線程查詢到數(shù)據(jù)已發(fā)送到串口上,線程自動(dòng)向應(yīng)用程序發(fā)送一個(gè)數(shù)據(jù)接收到的消息,應(yīng)用程序可用該消息來(lái)讀取通信設(shè)備傳來(lái)的數(shù)據(jù)。并且使用通信線程還不占用CPU時(shí)間,這樣系統(tǒng)實(shí)際上具有了同時(shí)控制多個(gè)通信設(shè)備(如MODEM)的能力。因此在對(duì)系統(tǒng)強(qiáng)壯性要求較高的場(chǎng)合下應(yīng)采用異步方式。異步方式的優(yōu)點(diǎn)也恰是同步方式的缺點(diǎn)。使用同步方式時(shí)容易發(fā)生線程阻塞,從而使系統(tǒng)性能下降。但在某些場(chǎng)合下,該缺點(diǎn)可以通過(guò)一些措施盡可能地減小,而其簡(jiǎn)單易用的優(yōu)點(diǎn)卻是很好地體現(xiàn)出來(lái)。如果不考慮Win95 的進(jìn)程和線程的問(wèn)題,僅在串口有
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1