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

正文內(nèi)容

基于modbus數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)-資料下載頁

2025-06-27 18:08本頁面
  

【正文】 能 時 鐘 丟 失 檢 測 PCA0MD = 0x00。 //禁 止 看 門 狗}void IO_Init(){ P0MDOUT = 0xf0。 //P0 輸 出 方 式 1 為 推 挽 方 式 P1MDIN = 0xff。 //P1 輸 入 方 式 為 數(shù) 字 輸 入 0 為 模 擬 輸 入 P1MDOUT = 0xff。 //P1 輸 出 方 式 1 為 推 挽 方 式 XBR0 = 0x01。 //關(guān) 閉 其 他 外 設(shè) , 開 串 口 XBR1 = 0x40。 //使 能 交 叉 開 關(guān) }基 于 Modbus 協(xié) 議 的 數(shù) 據(jù) 采 集 系 統(tǒng) 20 //AD 初 始 化void ADC_Init(){ REF0CN |= 0x03。 //使 能 內(nèi) 部 電 壓 基 準(zhǔn) ADC0CN = 0x00。 //增 益 為 1, 單 極 性 方 式 ADC0CF = 0x00。 //SINC3 濾 波 , 內(nèi) 部 基 準(zhǔn) () ADC0CLK = (SYSCLK/MDCLK)1。 //使 MDCLK = ADC0DEC = ((unsigned long) MDCLK / (unsigned long) Out_R / (unsigned long) 128) 1。 ADC0BUF = 0x00。 //關(guān) 閉 緩 沖 器 ADC0MUX = 0x67。 //AIN+接 到 , AIN接 模 擬 地 ADC0MD = 0x81。 //啟 動 全 內(nèi) 部 校 準(zhǔn) while(AD0CALC != 1)。 //等 待 校 準(zhǔn) 完 成 ADC0MD = 0x80。 //使 能 ADC0 }//AD 一 次 采 樣 并 計(jì) 算 結(jié) 果void ADC0() { AD0INT = 0。 ADC0H = ADC0M = ADC0L = 0。 ADC0MD |= 0x02。 //寫 1 啟 動 一 次 轉(zhuǎn) 換 while(AD0INT == 0) //等 待 轉(zhuǎn) 換 結(jié) 束{} AD0INT = 0。 ada = ADC0L+ADC0M*256+ADC0H*65536。 //毫 伏 = 128 * ada。}//串 口 初 始 化void UART0_Init (){ SCON0 = 0x10。 if (SYSCLK/BAUDRATE/2/256 1) { TH1 = (SYSCLK/BAUDRATE/2)。 CKCON |= 0x08。 } else if (SYSCLK/BAUDRATE/2/256 4) { TH1 = (SYSCLK/BAUDRATE/2/4)。 CKCON amp。= ~0x0B。 CKCON |= 0x01。 } else if (SYSCLK/BAUDRATE/2/256 12) { TH1 = (SYSCLK/BAUDRATE/2/12)。吉 林 化 工 學(xué) 院 信 息 與 控 制 工 程 學(xué) 院 專 業(yè) 綜 合 設(shè) 計(jì) 說 明 書 21 CKCON amp。= ~0x0B。 } else if (SYSCLK/BAUDRATE/2/256 48) { TH1 = (SYSCLK/BAUDRATE/2/48)。 CKCON amp。= ~0x0B。 CKCON |= 0x02。 } else { while (1)。 } TL1 = TH1。 TMOD amp。= ~0xf0。 TMOD |= 0x20。 TR1 = 1。 TI0 = 1。 ES0 = 1。 EA = 1。}//串 口 中 斷void UART0_Interrupt () interrupt 4{ if (RI0 == 1) {RI0 = 0。 //清 空 標(biāo) 志 位if(Index == 0) TR0 = 1。CommBuffer[Index] = SBUF0。 //依 次 保 存 下 發(fā) 命 令I(lǐng)ndex++。if(Index == 8) { EN = 1。 Index = 0。 //清 空 序 號 R_Finish = 1。 //接 收 一 次 命 令 完 成 } } if (TI0 == 1) { //TI0 = 0。 //此 處 暫 時 不 清 空 標(biāo) 志 位 , 因 為 在 發(fā) 送 子 函 數(shù) 里 面 采 用 了 查 詢 方 式 , 更 加 精 確 ! 否 則 出 錯 ! }}//CRC 校 驗(yàn) 計(jì) 算 函 數(shù)uint crc16(uchar *puchMsg, uint Length) { 基 于 Modbus 協(xié) 議 的 數(shù) 據(jù) 采 集 系 統(tǒng) 22 uchar uchCRCHi = 0xFF。 //預(yù) 設(shè) 檢 驗(yàn) 碼 為 0xFFFF。 uchar uchCRCLo = 0xFF。 uint uIndex。 //CRC 循 環(huán) 中 的 索 引 while (Length ) //傳 輸 消 息 緩 沖 區(qū) { uIndex = uchCRCHi ^ *puchMsg++。 //計(jì) 算 CRC uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex]。 uchCRCLo = auchCRCLo[uIndex]。 } return(uchCRCLo 8 | uchCRCHi) 。 }//單 片 機(jī) 往 電 腦 發(fā) 送 函 數(shù)void SendtoPC(){ int i。 for(i = 0。i9。i++) { SBUF0 = sendBuf[i]。 while(!TI0)。 TI0 = 0。 }}//寫 發(fā) 送 緩 存void ReadReg_WriteoutBuff(){ uchar addr。 uchar tempAddr。 uint crcData。 uchar readCount。 uchar byteCount。 addr = CommBuffer[3]。 //只 選 取 低 位 tempAddr = addr。 readCount = CommBuffer[5]。 //要 讀 的 個 數(shù) byteCount = readCount * 2。 //每 個 寄 存 器 內(nèi) 容 占 兩 個 字 節(jié) , 都 為 雙 字 節(jié) 數(shù) 據(jù) sendBuf[0] = SlaveID。 //寫 要 發(fā) 送 緩 存 sendBuf[1] = 3。 sendBuf[2] = byteCount。 sendBuf[3] = [0]。 sendBuf[4] = [1]。 sendBuf[5] = [2]。 sendBuf[6] = [3]。 byteCount += 3。 /加 上 前 面 的 地 址 、 功 能 碼 、 地 址 , 共 3+byteCount 個 字 節(jié) , 得 出 新 的 字節(jié) 數(shù) , 保 持 最 新吉 林 化 工 學(xué) 院 信 息 與 控 制 工 程 學(xué) 院 專 業(yè) 綜 合 設(shè) 計(jì) 說 明 書 23 crcData = crc16(sendBuf,7)。 //計(jì) 算 新 的 要 上 傳 的 CRC 驗(yàn) 證 碼 ,7 為 最 大 下 標(biāo) 減 1 sendBuf[byteCount] = crcData amp。 0xff。 //寫 CRC 校 驗(yàn) 碼 發(fā) 送 緩 存 , 低 位 在 前 byteCount++。 sendBuf[byteCount] =(crcData 8)。 //高 位 在 后 SendtoPC()。 //將 寫 好 的 響 應(yīng) 數(shù) 據(jù) 上 傳}//分 析 接 收 的 命 令 并 且 作 出 響 應(yīng) 的 應(yīng) 答void AnalyzeRecieve(){ uint crcData。 //儲 存 校 驗(yàn) 計(jì) 算 返 回 的 CRC 校 驗(yàn) 碼 , 此 時 校 驗(yàn) 接 收 的 命 令 if(CommBuffer[0] == SlaveID) //查 看 設(shè) 備 號 是 否 匹 配 { crcData = crc16(CommBuffer,6)。 //計(jì) 算 CRC 校 驗(yàn) , 6 為 命 令 數(shù) 組 最 大 下 標(biāo) 減 一if(crcData == (CommBuffer[7]8)+CommBuffer[6]) //檢 驗(yàn) 校 驗(yàn) 碼 { if(CommBuffer[1] == 3) //如 果 為 03 號 命 令 : 讀 取 保 持 寄 存 器 (一 個 或 多 個 ) { ReadReg_WriteoutBuff()。 //讀 寄 存 , 寫 即 將 上 傳 的 相 應(yīng) 數(shù) 據(jù) 緩 存 數(shù) 組 } } }}//T0 初 始 化void T0_Init(){ TH0 = T0H。 TL0 = T0L。 TMOD |= 0x01。 CKCON amp。= 0xfc。 TR0 = 0。 ET0 = 1。}//T0 中 斷 服 務(wù) 程 序void T0s() interrupt 1{ TH0 = T0H。 TL0 = T0L。 Index = 0。 TR0 = 0。}//主 函 數(shù)void main()基 于 Modbus 協(xié) 議 的 數(shù) 據(jù) 采 集 系 統(tǒng) 24 { SYSCLK_Init()。 IO_Init()。 ADC_Init()。 T0_Init()。 UART0_Init()。 EN =0。 //使 能 ADM2582 的 RXD, 使 其 只 能 接 收 , 不 能 發(fā) 送 while(1) {if(R_Finish == 1) //如 果 單 片 機(jī) 接 收 到 命 令 { R_Finish = 0。 ADC0()。 //采 集 電 壓 AnalyzeRecieve()。 //分 析 和 對 請 求 命 令 做 出 響 應(yīng) EN =0。 //允 許 下 次 接 收 } }
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1