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

正文內(nèi)容

基于rs485總線的遠(yuǎn)程監(jiān)測實(shí)時(shí)溫度系統(tǒng)畢業(yè)論文-資料下載頁

2025-06-22 01:29本頁面
  

【正文】 模式0 同步移位寄存器方 式 fosc/l20 1 模式l 10位異步接收發(fā)送 可變(由定時(shí)器控制)1 0 模式2 11位異步接收發(fā)送 fosc/32或fosc/641 l 模式3 11位異步接收發(fā)送 可變(由定時(shí)器控制)REN:允許接收控制位。只有當(dāng) REN=1 時(shí),允許接收數(shù)據(jù);若 REN=0 時(shí),則禁止接收。該位相當(dāng)于串行接收的開關(guān),由軟件置 1 或清零。 TB8:在模式 2 和模式 3 中,TB8 是發(fā)送數(shù)據(jù)的第 9 位,根據(jù)發(fā)送數(shù)據(jù)的需要由軟件置位或復(fù)位。它可作為奇偶校驗(yàn)位(單機(jī)通信),也可在多機(jī)通信中作為發(fā)送地址幀或數(shù)據(jù)幀的標(biāo)志位。多機(jī)通信時(shí),一般約定:發(fā)送地址幀時(shí),設(shè)置 TB8=1;發(fā)送數(shù)據(jù)幀時(shí),設(shè)置 TB8=0。在模式 0 或模式 1 中,該位未用。 RB8:在模式 2 或模式 3 中,RB8 為接收數(shù)據(jù)的第 9 位,它即可以是約定的奇偶校驗(yàn)位,也可以是約定的地址/數(shù)據(jù)標(biāo)志位,可根據(jù) RB8 被置位的情況對接收數(shù)據(jù)進(jìn)行某種判斷。例如多機(jī)通信時(shí),若 RB8=1,說明收到的數(shù)據(jù)為地址幀;RB8=0,收到的數(shù)據(jù)為數(shù)據(jù)幀。在模式 1 時(shí),若 SM2=0(即不是多機(jī)通信的情況),則 RB8 是已接收到的停止位。模式 0 中該位未用。 TI:發(fā)送中斷標(biāo)志,在一幀數(shù)據(jù)發(fā)送結(jié)束時(shí)由硬件置位。在模式 0 中,串行發(fā)送完 8 位數(shù)據(jù)時(shí),或其它模式串行發(fā)送到停止位的開始時(shí)由硬件置位。TI=1 表示“發(fā)送緩沖器已空” ,通知 CPU 可以發(fā)送下一幀數(shù)據(jù)。TI 位可作為查詢,也可作為中斷申請標(biāo)志位,TI 不會自動復(fù)位,必須由軟件清零。RI:接收中斷標(biāo)志,在接收到一幀有效數(shù)據(jù)后由硬件置位。在模式 0 中,接收完8 位數(shù)據(jù)后,或其它方式中接收到停止位時(shí)由硬件置位。RI=1 表示一幀數(shù)據(jù)接收完畢,并已裝入接收緩沖器中,即表示“接收緩沖器以滿”通知 CPU 可取走數(shù)據(jù)。該位可作為查詢,也可作為中斷申請標(biāo)志位,同樣 RI 不會自動復(fù)位,必須由軟件清零,以準(zhǔn)備接收下一幀數(shù)據(jù)。(2)電源控制寄存器 PCONPCON 是為了在 CHMOS 的 MCS51 系列單片機(jī)上實(shí)現(xiàn)電源控制而設(shè)置的,字節(jié)地址為87H,不可位尋址,PCON 的內(nèi)容如下:D7 D6 D5 D4 D3 D2 D1 D0其中,PCON 的低 4 位是 CHMOS 器件的掉電方式控制位。 在 HMOS 的 MCS51 系列單片機(jī)中,PCON 寄存器中只有最高位 SMOD 與串行口的工作有關(guān),其它位都是虛設(shè)的。SMOD 稱為波特率倍增位。在模式 l、模式 模式 3 時(shí),若SM0D — — — GF1 GF0 PD IDL 第 23 頁 共 58 頁SMOD=1,則波特率提高一倍;若 SMOD=0,則波特率不加倍。復(fù)位時(shí),PCON=00H。 波特率設(shè)計(jì)在串行通信中,收發(fā)雙方對發(fā)送或接收的數(shù)據(jù)速率要有一定的約定,通過軟件對MCS51 系列單片機(jī)的串行口編程可設(shè)置 4 種工作模式。其中,模式 0 和模式 2 的波特率是固定的,而模式 l 和模式 3 的波特率是可變的,由定時(shí)器 Tl 或 T2 的溢出率決定。本系統(tǒng)采用的是模式 1。(1)模式 0 的波特率 在模式 0 時(shí),每個(gè)機(jī)器周期產(chǎn)生一個(gè)移位時(shí)鐘,發(fā)送或接收一位數(shù)據(jù)。所以,波特率固定為振蕩頻率的 1/12,且不受 SMOD 的影響。即 模式 0 的波特率 = (41)12oscf(2)模式 2 的波特率 模式 2 波特率的產(chǎn)生與模式 0 不同,模式 2 的波特率由系統(tǒng)的振蕩頻率 fosc 和PCON 的最高位 SMOD 確定,當(dāng) SMOD=0 時(shí),波特率為 fosc/64;若 SMOD=1,則波特率fosc/32,即 模式 2 的波特率 = (42)642SMOD?oscf(3)模式 1 和模式 3 的波特率 模式 l 和模式 3 的移位時(shí)鐘脈沖由定時(shí)器 Tl 的溢出率決定,故波特率由定時(shí)器 Tl的溢出率與 SMOD 值來共同決定,即模式 l 和模式 3 的波特率 = 的溢出率 (43)32SMOD?1T當(dāng) Tl 做波特率發(fā)生器使用時(shí),最典型的用法是使 Tl 工作在模式 2(初值自動加載),定時(shí)方式,若計(jì)數(shù)初值為 X,則每過“256X”個(gè)機(jī)器周期,定時(shí)器 Tl 就會產(chǎn)生一次溢出。為了避免因溢出而引起中斷,此時(shí)應(yīng)禁止中斷。這時(shí),溢出周期為: T = (44))256(1fosc? 溢出率為溢出周期的倒數(shù),所以 波特率 = (45)321(56)SMODoscfX??此時(shí),定時(shí)器 Tl 工作在模式 2 時(shí)的初值為 第 24 頁 共 58 頁 (46)2561384oscfXSMOD????( )波 特 率5 系統(tǒng)軟件程序設(shè)計(jì) 可以看出,整個(gè)程序的流程和協(xié)議設(shè)計(jì)密切相關(guān)。對于從機(jī)而言,它的工作與主機(jī)密切相關(guān),它是完全被動的,根據(jù)主機(jī)的指令執(zhí)行相應(yīng)的操作。從機(jī)何時(shí)去收集設(shè)備的狀態(tài)信息也取決于主機(jī),當(dāng)從機(jī)收到主機(jī)發(fā)送讀設(shè)備狀態(tài)信息指令時(shí),才開始收集信息并發(fā)送相應(yīng)的指令進(jìn)行上報(bào)。這里存在一個(gè)問題,如果節(jié)點(diǎn)處的設(shè)備狀態(tài)發(fā)生變化,它并不會主動通知從機(jī),主控機(jī)也無法及時(shí)獲知并做出處理,所以需根據(jù)具體的應(yīng)用設(shè)置主機(jī)輪詢的定時(shí)時(shí)間。 通信協(xié)議設(shè)計(jì) 對于任何涉及通信或者數(shù)據(jù)交換(本質(zhì)上也是數(shù)據(jù)通信)的系統(tǒng),通信協(xié)議的設(shè)計(jì)都是軟件設(shè)計(jì)的前提和關(guān)鍵。整個(gè)系統(tǒng)軟件分為主控機(jī)(單片機(jī))端和從機(jī)(單片機(jī))端兩部分。對于協(xié)議設(shè)計(jì)而言,最重要的就是數(shù)據(jù)幀結(jié)構(gòu)的設(shè)計(jì)。除了數(shù)據(jù)幀結(jié)構(gòu)的定義外,整個(gè)系統(tǒng)的通信還需要遵守下面的規(guī)則: (1)主控機(jī)主導(dǎo)整個(gè)通信過程。由主控機(jī)定時(shí)輪詢各個(gè)節(jié)點(diǎn)處的從機(jī),并要求這些從機(jī)提交其相對應(yīng)設(shè)備的狀態(tài)信息。 (2)主控機(jī)在發(fā)送完準(zhǔn)備好命令后,進(jìn)入接收狀態(tài),同時(shí)開啟超時(shí)控制。如果接收到錯誤的信息則繼續(xù)等待,如果在規(guī)定時(shí)間內(nèi)未能接收到從機(jī)的返回響應(yīng)幀,則認(rèn)為從機(jī)不在位,取消這次查詢。 (3)主控機(jī)接收到從機(jī)的返回命令幀后,發(fā)送“等待接收”指令,進(jìn)入接收狀態(tài),同時(shí)開啟超時(shí)控制。如果接收到錯誤的信息則繼續(xù)等待;如果在規(guī)定的時(shí)間內(nèi)未能接收到從機(jī)的返回信息,則超時(shí)計(jì)數(shù)加 1,并且主控機(jī)將重新發(fā)送“等待接收”指令;如果超過 3 次,則返回錯誤信息,取消這次查詢。 (4)從機(jī)復(fù)位后,將等待主控機(jī)發(fā)送指令,并根據(jù)具體的指令內(nèi)容做出應(yīng)答。如果接收到的命令幀有錯誤,則會直接丟棄改幀,不做任何處理。 第 25 頁 共 58 頁 本系統(tǒng)中數(shù)據(jù)幀結(jié)構(gòu)的定義如表所示。數(shù)據(jù)幀的內(nèi)容包括起始字節(jié)、地址字節(jié)、數(shù)據(jù)類型、數(shù)據(jù)字節(jié)、校驗(yàn)和。表 51 單片機(jī) RS485 總線的遠(yuǎn)程溫度監(jiān)測系統(tǒng)數(shù)據(jù)幀結(jié)構(gòu)起始字節(jié) 地址字節(jié) 數(shù)據(jù)類型字節(jié) 數(shù)據(jù)字節(jié) 校驗(yàn)和字節(jié)1 字節(jié) 1 字節(jié) 1 字節(jié) 2 字節(jié) 1 字節(jié) 起始字節(jié)定義為“0Xaa” 。地址字節(jié)實(shí)際上存放的是從機(jī)對應(yīng)的設(shè)備號,此設(shè)備號在一開始就由撥碼開關(guān)組()予以設(shè)置。在工作時(shí),每一個(gè)設(shè)備都按規(guī)定設(shè)置好,一般不會改動,改動時(shí)重新設(shè)置開關(guān)即可得到,但要注意設(shè)置時(shí)應(yīng)該避免地址重復(fù)。本系統(tǒng)的數(shù)據(jù)幀主要有幾種,這由數(shù)據(jù)類型字節(jié)決定,它們分別是:主機(jī)詢問從機(jī)是否在位的(ACTIVE)指令,從機(jī)應(yīng)答在位的(READY)指令和從機(jī)發(fā)送設(shè)備狀態(tài)信息的指令。從機(jī)發(fā)送設(shè)備狀態(tài)信息指令幀實(shí)際上是真正的數(shù)據(jù)幀,該幀中的數(shù)據(jù)字節(jié)存放的是設(shè)備的狀態(tài)信息。 數(shù)據(jù)校驗(yàn)方法奇偶校驗(yàn)原理:通過計(jì)算數(shù)據(jù)中“1”的個(gè)數(shù)是奇數(shù)還是偶數(shù)來判斷數(shù)據(jù)的正確性。在被校驗(yàn)的數(shù)據(jù)后加一位校驗(yàn)位或校驗(yàn)字符用作校驗(yàn)碼實(shí)現(xiàn)校驗(yàn)。校驗(yàn)位的生成方法:(1)奇校驗(yàn):確保整個(gè)被傳輸?shù)臄?shù)據(jù)中“1”的個(gè)數(shù)是奇數(shù)個(gè),即載荷數(shù)據(jù)中“1”的個(gè)數(shù)是奇數(shù)個(gè)時(shí)校驗(yàn)位填“0”,否則填“1”。(2)偶校驗(yàn):確保整個(gè)被傳輸?shù)臄?shù)據(jù)中“1”的個(gè)數(shù)是偶數(shù)個(gè),即載荷數(shù)據(jù)中“1”的個(gè)數(shù)是奇數(shù)個(gè)時(shí)校驗(yàn)位填“1”,否則填“0”。 使用奇偶校驗(yàn)碼校驗(yàn)的特點(diǎn):校驗(yàn)處理過程簡單,但如果數(shù)據(jù)中發(fā)生多位數(shù)據(jù)錯誤就可能檢測不出來,更檢測不到錯誤發(fā)生在哪一位;主要應(yīng)用于低速數(shù)字通信系統(tǒng)中,一般異步傳輸模式選用偶校驗(yàn),同步傳輸模式選用奇校驗(yàn)。本系統(tǒng)采用的是通用的“校驗(yàn)和”檢驗(yàn)方法來進(jìn)行幀的校驗(yàn)。它是在數(shù)據(jù)處理和數(shù)據(jù)通信領(lǐng)域中,用于校驗(yàn)?zāi)康牡囊唤M數(shù)據(jù)項(xiàng)的累加和。這些數(shù)據(jù)項(xiàng)可以是數(shù)字或在計(jì)算檢驗(yàn)的過程中看作數(shù)字的其它字符串。實(shí)現(xiàn)方法是將所發(fā)送的數(shù)據(jù)字節(jié)全部進(jìn)行累加,然后發(fā)送端將待發(fā)送的數(shù)據(jù)進(jìn)行檢驗(yàn)和計(jì)算,將校驗(yàn)和的值放在數(shù)據(jù)后一起發(fā)送出去,接收端在收到一幀數(shù)據(jù)后,將數(shù)據(jù)字節(jié)進(jìn)行累加,將累加后的結(jié)果與發(fā)送方發(fā)送過來的校驗(yàn)和進(jìn)行比較,如果相當(dāng)則接收正確,否則表示數(shù)據(jù)有誤,此幀當(dāng)做丟棄處理。 從機(jī)系統(tǒng)控制設(shè)計(jì) 第 26 頁 共 58 頁從機(jī)端軟件包括數(shù)據(jù)采集和 RS485 總線通信程序,其中數(shù)據(jù)采集部分可以設(shè)計(jì)成一個(gè)函數(shù),在主程序中調(diào)用即可??偟牧鞒淌牵合冗M(jìn)行各參數(shù)的設(shè)置(溫度、LED、當(dāng)前狀態(tài)等)和函數(shù)的相關(guān)的定義。在主函數(shù)中,先進(jìn)行初始化相關(guān)的參數(shù)(串口、當(dāng)前狀態(tài)) ,讀取本機(jī)地址,然后等待,在等待過程中一直更新并顯示當(dāng)前狀態(tài)。從機(jī)接收到主機(jī)發(fā)過來的地址幀,首先判斷是不是它的地址指令,如果是,則從機(jī)再發(fā)送響應(yīng)幀的命令給主機(jī),并在主機(jī)的顯示屏上顯示。如果不是該從機(jī)的地址或是出現(xiàn)故障,將不發(fā)送;若是該從機(jī)的地址,但是出現(xiàn)故障,則主機(jī)顯示屏上顯示出現(xiàn)故障。從機(jī)所控制的主程序流程圖如圖 所示。 第 27 頁 共 58 頁圖 從機(jī)所控制的主程序流程圖 從機(jī)串口通信協(xié)議設(shè)計(jì)從機(jī)方面的通信協(xié)議是:首先是關(guān)閉中斷(EA=0) ,判斷當(dāng)前狀態(tài)是否為接收狀態(tài)(RI=1),如果是,則將接收到的數(shù)據(jù)進(jìn)行緩沖,開始計(jì)數(shù)所收到的數(shù)據(jù)的字節(jié)數(shù);如果不是,則直接清除接收到的信息(RI=0) ,并且打開中斷(EA=1) 。然后判斷所接收到的數(shù)據(jù)幀是否為命令幀,即第一個(gè)字節(jié)是否為 0XAA;接著就是判斷所接收到的數(shù)據(jù)幀的字節(jié)是否符合要求,即字節(jié)數(shù)是否大于 5 字節(jié);接著就是對所接收到的信息按字節(jié),一個(gè)一個(gè)進(jìn)行判斷,首先判斷是否為本機(jī)地址和校驗(yàn)和是否正確,如果正確,則接著判斷主機(jī)是向哪種類型數(shù)據(jù)發(fā)出要求發(fā)送數(shù)據(jù)的命令,然后做出相應(yīng)的響應(yīng),檢驗(yàn)完一幀數(shù)據(jù)后直接清接收(RI=0),并打開中斷來等待下一次的命令。具體的通信協(xié)議流程圖如下圖 所示。 第 28 頁 共 58 頁中斷入口地址關(guān)中斷 清屏是否為接收狀態(tài)?接收數(shù)據(jù)送緩沖,計(jì)數(shù)值加 1是否為本機(jī)地址?禁止接收接收數(shù)據(jù)清零接收到的數(shù)據(jù)幀是否大于 5 字節(jié)?計(jì)數(shù)清零,檢查結(jié)果清零本機(jī)地址和校驗(yàn)和是否正確控制 LED 燈亮判斷數(shù)據(jù)類型,并返回相應(yīng)值 清接收,開中斷NYNYNY 圖 從機(jī)控制的串口通信協(xié)議流程圖主要的程序代碼如下:void Interrupt_serial() interrupt 4 //using 1{ EA = 0。//關(guān)中斷 if(RI) { Recv_data[Recv_count]=SBUF。 Recv_count++。 if(Recv_data[0]!=0xaa)Recv_count=0。 RI=0。 if(Recv_count5) { Recv_count=0。 Check_Reslut = 0。for(Chck_lp=1 。 Chck_lp5 。 Chck_lp++)Check_Reslut+=Recv_data[Chck_lp]。 //和校驗(yàn)if((Recv_data[1]==DEV_Addr)amp。amp。(Check_Reslut==Recv_data[5])) //為本機(jī)地址和校驗(yàn)和正確 { LED8 = !LED8。 switch(Recv_data[2]) {case ACTIVE: Send_Bus_Data(READY,0x3333)。break。//返回存在信號給主機(jī) case TEPMRT: Send_Bus_Data(TEPMRT,Tempature)。break。//返回溫度值case CONTRL_LED: P2 = (P2amp。0x80) |(~(Recv_data[3]))。 break。//控制 LED 燈 default:break。 第 29 頁 共 58 頁 } } } } 溫度采集程序設(shè)計(jì)這部分主要的功能是:通過數(shù)字溫度傳感器 DS18B20 數(shù)據(jù)接口(DQ)進(jìn)行數(shù)據(jù)的讀取。具體的工作流程是:首先是讓 DS18B20 復(fù)位,然后是寫入跳過 ROM 命令(0XCC) ,然后是寫入轉(zhuǎn)換指令(0X44)
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1