• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于串口的溫度檢測數據單片機仿真

    基于串口的溫度檢測數據單片機仿真

    作者: 時間:2012-09-23 來源:網絡 收藏

    摘要:隨著系統的廣泛應用和計算機網絡技術的普及,的通信功能愈來愈顯得重要。通信是指單片機與計算機或單片機與單片機之間的信息交換,通常單片機與計算機之間的通信用的較多。本文以為基礎,研究了單片機與PC 機的通信原理及電路的設計。

    本文引用地址:http://www.czjhyjcfj.com/article/170815.htm

      0 引言

      本文研究的是一種收發模塊。利用DS18B20 傳感器設計溫度監測模塊,精確到0.1℃,用液晶顯示當前溫度,然后通過調試助手向單片機發送指令。當單片機收到十六進制指令01時,將當前溫度值以1s 為間隔傳回PC 機顯示,同時PC 機顯示Turn on temp;當單片機收到十六進制指令02 時,停止溫度值的回傳,PC 機顯示Turn off temp;當單片機收到其它指令時,PC 機顯示Error。

      1 總體設計

      本系統功能由硬件和軟件兩大部份協調完成,硬件部分主要完成信息的顯示;軟件主要完成信號的處理及控制功能等。

      本系統的硬件采用模塊化設計,以AT89C52 單片機為核心,與LCD 顯示電路、串行口通信電路及DS18B20 溫度電路組成控制系統。該系統硬件主要包括以下幾個模塊:

      AT89C52 主控模塊、LCD 顯示模塊、串行口通信模塊、DS18B20 溫度檢測模塊等。其中AT89C52 主要完成外圍硬件的控制以及一些運算功能,LCD 顯示模塊完成字符、數字的顯示功能、串行口通信模塊主要完成單片機和PC 機之間的通信功能,DS18B20 溫度檢測模塊主要完成環境溫度檢測功能。系統組成方框圖如圖1.1 所示。

    圖1.1系統硬件組成方框圖

      圖1.1系統硬件組成方框圖

      應用軟件采用模塊化設計方法。該系統軟件主要由主程序、接收發送中斷子程序、LCD 顯示子程序等模塊組成,系統軟件結構框圖如圖1.2 所示。

    圖1.2系統軟件設計框圖。

      圖1.2系統軟件設計框圖。

      2 系統工作原理

      MCS-51 單片機串行口發送/接收數據時,通過2 個串行緩沖器SBUF 進行,這2 個緩沖器采用一個地址(98H),但在物理上是獨立的。其中接收緩沖器只能讀出不能寫入,50 發送緩沖器只能寫入不能讀出。

      1. 發送過程

      當數據被寫入SBUF 寄存器后,單片機自動開始從起始位發送數據,發送到停止位的開始時,由內部硬件將TI 置1,向CPU 申請中斷,接下來可在中斷服務程序中做相應處理,也可選擇不進入中斷。

      2. 接收過程

      串行口的接收與否受制于允許接收位REN 的狀態,當REN 被軟件置1后,允許接收器接收。串口的接收器以所選波特率的16 倍速對RXD 線進行監視。當1到0跳變時,檢測器連續采樣到RXD 線上低電平時。便認定RXD 端出現起始位,繼而接收控制器開始工作。在每位傳送時間的第7、8、9 三個脈沖狀態采樣RXD 線,決定所接收的值為0或1.當接收完停止位后,控制電路使中斷標志R1置為1.

      3. 溫度檢測

      溫度檢測采用DALLAS 最新單線數字溫度傳感器DS18B20,DS18B20 是一種新型的一線器件,其體積更小,更適用于多種場合,且適用電壓更寬、更經濟。DALLAS 半導體公司的數字化溫度傳感器DS18B20 是世界上第一片支持一線總線接口的溫度傳感器。

      溫度測量范圍為-55℃~+125℃,可編程為9 位~12位轉換精度,可分辨溫度分別為0.5℃,0.25℃,0.125℃和0.0625℃。在9 位分辨率時,最多在93.75ms 內把溫度轉換為數字;在12 位分辨率時,最多在750ms 內把溫度值轉換為數字。

    3 溫度傳感器

      3.1 溫度傳感器特性

      DALLAS 最新單線數字溫度傳感器DS18B20[2]是一種新型的一線器件,其體積更小,更適用于多種場合,且適用電壓更寬、更經濟。DALLAS 半導體公司的數字化溫度傳感器DS18B20 是世界上第一片支持一線總線接口的溫度傳感器。溫度測量范圍為-55℃~+125℃,可編程為9 位~12 位轉換精度,可分辨溫度分別為0.5℃,0.25℃,0.125℃和0.0625℃。在9 位分辨率時,最多在93.75ms 內把溫度轉換為數字;在12 位分辨率時,最多在750ms內把溫度值轉換為數字。DS18B20的性能特點如下:

      1. 獨特的單線接口僅需要一個端口引腳進行通信;

      2. 多個 DS18B20 可以并聯在惟一的三線上,實現多點組網功能

      3. 無須外部器件;

      4. 可通過數據線供電,電壓范圍為3.0~5.5V;

      5. 零待機功耗;

      6. 溫度以 9 或12 位數字;

      7. 用戶可定義報警設置;

      8. 報警搜索命令識別并標志超過程序限定溫度(溫度報警條件)的器件;

      9. 負電壓特性,電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作;

      DS18B02 可以采用兩種方式供電,一種是采用電源供電方式,此時DS18B20的1 腳接地,2 腳作為信號線,3 腳接電源。另一種是寄生電源供電方式,單片機端口接單線總線,為保證在有效的DS18B20 時鐘周期內提供足夠的電流,可用一個MOSFET 管來完成對總線的上拉。

      當 DS18B20 處于寫存儲器操作和溫度A/D 轉換操作時,總線上必須有強的上拉,上拉開啟時間最大為10us.采用寄生電源供電方式時VDD 端接地。由于單線制只有一根線,因此發送接口必須是三態的。

    圖 3.1 DS18B20 引腳圖

      圖 3.1 DS18B20 引腳圖

      3.2 工作時序圖

      1. 初始化

    圖 3.2 初始化時序圖

      圖 3.2 初始化時序圖

      1)先將數據線置高電平1;2) 延時(該時間要求不是很嚴格,但是要盡可能短一些);3) 數據線拉到低電平0;4) 延時 750us(該時間范圍可以在480~960us);5) 數據線拉到高電平1;6)延時等待。如果初始化成功則在15~60ms內產生一個由DS18B20 返回的低電平0,據該狀態可以確定它的存在。但是要注意,不能無限地等待,不然會使程序進入死循環,所以要進行超時判斷;7) 若 CPU 讀到數據線上的低電平0 后,還要進行延時,其延時時間從發出高電平算起最少要480us;8)將數據線再次拉到高電平后結束。

      2. DS18B20 寫數據

    圖3.3 寫數據時序圖

      圖3.3 寫數據時序圖

      1) 數據線先置低電平0;

      2)延時確定的時間為15us;

      3) 按從低位到高位的順序發送數據(一次只發送一位);

      4) 延時時間為 45us;

      5) 將數據線拉到高電平1;

      6) 重復 1)到5)步驟,直到發送完整個字節;

      7)最后將數據線拉高到1.

      3. DS18B20 讀數據

    圖3.4 讀數據時序圖

      圖3.4 讀數據時序圖

      1)將數據線拉高為1;

      2) 延時 2us ;

      3) 將數據線拉低0 ;

      4) 延時 6us ;

      5) 將數據線拉高1 ;

      6)延時 4us ;

      7) 讀數據線的狀態得到1 個狀態位,并且進行數據處理;

      8) 延時 30us ;

      9) 重復 1)到7)步,知道讀取完一個字節。

      4 硬件設計

      4.1 時鐘電路及復位電路

      1.時鐘電路

      時鐘電路可以產生CPU 校準時序,是單片機的控制核心,本次設計是通過外接12MHz的晶振來實現時鐘電路的時序控制。在使用片內振蕩器時,XTAL1 和XTAL2 分別為反向放大器的輸入端和輸出端。外接晶體以及電容C3 和C5 構成并聯諧振電路,接在放大器的反饋回路中。當用外部時鐘驅動時,XTAL2引腳應懸空,而由XTAL1引腳上的信號驅動,外部振蕩器通過一個2 分頻的觸發器而成為內部時鐘信號,故對外部信號的占空比沒有什么要求,但最小和最大的高電平持續時間和低電平持續時間應符合技術要求。電路如圖4.1 所示。

    電流變送器相關文章:電流變送器原理
    溫濕度控制器相關文章:溫濕度控制器原理

    上一頁 1 2 3 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 广昌县| 高淳县| 都匀市| 竹溪县| 绥芬河市| 昌吉市| 福建省| 沾益县| 绥江县| 来凤县| 江门市| 凯里市| 永城市| 临夏市| 白朗县| 个旧市| 邓州市| 包头市| 兴宁市| 哈尔滨市| 乃东县| 崇信县| 图们市| 呼伦贝尔市| 灵寿县| 广南县| 芦溪县| 扬州市| 揭西县| 阳东县| 唐河县| 托克托县| 灵石县| 治县。| 义乌市| 西乡县| 合肥市| 盘锦市| 巨野县| 鄂州市| 威远县|