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

正文內(nèi)容

主從式溫度監(jiān)測報警與控制系統(tǒng)電子課程設計-在線瀏覽

2024-10-28 17:45本頁面
  

【正文】 后 DS18B20 回到空閑狀態(tài), 溫度數(shù)據(jù)以帶符號位的 16位補碼存儲在溫度寄存器中,如下圖所示。以 12位轉化為例:用 16位符號擴展的二進制補碼讀數(shù)形式提供,以 ℃ /LSB 形式表達,其中 S 為符號位。如下表所示。若 T〉 TH或 T〈 TL,則將該器件內(nèi)的告警標志置位,并對主機發(fā)出的告警搜索命令作出響應。一旦某測溫點越限,主機利用告警搜索命令即可識別正在告警器件。 液晶顯示器 LCD1602 LCD1602 是一種字符型液晶顯示模塊,專門用于顯示字母、數(shù)字、符號等點陣式 LCD,目前常用的有 16* 16* 20*2 和 20*4 行等的模塊。 LCD1602 的主要技術參數(shù)為: 芯片工作電壓: ~5V 模塊最佳工作電壓: 表 引腳接口說明表 主從式溫度監(jiān)測報警與控制系統(tǒng) ☆控制接口介紹: 1) LCD1602 的結構特點 LCD1602 具有簡單而功能較強的指令集,可實現(xiàn)字符移動、閃爍等功能,與 MPU 的數(shù)據(jù)轉送可采用 8位并行傳輸或 4 位并行傳輸兩種方式。 2) LCD1602 與 MPU 接口信號 LCD1602 與 MPU 接口信號及其意義見下表。 MAX232 芯片 單片機有一個全雙工的串行通信口,所以單片機和 PC 機之間可以方便地進行串口通信。 MAX232 的引腳圖如下圖所示。 10V電壓,以實現(xiàn)電壓的轉換,既符合 RS232 的要求,又可實現(xiàn) +5V 單電源供電;所以 MAX232 收發(fā)器電路給短距離串行通信帶來極大的方便。 圖 MAX232 的內(nèi)部結構 從圖中可以看出,其結構基本可分為三個部分,即: 1)電荷泵電路 主從式溫度監(jiān)測報警與控制系統(tǒng) 由 6 腳和 4只電容構成。 2)數(shù)據(jù)轉換通道 由 1 1 1 14腳構成兩個數(shù)據(jù)通道。 8 腳( R2IN)、9腳( R2OUT)、 10腳( T2IN)、 7腳( T2OUT)為第二數(shù)據(jù)通道。 3)供電 15 腳 DNG、 16 腳 VCC( +5V)。主控制器采用單片機AT89C52,溫度傳感器采用 DS18B20,用 LCD1602 顯示模塊以及 RS232 串口傳送數(shù)據(jù)實現(xiàn)與 PC 機之間的通信。 對 51 系列單片機來說 ,最小系統(tǒng)一般 應該包括 :單片機、晶振電路、復位電路 。典型的 52 單片機當 RST 腳的高電平持續(xù)兩個機器周期以上就將復位,所以,適當組合 RC 的取值就可以保證可靠的復位。當然也有其他取法的 ,原則就是要讓 RC 組合可以在 RST 腳上產(chǎn)生不少于 2 個機周期的高電平 .至于如何具 體定量計算。 溫度采集電路 溫度采集電路通過溫度傳感器 DS18B20 采集被控對象的實時溫度,提供給 AT89C52 的 口作為數(shù)據(jù)的輸入,要想使 DS18B20 能夠進行精確的溫度轉換,I/O 線必須在轉換期間保證供電。 主從式溫度監(jiān)測報警與控制系統(tǒng) 圖 溫度采集電路框圖 說明: DS18B20 溫度傳感器適應電壓范圍寬,穩(wěn)定性很好,反應也較快,測溫范圍為 55~ +125。在實際使用中電路簡單,無需其他的外圍器件。首先啟動初始化, DS18B20 開始轉換,再讀出溫度轉換值 在設計中使用默認的 12 位轉換精度,外接供電電源,溫度數(shù)據(jù)的傳 輸 ,由于只有一根數(shù)據(jù)線 直接將數(shù)據(jù)線與單片機的 口相連接,由單片機通過此數(shù)據(jù)線讀取數(shù)據(jù)。 主從式溫度監(jiān)測報警與控制系統(tǒng) 圖 溫度 顯示報警電路 框圖 說明:顯示電路選用字符型液晶模塊 1602,它是采用的 5*7 的點陣圖形顯示字符。 在本設計中要顯示的溫度和其他字符可以滿足要求。 PC 機與單 片機通信接口電路 本設計采用 MAX232 作為 PC機與單片機的串行通信接口芯片。接口電路如圖 所示。所以單片機和 PC 機之間可以方便地進行串口通訊。 DEM 方式,簡單三連線結構。 系統(tǒng)的軟件設計 主程序設計 AT89C52 是該系統(tǒng)的核心部分,控制著溫度的轉換以及讀取溫度的數(shù)值并轉化成十進制數(shù)以及相 應的 ASCII 值在 LCD1602 上進行顯示,且通過 RS232 轉 USB接線器供 PC 機讀取溫度值。其MCU設計流程圖如圖 所示。 2)讀取 DS18B20 溫度程序代碼 void TemperatuerResult(void) 主從式溫度監(jiān)測報警與控制系統(tǒng) { p=id_buff。//讀序列號 Config18b20()。//18B20 初始化 WriteByte(0xcc)。//溫度轉換 Init18b20()。//跳過序列號 WriteByte(0xbe)。 GemTemp()。對溫度進行采集,按時序直接從溫度傳感器讀入溫度值的數(shù)字信號(這就是所測的溫度值,因為 DS18B20 是最新單線數(shù)字溫度傳感器),最后存入內(nèi)存。由于所讀出的數(shù)據(jù) 格式為二進制數(shù)的補碼,所以求出溫度值的原碼(當然正數(shù)是不必轉換)。其溫度采集流程圖如圖 所示。在與 PC機通信時我們選用方式 1來循環(huán)。 MAX232 芯片通過 DS18B20 溫度傳感器進行采集溫度放入單片機內(nèi)存,采集到的溫度將以二進制補碼的形式出現(xiàn),然后通過編寫程序將二進制補碼的形式轉換為字符的形式,通過字符型液晶顯示模塊將溫度顯示出來,最后利用 MAX232內(nèi)部電荷汞電壓轉換器,完成電壓轉換,使溫度在 PC 機界面顯示出來。通過 RS_232 將數(shù)據(jù)發(fā)送至終端設備,采用 VC++ 作為開發(fā)平臺。期間,也遇到過不少困難:元器件選擇錯誤,不得不多次跑到賽格去重新買元器件;焊接出現(xiàn)錯誤,對著電路圖苦苦尋找焊接錯誤的地方,通過仔細研究才發(fā)現(xiàn)是單片機引腳焊錯, 但再次測試時還是不行,最終運用萬用表才發(fā)現(xiàn):即使是接了電源,單片機除了直接接電源的管腳外其他都是低電平,百思不得其解;程序運行錯誤,最終不得不通過翻閱大量資料來參考以及增補知識,改寫程序,燒寫程序也是歷盡苦心,由于是買了 AT 的芯片,而大部分同學只有燒寫 SAT,最終在電信同學的幫忙下才燒寫成功。下面再總結下我們的軟硬件設計。展示下焊接好的電路板,如下圖所示。 八、課程設計總結 本課程設計設計了一單片機 /PC 控制的測溫 /傳輸系統(tǒng)。該系統(tǒng)體現(xiàn)了 數(shù)字化控制,智能化控制的特點, 實現(xiàn)了對溫度的監(jiān)測、報警和控制功能。 //設置上下限報警溫度和分辨率 UART_init()。 while(1) { pt=ReadTemperature()。 //實測溫度轉化為 ACSII 碼 ,并送液晶顯示緩沖區(qū) alarm_LCD(TH,TL)。 //第一個 參數(shù)列號 ,第二個為行號 ,為 0 表示第一行 //為 1表示第二行 ,第三個參數(shù)為顯示數(shù)據(jù)的首地址 LCD_Print(0,0,TempBuffer0)。 warning()。 COM_send()。 //報警信號 bit flag。 //PC 報警標志位 unsigned char key_value。 unsigned char TH=100,TL=0,RS=0x3f。 //用來存放溫度值 ,測溫程序就是通過這個數(shù)組與主函數(shù)通信的 unsigned char point。\039。 //顯示實時溫度 ,上電時顯示 + unsigned char TempBuffer0[17]={0x54,0x48,0x3a,0x2b,0x20,0x30,0x30,0x20, 0x54,0x4c,0x3a,0x2b,0x20,0x30,0x30,0x43,39。}。 /***因顯示分辨率為 ,但小數(shù)運算比較麻煩 ,故采用查表的方法 ******* 再將表值分離出十位和個位后送到十分位和百分位 ********************/ /***************溫度上下限轉換為 LCD 顯示數(shù)據(jù) ************ *功能 :將上下限報警溫度 ,分離出符號位 ,百、十、個位 并將它們轉化為 ACSII 碼 ,送到液晶顯示緩沖區(qū) ******************************************************/ void alarm_LCD( unsigned char TH, unsigned char TL) { TempBuffer0[3]=0x2b。 TempBuffer0[4]=TH/100+0x30。 //百位數(shù)消隱 TempBuffer0[5]=(TH%100)/10+0x30。 //分離出個位 TempBuffer0[12]=TL/100+0x30。 //百位數(shù)消隱 主從式溫度監(jiān)測報警與控制系統(tǒng) TempBuffer0[13]=(TL%100)/10+0x30。 //分離出個位 } /**********溫度轉換為 LCD 顯示數(shù)據(jù) **************** *功能 :將兩個字節(jié)的溫度值 ,分離出符號位 ,整數(shù)及小數(shù) 并將它們轉化為 ACSII 碼 ,送到液晶顯示緩沖區(qū) ************************************************/ void temper_LCD(void) { unsigned char x=0x00,y=0x00。 pt++。 if(t[1]0x07) //判斷正負溫度 { flag=1。 //0x2d 為 的 ASCII 碼 t[1]=~t[1]。 /* 換算成絕對值 *********/ x=t[0]+1。 /***********************/ if(x255) /**********************/ t[1]++。 TempBuffer1[0]=0x2b。 //將高字節(jié)左移 4 位 t[1]=t[1]amp。 //取出高字節(jié)的 3個有效數(shù)字位 x=t[0]。 //右移 4位 x=xamp。 //和前面兩句就是取出 t[0]的高四位 t[1]=t[1]|x。 TempBuffer1[1]=t[1]/100+0x30。 //百位數(shù)消隱 TempBuffer1[2]=(t[1]%100)/10+0x30。 //分離出個位 t[0]=t[0]amp。 //取有效的兩位小數(shù) 主從式溫度監(jiān)測報警與控制系統(tǒng) t[0]=2。 temper2=x。 //查表換算成實際的小數(shù) TempBuffer1[5]=y/10+0x30。 //分離出百分位 } // // 函數(shù)名稱: warning()報警函數(shù) // 函數(shù)功能: 測得的溫度超出溫度上下限時 LED 燈發(fā)光 // void warning() { if(flag==0) { if(temper1TH||temper1TL) T0=0。amp。 else if(temper2==0) T0=1。 if(T0==0) warning_key=0xff。 } // // 函數(shù)名稱: UART_init()串口初始化函數(shù) // 函數(shù)功能: 在系統(tǒng)時鐘為 時,設定串口波特率為 9600bit/s // 串口發(fā)送中斷允許 //初始化串行口和波特率發(fā)生器 // void UART_init() { SCON =0x50。 //定時器 1 工作在方式 2 TH1 =0xfd。 TR1 =1。 //單片機中斷允許 } // // 函數(shù)名稱: COM_send
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1