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

正文內(nèi)容

基于modbus協(xié)議的醫(yī)用臭氧治療儀的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文doc-在線(xiàn)瀏覽

2024-08-28 01:19本頁(yè)面
  

【正文】 163x 、4x預(yù)置多寄存器把具體的數(shù)據(jù)裝入一組連貫的保持寄存器  以Modbus功能碼03為例來(lái)說(shuō)明觸摸屏及單片機(jī)的實(shí)際通信數(shù)據(jù)格式?! ? 表52 觸摸屏發(fā)送數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)段名稱(chēng)數(shù)據(jù)值地址01功能碼03讀取地址高位00讀取地址低位31讀取數(shù)據(jù)個(gè)數(shù)高位00讀取數(shù)據(jù)個(gè)數(shù)低位01CRC校驗(yàn)碼高位D5CRC校驗(yàn)碼低位C5 假設(shè)單片機(jī)中地址為0031H的寄存器中斷為05H,則單片機(jī)的回復(fù)命令如表53所示。實(shí)現(xiàn)這兩種方法的函數(shù)均可以在相關(guān)資料中找到。/* Table Of CRC Values for highorder byte */uchar code auchCRCHi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01,0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01,0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81,0x40} 。uint crc16(uchar *puchMsg,uchar usDataLen) // puchMsg message to calculate CRC upon { // usDataLen quantity of bytes in message uchar uchCRCHi = 0xFF 。 // low byte of CRC initialized uint uIndex 。 // calculate the CRC uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] 。 } return (((uint)(uchCRCLo) 8) | uchCRCHi) 。流程圖如51所示:初始化預(yù)充完成?引血完成?混合完成?治療參數(shù)設(shè)定回輸完成?結(jié)束 N Y N Y N Y N Y 圖51 上位機(jī)程序流程圖 上位機(jī)初始化上位機(jī)初始化如圖52所示: 圖52 上位機(jī)初始化 預(yù)充處理程序?yàn)榱朔乐寡涸诠苈分心?,在治療前必須?duì)治療管路進(jìn)行預(yù)充。畫(huà)面如圖54所示: 圖54 臭氧血液混合畫(huà)面程序代碼如下:include include //該程序是治療循環(huán)畫(huà)面的宏指令int MacroEntry(){ if(hsqpjc_flag==0){w_page=15。}//檢測(cè)限位開(kāi)關(guān) if((pain=patop)||(pain=pabottom)){w_page=32。 if(lw211_r=r_zldxtime1){lw210_w=1。} }/////////////////////////////////增加部分不保壓的程序 if(lw210_r==1)//達(dá)到頂血時(shí)間{ lw211_w++。//設(shè)置本畫(huà)面的號(hào)碼 jyfe_flag=1。//進(jìn)行輸液 syfe_flag=0。 ybdg_flag=1。o3exitin_flag=0。//氧氣閥關(guān)閉 // o3fe_flag=0。//臭氧閥關(guān)閉,制氣閥關(guān)閉。//循環(huán)閥打開(kāi) // ybdg_flag=1。lw210_w=2。//泵運(yùn)行 }}if(lw210_r==2)//是否到達(dá)治療循環(huán)時(shí)間 { if(pausekey_flag==1){bo3power_flag=0。} if((door_flag==1)||(pausekey_flag==1)){run_flag=0。 lw211_w++。//循環(huán)時(shí)間計(jì)數(shù) if(lw211_r=r_zlxhtime1){lw210_w=3。} } }if(lw210_r==3)//治療循環(huán)時(shí)間到{ lw211_w++。//停泵 o3out_flag=1。 o3exit_flag=0。//臭氧排放閥打開(kāi) } if(lw211_r==2)//延時(shí)2S { o3out_flag=1。//臭氧輸出閥關(guān)閉,進(jìn)行保壓。bout0_flag=1。//臭氧檢測(cè)關(guān)閉 bo3power_flag=0。//臭氧電源和冷卻水泵關(guān)閉 } if(lw211_r==4)//延時(shí)2S { o2fe_flag=0。bout0_flag=0。 // xhfe_flag=0。//電逆時(shí)針運(yùn)行 } if(lw211_r==6)//延時(shí)4s { syfe_flag=1。//輸液閥動(dòng)作,加液閥打開(kāi) 。lw211_w=0。 if(lw211_r=r_zlxhdztime1) { xhfe_flag=1。//循環(huán)閥動(dòng)作,加液閥動(dòng)作。o3exitin_flag=0。lw211_w=0。 lw210_w=0。//步進(jìn)標(biāo)志位清零 w_page=11。} 臭氧濃度處理程序先對(duì)下位機(jī)送來(lái)的數(shù)字信號(hào)轉(zhuǎn)換成臭氧濃度。低于設(shè)定值向下位機(jī)送出正轉(zhuǎn)信號(hào)。程序代碼如下:include include //臭氧濃度比較程序int MacroEntry(){ //w_o3bjvalue=o3daout。 // lw211_w++。 // w_o3bjvalue=(unsigned short)(r_temp*200/1024)。bnddgr_flag=0。anddgr_flag=0。 // equal_flag=1。 } if(r_o3bjvalue==o3set)//取樣值等于設(shè)定值 { bnddgl_flag=0。 anddgl_flag=0。 //tsmusic_flag=1。 goto uno3cont1。*/ equal_flag=1。} bnddgl_flag=0。//10 anddgl_flag=0。 tsmusic_flag=0。//o3jcstop=1。*/ equal_flag=1。} bnddgl_flag=1。//01 anddgl_flag=1。 tsmusic_flag=0。//o3jcstop=1。bnddgr_flag=0。uno3cont1: 。} 報(bào)警處理程序在這里一共有5種報(bào)警要進(jìn)行處理,分別是回輸氣泡報(bào)警、靜脈壓力報(bào)警、限位報(bào)警、血泵停轉(zhuǎn)報(bào)警、斷電報(bào)警。需要上位機(jī)處理的只有另外4種報(bào)警。畫(huà)面如圖55所示: 圖55 氣泡報(bào)警畫(huà)面靜脈壓力報(bào)警:當(dāng)靜脈壓超出設(shè)定的壓力限值,將產(chǎn)生報(bào)警。畫(huà)面如圖56所示: 圖56 壓力報(bào)警畫(huà)面限位報(bào)警:當(dāng)調(diào)壓器超出調(diào)節(jié)范圍時(shí),將產(chǎn)生報(bào)警,提醒用戶(hù)進(jìn)行處理。畫(huà)面如圖58所示: 圖58 血泵停轉(zhuǎn)報(bào)警畫(huà)面 下位機(jī)軟件實(shí)現(xiàn) 下位機(jī)的程序應(yīng)用下位機(jī)做為從機(jī),要識(shí)別來(lái)自主機(jī)的信號(hào)是不是給自己。與COM1相連的MCU作為1號(hào)從機(jī), define SlaveID 0x01。編譯工具選擇keil編譯器。主程序流程圖如圖59所示。傳輸波特率為9600,8位數(shù)據(jù)位,1位停止位,無(wú)校驗(yàn)。 // uart mode is 01,start bit + 8 bit data +stop bit : peer to peer munication TMOD=0x11。 /* 置初值 */ TH1=0xB0。 TR1=0。 RCAP2L=0XD9。 TCLK=1。//定時(shí)器2作為波特率發(fā)生器,9600bps PS=1。 // serially interrupt allow EA=1。 for (i=0。i++) _nop_()。 RecFinishF=0。 CommIndexEnd=0xff。iMaxRegLen。} 數(shù)據(jù)接收、發(fā)送處理程序下位機(jī)與上位機(jī)傳輸處理程序在串行中斷程序中進(jìn)行。該中斷函數(shù)將觸摸屏發(fā)來(lái)的Modbus數(shù)據(jù)幀存儲(chǔ)在一個(gè)自定義的數(shù)組中,當(dāng)一幀數(shù)據(jù)接收完時(shí),置接收結(jié)束標(biāo)志位為1,轉(zhuǎn)入數(shù)據(jù)處理及發(fā)送模塊。觸發(fā)中斷,進(jìn)入中斷處理程序。 ES=0。 if (CommIndex=CommIndexEnd) { SBUF=CommBuf[CommIndex++]。i=SendRecieveDelay。 CommIndex=0。 } } if(RI) { RI=0。 if (CommIndex==CommIndexFu
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1