孫偉峰 李文龍
摘 要:隨著現(xiàn)代信息技術的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實現(xiàn).能夠獨立工作的溫度檢測和顯示系統(tǒng)應用于諸多領域??刂撇糠植捎肁T89C51單片機,由于TC72數(shù)字溫度計采用SPI同步串行通信,而AT89C51中沒有SPI接口,故設計中不需要外部接SPI通信模塊,只需要用軟件模擬SPI時序即可。該方法具有節(jié)省資源,可靠的優(yōu)點。本文通過對基于TC72數(shù)字溫度計的設計制作以及技術原理進行分析,并得出心得體會。
關鍵詞:AT89C51 ;TC72;SPI;數(shù)字溫度計
一、系統(tǒng)硬件設計
主要利用AT89C51單片機、TC72數(shù)字溫度傳感器而設計的數(shù)字溫度計,實現(xiàn)對空氣溫度的測量。
系統(tǒng)原理框圖
硬件實現(xiàn)原理:如圖所示,該溫度計通過TC72數(shù)字傳感器進行采集,將數(shù)據(jù)傳送給單片機,在數(shù)碼管上顯示。
(一)AT89C51與外圍電路
AT89C51作為控制系統(tǒng)的核心,周圍與時鐘電路、復位電路組成單片機最小系統(tǒng)。利用4位共陽數(shù)碼管顯示溫度。
特性概述:AT89C51 提供以下標準功能:4k 字節(jié)Flash 閃速存儲器,128字節(jié)內部RAM,32 個I/O 口線,兩個16位定時/計數(shù)器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89C51可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。
因此由于其主要特性,故選擇AT89C51即可滿足本實驗所需要求。
(二)TC72數(shù)字溫度傳感器
1.特性: 溫度/數(shù)字轉換器
SPI兼容接口、十位分辨率(0.25°C/位)、40°C 至 +85°C 的精度為 ±2°C (最大值)、55°C 至 +125°C 的精度為 ±3°C (最大值)、2.65V 至 5.5V 工作電壓范圍
2.溫度數(shù)據(jù)格式
使用10 位二進制補碼數(shù)字字的格式來表示溫度值,分辨率為 0.25°C/位。溫度數(shù)據(jù)以二進制補碼的格式存儲在溫度寄存器中。 ADC 轉換器的量程為128°C 至+127°C,但是 TC72 的工作范圍規(guī)定為 55°C 至+125°C。
3.串行總線接口
串行接口包括片選 CE 、串行時鐘SCK 、串行數(shù)據(jù)輸入SDI以及串行數(shù)據(jù)輸出SDO 信號線。TC72 作為從器件工作,它符合SPI 總線規(guī)范CE 為高電平有效, 當 CE 等于邏輯高電平時,數(shù)據(jù)可以寫入器件或從器件讀出。CE 為低電平時, SCK 輸入被禁止。CE 線的上升沿啟動讀或寫操作,而CE 的下降沿結束讀或寫操作。SCK 輸入由外部單片機提供,用于同步 SDI 和 SDO 線的數(shù)據(jù)。 SDI 輸入向 TC72 的控制寄存器寫入數(shù)據(jù),而SDO 從溫度寄存器中輸出溫度數(shù)據(jù)和控制寄存器關斷位的狀態(tài)。
先發(fā)送地址字節(jié),隨后為數(shù)據(jù)。地址的最高位 A7 決定要進行讀操作還是寫操作。如果 A7 =“0”,將進行一個或多個讀操作;否則 A7 = “1”,進行一個或多個寫操作。
注意:在發(fā)送命令前后要先將CE拉高,再拉低
4.控制寄存器
控制寄存器為可讀寫寄存器,用于選擇關斷模式、連續(xù)轉換模式或單次轉換模式。TC72 每隔約 150 ms 進行一次溫度轉換。上電時, SHDN 位設置為 “1”。 因此, TC72 最初處于關斷工作模式。通過在控制寄存器的 SHDN 位寫入“0”,選擇連續(xù)溫度轉換模式。
5.溫度寄存器
溫度寄存器為只讀寄存器,保存以 10 位二進制補碼表示的溫度測量值。 LSB 溫度寄存器的 Bit 0 至 Bit 5 始終設置成 “0”。
(三)SPI
環(huán)形數(shù)據(jù)交換數(shù)據(jù)傳輸通常會包含一次數(shù)據(jù)交換。當主節(jié)點向從節(jié)點發(fā)送數(shù)據(jù)時,從節(jié)點也會向主節(jié)點發(fā)送數(shù)據(jù)。為此,主節(jié)點的內部移位寄存器和從節(jié)點被設置成環(huán)形。由SCK提供時鐘脈沖,SDI,SDO則基于此脈沖完成數(shù)據(jù)傳輸。數(shù)據(jù)輸出通過 SDO線,數(shù)據(jù)在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變 (上沿和下沿為一次),就可以完成8位數(shù)據(jù)的傳輸。
下面軟件中將要介紹一下軟件模擬SPI通信。
二、系統(tǒng)軟件設計
軟件設計關系到數(shù)字溫度計的功能是否能夠正常實現(xiàn),因此它是數(shù)字溫度計十分重要的組成部分,好的程序能使設備更加精確,良好設計的程序可以提高軟件的執(zhí)行效率。AT89C51的程序編寫采用Keil4語言的開發(fā)環(huán)境,所用到的語句簡單易學,適合初學者進行入門掌握。
SPI時序軟件模擬:
int Read_OneByte(char SPI_byte)
{unsigned char SPI_count;
for (SPI_count = 8; SPI_count > 0; SPI_count)
{SDI = SPI_byte & 0x80; SPI_byte = SPI_byte << 1;
SCLK = 0x01; SPI_byte |= SDO; SCLK = 0x00; }
return (SPI_byte);
}
三、心得與體會
通過這次數(shù)字溫度計的設計,發(fā)現(xiàn)自己的能力有所提高,在實驗的過程中,遇到許多問題,發(fā)現(xiàn)問題,并且解決問題。在這過程中,不斷去復習以前學過的模電、數(shù)電以及C語言。同時又對新學的單片機的知識加以掌握和運用,在這個過程中不斷地去提升自己的能力。同時也有一些需要加強的地方,比如:畫PCB板和畫原理圖,以及熟練運用C語言。
參考文獻:
[1]姜宇鵬,陳越惠,肖棋文.基于51單片機的數(shù)字溫度計設計.企業(yè)技術開發(fā),2011年第30卷第7期.
[2]譚浩強.C程序設計.第三版.清華大學出版社.
[3]張?zhí)m紅.單片機原理及應用.機械工業(yè)出版社.
作者簡介:孫偉峰(1995),男,本科,研究方向:測控技術與儀器;李文龍(1995),男,本科,研究方向:測控技術與儀器。