找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4207|回復(fù): 4
收起左側(cè)

SHT75溫濕度檢測系統(tǒng)的單片機(jī)程序設(shè)計(jì)

[復(fù)制鏈接]
ID:456774 發(fā)表于 2018-12-27 20:40 | 顯示全部樓層 |閱讀模式
一、設(shè)計(jì)題目
SHT75溫濕度檢測系統(tǒng)
二、設(shè)計(jì)目的
在工業(yè)現(xiàn)場,特別是那些環(huán)境因素對生產(chǎn)過程影響比較大的車間,對現(xiàn)場環(huán)境因素的監(jiān)測很重要,而隨著工業(yè)自動(dòng)化的迅速發(fā)展,工業(yè)以太網(wǎng)在工業(yè)中應(yīng)用的普及,它能使用戶對現(xiàn)場的一些環(huán)境因素實(shí)現(xiàn)一個(gè)遠(yuǎn)程的監(jiān)測,突顯其便利性和適時(shí)性。本系統(tǒng)就是基于SHT75溫濕度傳感器,利用工業(yè)以太網(wǎng)技術(shù),實(shí)現(xiàn)對工業(yè)現(xiàn)場的溫濕度的遠(yuǎn)程監(jiān)測。
三、設(shè)計(jì)原理   
在工業(yè)現(xiàn)場中使用溫濕度傳感器,為了達(dá)到遠(yuǎn)程監(jiān)測的目的,就少不了與工業(yè)以太網(wǎng)或其它工業(yè)現(xiàn)場總線網(wǎng)絡(luò)相連,本系統(tǒng)就利用工業(yè)以太網(wǎng)技術(shù),由傳感器SHT75采集工業(yè)現(xiàn)場的溫濕度,經(jīng)過CPU處理,通過工業(yè)以太網(wǎng)進(jìn)行通信,實(shí)現(xiàn)上位機(jī)對現(xiàn)場環(huán)境溫濕度的數(shù)據(jù)采集、監(jiān)測。
本溫濕度測量系統(tǒng)包含了微處理器(C8051F120)、存儲(chǔ)器、傳感器模塊、網(wǎng)絡(luò)通信接口、串口通信等重要組成部分。在該設(shè)計(jì)中,電源使用了以太網(wǎng)供電設(shè)備,該設(shè)備除了用于網(wǎng)口通信,還提供設(shè)計(jì)中所需要的電源。該電源經(jīng)過電平轉(zhuǎn)換,為微處理器、存儲(chǔ)器、傳感器模塊等提供所需的+5V和+3.3V電壓。微處理器C8051F120通過I/O口與傳感器模塊進(jìn)行數(shù)據(jù)交換。溫濕度測量系統(tǒng)的硬件框圖如圖1所示。

圖1 溫濕度測量系統(tǒng)框圖
由proteus畫出的原理圖如下:
圖2 原理圖
四、流程圖
主程序結(jié)構(gòu)主要由CPU與SHT75之間的數(shù)據(jù)傳遞和傳感器與上位機(jī)的數(shù)據(jù)傳遞并在上位機(jī)顯示兩部分組成。在數(shù)據(jù)傳遞部分,首先需要對CPU與SHT75對應(yīng)I/O口以及相關(guān)寄存器的初始化,然后通過CPU發(fā)送命令啟動(dòng)數(shù)據(jù)的傳輸,之后,傳感器開始進(jìn)行信號的采集和數(shù)據(jù)的交換,CPU對數(shù)據(jù)進(jìn)行處理,當(dāng)進(jìn)行完一次采集和傳遞后,再通過通信復(fù)位來循環(huán)工作;在上位機(jī)顯示部分,只需找一入口地址,把CPU處理好的數(shù)據(jù)傳給上位機(jī),再通過EPA組態(tài)軟件來對數(shù)據(jù)進(jìn)行客觀的顯示。程序結(jié)構(gòu)如圖3所示。

圖3 程序結(jié)構(gòu)
  在本系統(tǒng)數(shù)據(jù)傳遞過程中,主要經(jīng)過的是啟動(dòng)傳輸、字節(jié)的讀與寫、狀態(tài)寄存器的讀與寫、最終數(shù)據(jù)的讀取和通信的復(fù)位幾部分。
