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

正文內(nèi)容

基于at89s51單片機(jī)的溫室大棚溫度控制系統(tǒng)設(shè)計(jì)(參考版)

2024-12-07 17:01本頁面
  

【正文】 所以采用 CPU編譯碼可在數(shù)據(jù)識別位前加一些亂碼以抑制零電平干擾。 碼組格式推薦方案 : 前導(dǎo)碼+同步碼+數(shù)據(jù)幀 。另一方面,計(jì)算機(jī)系統(tǒng)(包括單片機(jī))對 RF組件都存在一定的電磁干擾,如果 處理不當(dāng)會導(dǎo)致無線傳輸傳輸距離變近,甚至不能正常工作。 在本設(shè)計(jì)一開始使用的就是,受到的數(shù)據(jù)就有亂碼,改為 。本文主要針對的是內(nèi)部干擾源采取相關(guān)措施。外部干擾源是指那些與系統(tǒng)結(jié)構(gòu)無關(guān),而是由使用條件和外部環(huán)境因素決定的。 (1) 干擾源 有用信號以外的噪聲或造成不良變化的部分都稱為干擾 。 //最后,把轉(zhuǎn)換后的溫度值擴(kuò)大十倍,變成整數(shù),方便顯示程序中進(jìn)行個十百位的分離 ; ? 結(jié)論:在編寫程序時,如果對于同一個問題的實(shí)現(xiàn)有多種方法,應(yīng)對它們加以分析 、比較,選擇對單片機(jī)運(yùn)算要求盡量低的、指令周期短的算法實(shí)現(xiàn)。 //與 0f與完后 , 剩下低八位的低四位 ; p=n4。 //移位后的倆數(shù)相或得 到的是溫度的整數(shù)部分 ; n=camp。 //溫度大于 0時 , 高八位的高四位是 0, 移位后 , 剩下低四位 ; c=c4。 //低八位 ; e==read_byte()。 在進(jìn)行調(diào)試的時候,發(fā)現(xiàn)程序 執(zhí)行 tt=temp*; 十六分之一,把這個數(shù)右移 4位就行了,單片機(jī)處理移位指令 比較容易,左移或右移一位只需用一個周期數(shù),相比處理浮點(diǎn)數(shù),對單片機(jī)來說,就輕松多了。 tt=temp*。 temp=8。 //讀 低八位 e=read_byte()。但在本設(shè)計(jì)中由于溫度值是浮點(diǎn)型,所以需要對它加以處理。 在本設(shè)計(jì)中,主要涉及的是與第二方面有關(guān)的內(nèi)容。 加了校驗(yàn)數(shù)據(jù)后,接收到的一組正確的數(shù)據(jù)如表 。 沒加數(shù)據(jù)頭進(jìn)行校驗(yàn)時,接收的一組數(shù)據(jù)如 表 。于是,我在程序上進(jìn)行了一些修改,我在發(fā)射程序中在發(fā)送溫度數(shù)值前加了兩個校驗(yàn)數(shù)據(jù) 0XAA、 0X55,只有在正確接收到這兩個數(shù)據(jù)之后才能進(jìn)入到接收大棚溫度的程序中,這樣就避免了接收到錯誤的數(shù)據(jù),確保有效數(shù)據(jù)的接收 。 因?yàn)闊o線收發(fā)模 塊靈敏度高 , 在沒有進(jìn)行數(shù)據(jù)傳輸時 , 它的數(shù)據(jù)輸出腳會有雜波輸出 , 這些雜波會被單片機(jī)的串口接收并處理。產(chǎn)生的 這個現(xiàn)象的 原因 有 很多:像單片機(jī)帶來的干擾,還有無線模塊本身也會有干擾導(dǎo)致接收不到正確的數(shù)據(jù)。 3) 有線通信成功后,把原來 的 那根線去掉,在兩塊板上分別接上發(fā)射和接收模塊, 把接收模塊的數(shù)據(jù)端接第二塊單片機(jī)的 RXD,對應(yīng)的電源和地接上, 測試接收端的液 晶是否能顯示正確的溫度。 實(shí)驗(yàn)步驟: 1)焊接另一塊接收板的單片機(jī)最小系統(tǒng) ,進(jìn)行 串口有線通信 的測試 。 圖 測溫模塊調(diào)試結(jié)果 23 (2) 無線模塊實(shí)驗(yàn) 實(shí)驗(yàn)?zāi)康模簩?shí)現(xiàn)溫度的無線傳輸。為了驗(yàn)證所測 數(shù)據(jù)的準(zhǔn)確性,又使用溫度計(jì)進(jìn)行了測量,測得的溫度是 ℃, 兩者對比顯 示測溫模塊存在 一些誤差 ,誤差大約為 ℃。顯示 , DS18B20接錯了,不能正常測溫,單片機(jī)讀它的數(shù)據(jù)端口得到的全是 1,即 FF,所以顯示 。 之 后把溫度傳感器取了下來,發(fā)現(xiàn)數(shù)碼管依然顯示 ,這說明傳感器根本沒起作用 。 2) 把整個電路通上電,進(jìn)行調(diào)試。 實(shí)驗(yàn)設(shè)備: 5V直流電源,溫度計(jì),萬用表。 仿真電路圖如圖 。 abcdefgdpa b c d e f g dpX T A L 218X T A L 119A L E30EA31P S E N29RS T9P 0 .0 /A D 039P 0 .1 /A D 138P 0 .2 /A D 237P 0 .3 /A D 336P 0 .4 /A D 435P 0 .5 /A D 534P 0 .6 /A D 633P 0 .7 /A D 732P 1 . 01P 1 . 12P 1 . 23P 1 . 34P 1 . 45P 1 . 56P 1 . 67P 1 . 78P 3 .0 /R X D10P 3 .1 /T X D11P 3 .2 /I NT 012P 3 .3 /I NT 113P 3 .4 /T 014P 3 .7 / R D17P 3 . 6 / W R16P 3 .5 /T 115P 2 .7 /A 1 528P 2 .0 / A 821P 2 .1 / A 922P 2 .2 /A 1 023P 2 .3 /A 1 124P 2 .4 /A 1 225P 2 .5 /A 1 326P 2 .6 /A 1 427U1A T 8 9 C5 12 4 . 0DQ2V C C3G ND1U4DS 1 8 B 2 0X1CR Y S T A LC31uFR21k 圖 測溫環(huán)節(jié)仿真 (3) 串口通信環(huán)節(jié)的仿真 在本例中是利用單片機(jī)的串口進(jìn)行無線發(fā)送和接收,所以先進(jìn)行串口調(diào)試。 (2) 測溫環(huán)節(jié)的仿真 在軟件 Proteus里畫出電路圖,主要是把數(shù)碼管連上,把溫度傳感器連到 對應(yīng)的管腳上;再把程序放進(jìn)去,點(diǎn)擊運(yùn)行進(jìn)行仿真。 4) 具有強(qiáng)大的原理圖繪制功能。 3) 提供軟件調(diào)試功能。 2) 支持主流單片機(jī)系統(tǒng)的仿真。該軟件的特點(diǎn)是: 1) 將 單片機(jī)仿真和 SPICE電路仿真相結(jié)合。用戶若想查看系統(tǒng)的硬件原理圖,點(diǎn)擊相應(yīng)的按鈕即可。 如果想清空歷史數(shù)據(jù),點(diǎn)擊清空按鈕即可。 圖 報(bào)警界面 點(diǎn)擊 數(shù)據(jù)操作,在下拉菜單中可以選擇 保 存 按鈕,就可以把當(dāng)前測得的溫度保存在事先建立好的 ,如圖 。如圖 。具體界面如圖 。 圖 溫度顯示界面 當(dāng)用戶點(diǎn)擊主菜單中的串口選項(xiàng),會看到下拉菜單中有兩 個選 項(xiàng),點(diǎn)擊打開后,馬上會顯示 出 溫度,并且繪制曲線。 fclose(fp)。 fp=fopen(.\\,a)。 //直到找不到 空格 ReceiveStr = 。 //把接收到的溫度繪成曲線 i=i+1。 //數(shù)據(jù)放進(jìn)數(shù)組 ReceiveStr =(1,Dot)。 //檢查空格 的位置 if (Dot==0) break。 39。 //刪除了 string字符串首部和尾部空格的字符串 ReceiveStr = ReceiveStr + Buf。 因?yàn)?需要得到溫度的實(shí)時曲線圖 ,所以 在定時器 timer的 OnTimer事件中編寫程序,關(guān)鍵的語句如下: if (Comm1PortOpen) //判斷串口是否打開 { mReceiveText = Comm1Input 。通過設(shè)置組件屬性,可以生成點(diǎn)圖、線圖、餅圖、柱狀圖、區(qū)域圖,能夠顯示一維序列或二維序列,可以自由設(shè)定刻度線和坐標(biāo)。 //打開 串口 、接收和發(fā)送數(shù)據(jù)的語句 Comm1PortOpen=true。 TComm控件接收和發(fā)送數(shù)據(jù)支持字符串和字節(jié)兩種傳輸模式。 TComm 控件可以實(shí)現(xiàn)DTR/DSR、 RTS/CTS 硬件流控制 ,是比較完善的串口控件。其中使用 API 通信函數(shù)實(shí)現(xiàn)步驟稍有不同 ,它是先打開串口 ,在得到串口句柄后 ,再進(jìn)行串口參數(shù)的配置。 技術(shù) 用 C++Builder具體實(shí)現(xiàn)串口的通信,必須掌握 C++Builder中對串口操作的方法,每種語言都提供了對串口讀寫操作,方法一般各有不同,在 C++ 4種實(shí)現(xiàn)方法有 : (1) 采用在 C++程序中嵌入行間匯編 ,直接對 UART串口通訊硬件進(jìn)行操作 ,實(shí)時性最高 ,但編程需要了解硬件 ; (2) 利用 Windows的 API通信函數(shù) ,編程較復(fù)雜 ,但靈活性最大 ,實(shí)時性較高 ; (3) 利用 VB下高性能的 ActiveX控件 MSComm, 編程簡單 , 實(shí)時性不錯 , 二進(jìn)制接收模式編程稍有點(diǎn)復(fù) 雜 ; (4) 利網(wǎng)上 的串口通信控件 TComm, 編程最簡單方便 ,且可靠。 C++ Builder作為一個開發(fā)快、界面友好的應(yīng)用軟件 ,已經(jīng)廣泛應(yīng)用于工程項(xiàng)目的開發(fā)中。 Borland C++ Builder是一種面向?qū)ο蟮目梢暬瘧?yīng)用程序開發(fā)工具 ,為程序開發(fā)人員提供了十分輕松而快捷的開發(fā)環(huán)境。 C++Builder 的介紹 C++Builder 是 Borland 公司 98年推出的全新 32 位 Windows開發(fā)工具。 delay(100)。 //再把百位發(fā)送給電腦 while(!TI)。 //接收百位 write_data(a)。 RI=0。 圖 DS18B20讀時序 16 if(i==0x55) //再繼續(xù)判斷是否接收到 0x55,接收到的話就可以繼續(xù)接收正確的數(shù)據(jù) write_(0x80)。 RI=0。 i=SBUF。 ?? //依次發(fā)送 其他各位 } 2) 接收溫度程序 void receive() { while(!RI)。 //將測得的溫度值的各位及小數(shù)點(diǎn)逐位的發(fā)送出去 while(!TI)。 TI=0。 SBUF=0x55。 //以下這段程序是為了防止無線接收模塊受到干擾 ,接到的數(shù)據(jù)不對 while(!TI)。 (2) 溫度無線傳輸軟件設(shè)計(jì) 此模塊的軟件設(shè)計(jì)主要是 要確保接收到正確的溫度數(shù)據(jù),所以在程序中要加一些數(shù)據(jù)頭進(jìn)行校驗(yàn)。s 之內(nèi)采樣總線狀態(tài)。s 。s 的恢復(fù)時間。所有讀時隙至少需要 60181。 寫時序如圖 示。s ,且在 2次獨(dú)立的寫時隙之間至少需要 1181。 ? 存貯器操作命令 44H:開始溫度轉(zhuǎn)換 ? DS18B20 的讀寫操作 1) 寫時間片,包括寫 0時隙和寫 1時隙。該命令也可以用在單片 DS18B20情況。 } ? ROM操作命令 主機(jī)收到 DS18B20在線信號后,就可以發(fā)送四個 ROM操作命令中的一個,這些命令字均為8位的 16進(jìn)制數(shù)(最低位在前),現(xiàn)將這些命令說明如下。s ,總線上所以器件都將被復(fù)位 DS = 1。 // 精確延時大于 480181。 圖 DS18B20初始化時序 復(fù)位子程序如下 : void reset ( ) { DS = 0。s ,然后發(fā)出存在脈沖(一個 60~ 240181。單 線總線由 的 上拉電阻拉到高電平。 圖 下位機(jī)軟件設(shè)計(jì)的流程圖 具體操作: ? 初始化: 總線控制器發(fā)出一個復(fù)位脈沖(一個最少保持 480181。s 的存在低脈沖,主 CPU收到此信號表示復(fù)位成功。s ,然后釋放,當(dāng) DS18B20受到信號后等待 15~ 60181。 (1) 溫度傳感器接口軟件設(shè)計(jì) 主機(jī)(單片機(jī))控制 DS18B20 完成溫度轉(zhuǎn)換要經(jīng)過三個步驟:每一次讀寫之前都要DS18B20 進(jìn)行復(fù)位操 作,復(fù)位成功后發(fā)送一條 ROM 指令,最后發(fā)送 RAM 指令,這樣才能對DS18B20進(jìn)行預(yù)定的操作。 具 體設(shè)計(jì)主要分兩部分,一是溫度傳感器的驅(qū)動和測溫程序,另一個是利用單片機(jī)串口編寫 的無線傳輸程序。在完成流程圖的設(shè)計(jì)之后,便可編寫程序了。 (4) 編寫程序。 (3) 模塊化程序設(shè)計(jì),是單片機(jī)應(yīng)用中最常用的程序設(shè)計(jì)技術(shù)。現(xiàn)約定系統(tǒng)的通信協(xié)議如下: 1)串行通信波特率為 ; 2)數(shù)據(jù)傳送格式為 1個起始位, 8個數(shù)據(jù)位, 1個停止位; 3)無奇偶校驗(yàn); 4)串行通信方式采用查詢方式; 13 4 軟件設(shè)計(jì) 設(shè)計(jì)原則 (1) 明確任務(wù),弄清軟件所承擔(dān)的任務(wù)細(xì)節(jié)。 在串行通信的硬件設(shè)計(jì)完成后,通信雙方(在本 系統(tǒng) 中指單片機(jī)和上位機(jī))必須約定通信協(xié)議,否則將無法保證通信數(shù)據(jù)的可靠性,從而失去通信的意義??煽啃允堑谝晃坏模俣戎皇窃诳煽康幕A(chǔ)上的追求。而 MAXIM 公司的 MAX232芯片之需要 +5V電源就可以實(shí)現(xiàn) TTL和 EIA的雙向電平轉(zhuǎn)換,因此得到了廣泛應(yīng)用。 12 EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P10/T1P11/T2P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U180C52X2X1C1+
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1