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

正文內(nèi)容

基于pic16f877的培養(yǎng)液溫度實時監(jiān)控系統(tǒng)設(shè)計(文件)

2024-12-02 00:53 上一頁面

下一頁面
 

【正文】 疊 為了實現(xiàn)線程間同步與通信 ,上面的 代碼 中用 CreateEvent 函數(shù) 產(chǎn)生 1 個人工復(fù) 位 事 件 ,并 將其 句柄賦予 lpOverlapped的 hEvent成 員 這樣 ,在異步讀寫完成時 ,Windows95發(fā)送 該事 件信號。因此在對系 統(tǒng)強壯性要求 較 高 的 場合 下應(yīng)采用異步方式。如果不 考慮 Win95的進程和線程的問題, 僅 在串 口 有數(shù)據(jù)時, 去 讀串 口緩沖區(qū) 就可以了。 而不會 使 PC機 處 于 長 時間 等待。串 口 的 打 開 并 閉 讀 取 以及寫入 所用的函數(shù)與 操 作文件的函數(shù)相同。 (2)初 始 化串 口 武漢紡織大學 2020 屆畢業(yè)設(shè)計 ( 論文 ) 23 對串 口 的 初 始 化 工 作 包 括 對 波 特 率, 數(shù)據(jù)位, 停止 位, 奇偶 校驗 位 I/O 緩沖 大小以及超時 等參 數(shù)的設(shè) 置。 GetCommState(mHandle, amp。 // 一 個 停止 位 SetCommState(hCom, amp。如 果 在 指 定的時間 內(nèi)沒 有讀出 或 寫 入指 定數(shù)量的 字 符,那么 ReadFile 或 Write File 的 操 作就會 結(jié)束。TimeOuts)。 (3)讀寫串 口 初 始 化 工 作完成以 后便 可以 根 據(jù)通信協(xié)議 合 理 安排 讀 /寫函數(shù) ReadFile()和 Write File()以讀 寫各 種 握手信 息 和數(shù)據(jù)信 息等。 //PC發(fā)送一 組命令 至 單片機 Write File(mHandle, //串 口句柄 pDataBuff, //存放 數(shù)據(jù) 緩種區(qū) lien, //所寫數(shù)據(jù)的 長度 pdwWritten, //已 寫 長度操 作前應(yīng) 置 為 0 lpOverlapped) //異步方式 //設(shè) 置 通信 事 件 掩 碼 DWORD damask=EV_RXCHAR。 =CreateEvent(NULL TRUE FALSE NULL) if(!WaitCommEvent(m_hFile, amp。detrains, true)。 //關(guān) 閉 mHandle為 打 開串 口 時 返回 的 句柄 include include includemath’s includestring’s main() { unsigned char z。 TH0=0x2f。 TH1=0xfd。 EX1=0。 TR1=1。spud )。 = 100。a++) for(b=0。 } } else if(subs==0) { for(a=0。b++){} if(subs==0) { set temper。a++) for(b=0。 } EA=1。 if((abs(ab))5) 武漢紡織大學 2020 屆畢業(yè)設(shè)計 ( 論文 ) 27 temper=a。 if(++count130) { display()。 z=1。a++) for(b=0。 } EA=1。 //延時 void delay(word useconds) { for(。 DQ=0。 //等待 presence=DQ。 byte value=0。 DQ=0。 delay(6)。i0。 delay(5)。 } //讀取溫度 Char Read_Temperature (void) { union { byte c [2]。 write_byte(0xcc)。 ow_reset()。 } 單片機軟件設(shè)計 我們 知 道影 響 數(shù)據(jù)轉(zhuǎn)輸 產(chǎn)生錯誤 的因 素 有:轉(zhuǎn)輸線分 布 參 數(shù)上下位機間的 波 特 率 誤差 現(xiàn) 場 干擾 等。 晶振頻率 主要 由 晶 體 的因有 頻率 決定,同時 也 與電 容 C C2及 外界 溫 度 有一定的 關(guān) 系。由此可見, 當 波 特 率 的 誤 差 使 得在接收 某 位數(shù)據(jù)位時,采樣點離 該 位的中點 半 位間 隔 時將會對 該 位采樣兩 次。 ②波 特 率 最 大 允許誤 差 分 析 武漢紡織大學 2020 屆畢業(yè)設(shè)計 ( 論文 ) 30 在異步串行通信方式 1中 單片機 以 16倍波 特 率 的采樣 速 率 對接收數(shù)據(jù)( RXD) 不 斷 采樣,一 旦 檢測 到由 1到 0的 負跳 變, 16分 頻 計數(shù)器立 刻 復(fù) 位, 使 之 滿 度 翻 轉(zhuǎn)的時 刻 恰 好與輸 入 位的 邊沿 對準。 所以在單片機軟件的設(shè)計時應(yīng) 重 點 考慮 并 設(shè) 置 好 波 特 率。 write_byte(0x44)。 [1]=read_byte()。 }temp。 val=val/2。 DQ=valamp。 } //向 1wire總線上寫一個字節(jié) void write_byte(char val) { byte i。 delay(1)。i0。 return(presence)。 //480us DQ=1。useconds)。 //定義端口 typedef unsigned char byte。b++){} if(stop==0) disp_1(Phil)。 if(stop==0) { for(a=0。 } pare temper()。 a=temper。 b=temper。b++){} if(stop==0) { flag=0。 } } else if(stop==0) { for(a=0。a++) for(b=0。b++){} if(plus==0) { set temper++。 for(a=0。 // Set PID Coefficients = 8。 low time=50。 ES=1。 PS=1。 SCON=0x50。 unsigned char Phil[]={2,0xce,0x6e,0x60,0x1c,2}。 如 果 通信 事 件一直 沒 有發(fā) 生則 系 統(tǒng) 將不會 繼 續(xù)執(zhí) 行。os)) // 重疊操 作 If (GetLastError ()==ERROR_IO_PENDING) { // 無 限 等待重疊操 作 結(jié)果 GetOverlappedResult (mHandle, amp。 Meme (amp。此時采 取 的是 事 件 驅(qū)動法, 即:設(shè) 置 通信資源上的 事 件 掩 碼 為EV_RXCHAR 。 總 超時的計 算 公式是: 總 超時 =時間系數(shù) 要求 讀 /寫的 字 符 數(shù) + 時間 常 數(shù) 異步方式讀寫串行 口 時 雖 然 ReadFile()和 Write File() 在完成 操 作以前就可能 返回 但超時 仍 然 是起作用的。 該 函數(shù)會 填充 一 個 COMMTIMEOUTS 結(jié)構(gòu) 調(diào)用 SetCommTimeouts 可以用 某 一 個 COMMTIMEOUTS結(jié)構(gòu) 的 內(nèi)容 來設(shè) 置 超時。如 果 通信的 速 率 較 高則 應(yīng) 該 設(shè) 置 較大的 緩沖區(qū)。 // 每個字 符 有 8位 =NOPARITY。要 修 改串行 口 的 配置 應(yīng) 該 先修 改 DCB結(jié)構(gòu),然后再 調(diào)用 SetCommState函數(shù)用 指 定的 DCB結(jié)構(gòu) 來設(shè) 置串行口。 還 是同步 操 作方式調(diào)用該 函數(shù) 打 開串 口 進行讀寫 操 作的 例 子 如下: mHandle = CreateFile(lpszPort, //串 口 名 GENERIC_READ|GENERIC_WRITE, //允許 讀 /寫 0, //獨 占 方式串 口 不能共享 NULL, //安 全 性屬性 一 般 設(shè)為 0 OPEN_EXISTING, //串 口 是 已存 在的不能 建 新端口 lpOverlapped, //異步方式 0 //串 口無 模板 文件應(yīng)設(shè)為 0 )。 我們在開發(fā)串行通信程 序 時,分別應(yīng)用這兩 種 方式開發(fā) 都獲 得了成功。 可以采用同步轉(zhuǎn)輸方式的 場合 有如下一些特點: ① 何 時轉(zhuǎn)輸數(shù)據(jù)由 PC機來決定,下位機 只 是 被動 接收 并執(zhí) 行 命令。 使 用同步方式時 容易 發(fā) 生 線程 阻塞,從 而使 系 統(tǒng)性 能下 降。 一 旦 通信線程 查詢 到數(shù)據(jù) 已 發(fā)送到串 口 上,線程 自動向 應(yīng)用程 序 發(fā)送一 個 數(shù)據(jù)接收到的 消息, 應(yīng)用程 序 可用 該 消息 來讀 取 通信設(shè) 備 傳來的數(shù)據(jù)。nRealRead,amp。 //設(shè) 置總 超時系數(shù) SetCommTimeouts(m_hFile,amp。 COMMTIMEOUTS cto。nRealRead 為實際讀出的 字 節(jié)數(shù) 。nRealRead,NULL)。 //設(shè) 置總 超時 常 數(shù) = timeMutiplier。 ( 1) 同步方式 在同步方式中 ,讀串 口 的函數(shù) 試圖 在串 口 的接收 緩沖區(qū) 中讀 取規(guī) 定數(shù)目的數(shù)據(jù) ,直到 規(guī) 定數(shù)目的數(shù)據(jù)全 部被 讀出 或 設(shè)定的超時時間 已 到時 才返回。同時在 Windows操 作系 統(tǒng)已經(jīng)占 據(jù)統(tǒng)治 地位的 情況 下, 欲 開發(fā) 良 好的通信程 序,利 用 Windows環(huán)境下的 高級語 言 已漸 成為必然 的 選擇。 圖 73 接收過程的 示 意 圖 武漢紡織大學 2020 屆畢業(yè)設(shè)計 ( 論文 ) 19 應(yīng)用程序通知通信開始 讀還是寫 發(fā)送讀命令 發(fā)送寫命令 串口收到命令 此幀是否正確? 連續(xù)三次否 退出通信 是 幀 數(shù) 據(jù)嗎? 重發(fā)命令幀 等待下幀信號 處理數(shù)據(jù) 是正回應(yīng)幀嗎 命令執(zhí)行完畢 是重發(fā)幀嗎 退出通信并報告 重發(fā)命令幀 等待下幀信號 讀 寫 Y Y N Y Y N Y N Y 圖 74 P C 串口通信軟件設(shè)計流程圖 武漢紡織大學 2020 屆畢業(yè)設(shè)計 ( 論文 ) 20 PC 上位機的軟件設(shè)計 PC軟件設(shè)計方 法 的 選擇 在開發(fā) PC上位機的通信程 序 中 ,人 們 常 用的 編 程 語 言可分為 3類 :(1) 直接面 向底層硬件的 匯編語 言。 武漢紡織大學 2020 屆畢業(yè)設(shè)計 ( 論文 )
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1