五、主要組成部分5.1單片機(jī)晶振電路:
單片機(jī)系統(tǒng)里都有晶振,如下圖所示(左圖為內(nèi)部振蕩方式,右圖為外部振蕩方式)在單片機(jī)系統(tǒng)里晶振作用非常大,全程叫晶體振蕩器,他結(jié)合單片機(jī)內(nèi)部電路產(chǎn)生單片機(jī)所需的時(shí)鐘頻率,單片機(jī)晶振提供的時(shí)鐘頻率越高,那么單片機(jī)運(yùn)行速度就越快,單片接的一切指令的執(zhí)行都是建立在單片機(jī)晶振提供的時(shí)鐘頻率。
圖4 晶振電路
5.2單片機(jī)復(fù)位電路:
復(fù)位是單片機(jī)的初始化操作。單片機(jī)啟運(yùn)運(yùn)行時(shí),都需要先復(fù)位,其作用是使CPU和系統(tǒng)中其他部件處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。因而,復(fù)位是一個(gè)很重要的操作方式。但單片機(jī)本身是不能自動(dòng)進(jìn)行復(fù)位的,必須配合相應(yīng)的外部電路才能實(shí)現(xiàn)。
圖5  Protues仿真的晶振及復(fù)位圖
5.3 溫濕度采集模塊的內(nèi)部設(shè)計(jì)5.3.1處理器C8051F120
C8051F120是美國Cygnal公司的一款控制芯片,它使用 Silicon Lab 的專利 CIP-51 微控制器內(nèi)核,具有64個(gè)數(shù)字I/O 引腳、片內(nèi)VDD 監(jiān)視器、看門狗定時(shí)器和時(shí)鐘振蕩器,它使C8051F120器件成為真正能獨(dú)立工作的片上系統(tǒng);FLASH 存儲(chǔ)器具有在系統(tǒng)重新編程能力,可用于非易失性數(shù)據(jù)存儲(chǔ),并允許現(xiàn)場更新8051固件;片內(nèi) JTAG 調(diào)試電路允許使用安裝在最終應(yīng)用系統(tǒng)上的產(chǎn)品 MCU 進(jìn)行非侵入式(不占用片內(nèi)資源)、全速、在系統(tǒng)調(diào)試,該調(diào)試系統(tǒng)支持觀察和修改存儲(chǔ)器和寄存器,支持?jǐn)帱c(diǎn)、觀察點(diǎn)、單步及運(yùn)行和停機(jī)命令;它能在工業(yè)溫度范圍(-45℃到+85℃)處工作,這些完全滿足在工業(yè)現(xiàn)場使用的要求。
微處理器部分的設(shè)計(jì)包含系統(tǒng)硬件的啟動(dòng)與復(fù)位、地址總線、數(shù)據(jù)總線的分配和定義、與外設(shè)傳感器的連接等;系統(tǒng)由外部的22M鐘振作為時(shí)鐘源向CPU輸入時(shí)鐘信號;復(fù)位電路由10μF的電容、10K電阻組成低電平復(fù)位電路,該復(fù)位電路可實(shí)現(xiàn)上電低電平自動(dòng)復(fù)位。
5.3.2 傳感器模塊
SHTxx 系列單芯片傳感器是由瑞士Sensirion的一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器。傳感器包括一個(gè)電容式聚合體測濕元件和一個(gè)能隙式測溫元件,并與一個(gè) 14 位的 A/D 轉(zhuǎn)換器以及串行接口電路在同一芯片上實(shí)現(xiàn)無縫連接。SHTxx采用串行接口,它的分辨率可以根據(jù)對現(xiàn)場的采集速率而進(jìn)行調(diào)整,一般情況下默認(rèn)的測量分辨率分別為 14bit(溫度)、12bit(濕度),如果在高速采集中就可分別降至 12bit 和 8bit,對溫度的量程范圍:-40~123.8℃,濕度的量程范圍:0~100%RH。它操作比較簡單,只需用一組“ 啟動(dòng)傳輸”時(shí)序,就能實(shí)現(xiàn)傳感器數(shù)據(jù)傳輸?shù)某跏蓟,同時(shí),在測量和通訊結(jié)束后,SHTxx 會(huì)自動(dòng)轉(zhuǎn)入休眠模式,這大大的減少了功耗。我們選擇的是SHT75,它的結(jié)構(gòu)框圖如圖6所示。

圖6 SHT75結(jié)構(gòu)框圖
SHT75與微處理器的連接,是通過C8051F120的兩個(gè)I/O口來分別與傳感器SHT10的SCK引腳和DATA引腳相連,來實(shí)現(xiàn)數(shù)據(jù)的交換;VDD與3.3V電壓相連。為避免信號沖突,微處理器應(yīng)驅(qū)動(dòng)DATA 在低電平,所以還必須在I/O電路中,DATA引腳上加上一個(gè)上拉電阻將信號提拉至高電平,用一個(gè)10KΩ的電阻接至3.3V電壓。原理圖如圖7所示
圖7 溫濕度傳感器電路連接
5.3.3 網(wǎng)絡(luò)通信接口
在設(shè)計(jì)中采用網(wǎng)絡(luò)接口將溫濕度傳感器接入工業(yè)以太網(wǎng),數(shù)據(jù)由以太網(wǎng)傳遞到上位機(jī)中,實(shí)現(xiàn)工業(yè)現(xiàn)場的設(shè)備和上位機(jī)的通信。網(wǎng)絡(luò)隔離器采用的是HR61H50L,網(wǎng)卡芯片使用的是RTL8019AS。
RTL8019AS 是REALTEK公司的高度集成以太網(wǎng)控制器,它能夠簡單的解答即插即用 NE2000兼容適配器,這種適配器具有二重和功率下降特性。通過三電平控制特性,RTL8019AS是對網(wǎng)絡(luò)設(shè)備 GREEN PC 理想的選擇。全二重功能能夠模擬傳播和接收在雙絞線到全二重以太網(wǎng)交換機(jī)。這個(gè)特性不僅使帶寬從10到20MBPS,而且避免了由于以太網(wǎng)頻道爭奪特性導(dǎo)致的讀出多路存取協(xié)議的問題。為了提供完全解決即插即用方案,RTL8019AS集成10BASET收發(fā)器,BNC,和AUI接口之間的自動(dòng)檢測功能。此外,8條IRQ 總線和16條基本地址總線為大資源情況下提供了寬松的環(huán)境。RTL8019AS用 16k字節(jié)SRAM 設(shè)計(jì)在單片芯片上,它的設(shè)計(jì)不僅提供了更友好的功能,而且節(jié)省了 SRAM 存儲(chǔ)資源。RTL8019AS的地址總線SA[7:0]與數(shù)據(jù)總線SD[7:0]分別與C8051F120的地址/數(shù)據(jù)總線相連。
5.4顯示屏顯示設(shè)計(jì):5.4.1液晶顯示原理:
液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區(qū)域進(jìn)行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規(guī)模集成電路直接驅(qū)動(dòng)、易于實(shí)現(xiàn)全彩色顯示的特點(diǎn),目前已經(jīng)被廣泛應(yīng)用在便攜式電腦、數(shù)字?jǐn)z像機(jī)、PDA移動(dòng)通信工具等眾多領(lǐng)域。
5.4.2字符的顯示:
用LCD顯示一個(gè)字符時(shí)比較復(fù)雜,因?yàn)橐粋(gè)字符由6×8或8×8點(diǎn)陣組成,既要找到和顯示屏幕上某幾個(gè)位置對應(yīng)的顯示RAM區(qū)的8字節(jié),還要使每字節(jié)的不同位為“1”,其它的為“0”,為“1”的點(diǎn)亮,為“0”的不亮。這樣一來就組成某個(gè)字符。但由于內(nèi)帶字符發(fā)生器的控制器來說,顯示字符就比較簡單了,可以讓控制器工作在文本方式,根據(jù)在LCD上開始顯示的行列號及每行的列數(shù)找出顯示RAM對應(yīng)的地址,設(shè)立光標(biāo),在此送上該字符對應(yīng)的代碼即可。
圖8 液晶顯示模塊仿真圖
六、總結(jié)
本方案使用瑞士SENSIRION公司生產(chǎn)的溫濕度傳感器SHT75進(jìn)行溫濕度實(shí)時(shí)監(jiān)測,該傳感器具有體積小、功耗低,使用電池供電可以長期穩(wěn)定運(yùn)行,防浸泡等特性,使其在高濕度條件下也可以正常工作,該實(shí)驗(yàn)對該器件進(jìn)行仿真測試,所讀取的溫濕度數(shù)據(jù)用液晶屏刷新顯示。
從這次的設(shè)計(jì)中,我們真真正正的意識到,在以后的學(xué)習(xí)中,要理論聯(lián)系實(shí)際,把我們所學(xué)的理論知識用到實(shí)際當(dāng)中,學(xué)習(xí)單機(jī)片機(jī)更是如此,程序只有在經(jīng)常的寫與讀的過程中才能提高,這就是我們在這次設(shè)計(jì)中的最大收獲。

#include <reg52.h>
#include <intrins.h>
#include <math.h>      
#include <stdio.h>   
#define LCD_DB P0
sbit LCD_RS=P2^0;  
sbit LCD_RW=P2^1;   
sbit LCD_E=P2^2;   
#define uchar unsigned char
#define uint unsigned int
void LCD_init(void);                          
void LCD_write_command(uchar command);      
void LCD_write_data(uchar dat);               
void LCD_disp_char(uchar x,uchar y,uchardat);
voidLCD_disp_str(uchar x,uchar y,uchar *str);
void delay_n10us(uint n);                     
void LCD_init(void)
{
delay_n10us(10);
LCD_write_command(0x38);//設(shè)置8位格式,2行,5x7
delay_n10us(10);
LCD_write_command(0x0c);//整體顯示,關(guān)光標(biāo),不閃爍
delay_n10us(10);
LCD_write_command(0x06);//設(shè)定輸入方式,增量不移位
delay_n10us(10);
LCD_write_command(0x01);//清除屏幕顯示
delay_n10us(100);       //延時(shí)清屏,延時(shí)函數(shù),延時(shí)約n個(gè)10us
}
void LCD_write_command(uchar dat)
{
delay_n10us(10);
LCD_RS=0;         //指令
LCD_RW=0;         //寫入
LCD_E=1;          //允許
LCD_DB=dat;
delay_n10us(10);  //實(shí)踐證明,我的LCD1602上,用for循環(huán)1次就能完成普通寫指令。
LCD_E=0;
delay_n10us(10);  //實(shí)踐證明,我的LCD1602上,用for循環(huán)1次就能完成普通寫指令。
}
void LCD_write_data(uchar dat)
{
delay_n10us(10);
LCD_RS=1;          //數(shù)據(jù)
LCD_RW=0;          //寫入
LCD_E=1;           //允許
LCD_DB=dat;
delay_n10us(10);
LCD_E=0;
delay_n10us(10);
}
void LCD_disp_char(uchar x,uchar y,uchardat)
{
uchar address;
if(y==1)
        address=0x80+x;
else
        address=0xc0+x;
LCD_write_command(address);
LCD_write_data(dat);
}
void LCD_disp_str(uchar x,uchar y,uchar*str)
{
uchar address;
if(y==1)
        address=0x80+x;
else
        address=0xc0+x;
LCD_write_command(address);
while(*str!='\0')
  {
   LCD_write_data(*str);   
   str++;

限于篇幅,后續(xù)程序在附件中下載
51hei下載地址:
溫濕度檢測.docx (20.04 KB, 下載次數(shù): 52)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2018-12-28 02:30 | 顯示全部樓層
能分享全部文檔嗎  缺圖
回復(fù)

使用道具 舉報(bào)

ID:456774 發(fā)表于 2019-1-1 20:27 | 顯示全部樓層
admin 發(fā)表于 2018-12-28 02:30
能分享全部文檔嗎  缺圖

可以下載附件,里邊有原理圖,源程序
回復(fù)

使用道具 舉報(bào)

ID:675483 發(fā)表于 2020-1-6 23:45 | 顯示全部樓層
嗨!傻丫頭 發(fā)表于 2019-1-1 20:27
可以下載附件,里邊有原理圖,源程序

下載文檔之后只有程序其他什么都沒有。為什么
回復(fù)

使用道具 舉報(bào)

ID:643631 發(fā)表于 2020-1-30 10:55 | 顯示全部樓層
除了程序啥也沒有啊
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表