摘 要:在工業(yè)生產(chǎn)和日常生活中,有的時候迫切需要知道某種環(huán)境、某種物體的溫度,而且需要將它記錄下來。更高的要求是,需要每隔一段時間記錄時間與溫度,將溫度上傳到PC機(jī)進(jìn)行分析計算……。本方案討論了使用凌陽科技公司的高性能SPCE061A單片機(jī)作為主控制器,采用一線制數(shù)字溫度傳感器DS18B20作為溫度傳感器,采用液晶1602作為顯示器件,采用凌陽科技公司的SPR1024作為數(shù)據(jù)存儲器的應(yīng)用方案。該方案實現(xiàn)了目標(biāo)溫度的測量、顯示、存儲與PC機(jī)傳輸數(shù)據(jù)的功能,體現(xiàn)了SPCE061A強(qiáng)大的功能。
關(guān)鍵詞:測溫;單片機(jī);SPCE061A;SPR1024;DS18B20;液晶1602;DS18B20
1 引言
在工業(yè)生產(chǎn)和日常生活中,有的時候迫切需要知道某種環(huán)境、某種物體的溫度,而且需要將它記錄下來。更高的要求是,需要每隔一段時間記錄時間與溫度,將溫度上傳到PC機(jī)進(jìn)行分析計算……。本方案討論了使用凌陽科技公司的高性能SPCE061A單片機(jī)作為主控制器,采用一線制數(shù)字溫度傳感器DS18B20作為溫度傳感器,采用液晶1602作為顯示器件,采用凌陽科技公司的SPR1024作為數(shù)據(jù)存儲器的應(yīng)用方案。該方案實現(xiàn)了目標(biāo)溫度的測量、顯示、存儲與PC機(jī)傳輸數(shù)據(jù)的功能,體現(xiàn)了SPCE061A強(qiáng)大的功能。
2 技術(shù)指標(biāo)及方案可行性論證
2.1 系統(tǒng)的技術(shù)指標(biāo)
本系統(tǒng)的技術(shù)指標(biāo)要求如下:
1. 采集溫度,精度達(dá)到0.1℃;
2. 實時顯示溫度;
3. 具有溫度數(shù)據(jù)存儲功能,每隔10分鐘存儲一次,并且在存儲的過程中通過液晶提示,要求可以存儲30天的數(shù)據(jù);
4. 具有UART通訊功能,可以將采集的溫度實時的上傳到PC機(jī)。
2.2 可行性論證
考慮到性價比,開發(fā)工具等等,選擇凌陽SPCE061A作為主控制器。根據(jù)系統(tǒng)的技術(shù)指標(biāo),選擇DS18B20作為溫度傳感器。該溫度傳感器具有多種精度測溫模式,其中11位精度的測溫模式可以達(dá)到0.0625的精度要求,滿足系統(tǒng)的精度要求。采用液晶1602來顯示溫度,該液晶具有很好的性價比,為16*2的字符型液晶,驅(qū)動簡單,可以進(jìn)行實時顯示。為了可以存儲數(shù)據(jù),外擴(kuò)凌陽科技公司的SPR1024串行Flash作為存儲器。該存儲器為128K*8 bit的flash,系統(tǒng)要求每隔10分鐘存儲數(shù)據(jù)一次,30天共需存儲30(天)*24(小時)*6(每小時6次)為4320次數(shù)據(jù),由于數(shù)據(jù)為11位分為高低字節(jié)存放,共需要4320(次)*2(字節(jié))為8640(字節(jié)),所以SPR1024完全滿足要求,而且具有余量,可以進(jìn)行擴(kuò)展,例如將溫度的時間也保存到SPR1024中,或者提高存儲的頻率,每隔5分鐘存儲一次等等。UART功能為SPCE061A具有的功能,擴(kuò)展一個電平轉(zhuǎn)換電路就可以實現(xiàn)與PC機(jī)通訊。綜上所述,系統(tǒng)方案可行。
3 系統(tǒng)所用模塊簡介
本系統(tǒng)采用SPCE061A單片機(jī)作為主控制器,DS18B20作為溫度傳感器,SPR1024作為存儲器件,液晶1602作為顯示器件,下面將依次介紹這些模塊。
3.1 SPCE061A芯片特性
3.1.1 SPCE061A簡介
SPCE061A是凌陽科技研發(fā)生產(chǎn)的性價比很高的一款十六位單片機(jī),該芯片擁有8路10位精度的ADC,兩路10精度的DAC,只需要外接功放(SPY0030A)即可完成語音的播放。另外凌陽十六位單片機(jī)具有易學(xué)易用的效率較高的一套指令系統(tǒng)和集成開發(fā)環(huán)境。在此環(huán)境中,支持標(biāo)準(zhǔn)C語言,可以實現(xiàn)C語言與凌陽匯編語言的互相調(diào)用為軟件開發(fā)提供了方便的條件。
SPCE061A片內(nèi)還集成了一個ICE(在線仿真電路)接口,使得對該芯片的編程、仿真都變得非常方便,而ICE接口不占用芯片上的硬件資源,結(jié)合凌陽科技提供的集成開發(fā)環(huán)境(unSP IDE)用戶可以利用它對芯片進(jìn)行真實的仿真;而程序的下載(燒寫)也是通過該接口進(jìn)行下載。
下圖為SPCE061A單片機(jī)的內(nèi)部結(jié)構(gòu)框圖:

圖 3.1 SPCE061A內(nèi)部結(jié)構(gòu)圖
3.1.2 芯片特性
· 16位μ'nSP微處理器;
· 工作電壓:內(nèi)核工作電壓VDD為3.0~3.6V(CPU),IO口工作電壓VDDH為VDD~5.5V(I/O);
· CPU時鐘:0.32MHz~49.152MHz;
· 內(nèi)置2K字SRAM;
· 內(nèi)置32K閃存ROM;
· 可編程音頻處理;
· 晶體振蕩器;
· 系統(tǒng)處于備用狀態(tài)下(時鐘處于停止?fàn)顟B(tài)),耗電小于2μA@3.6V;
· 2個16位可編程定時器/計數(shù)器(可自動預(yù)置初始計數(shù)值);
· 2個10位DAC(數(shù)-模轉(zhuǎn)換)輸出通道;
· 32位通用可編程輸入/輸出端口;
· 14個中斷源可來自定時器A / B,時基,2個外部時鐘源輸入,鍵喚醒;
· 具備觸鍵喚醒的功能;
· 使用凌陽音頻編碼SACM_S240方式(2.4K位/秒),能容納210秒的語音數(shù)據(jù);
· 鎖相環(huán)PLL振蕩器提供系統(tǒng)時鐘信號;
· 32768Hz實時時鐘;
· 7通道10位電壓模-數(shù)轉(zhuǎn)換器(ADC)和單通道聲音模-數(shù)轉(zhuǎn)換器;
· 聲音模-數(shù)轉(zhuǎn)換器輸入通道內(nèi)置麥克風(fēng)放大器和自動增益控制(AGC)功能;
· 具備串行設(shè)備接口;
· 低電壓復(fù)位(LVR)功和低電壓監(jiān)測(LVD)功能;
· 內(nèi)置在線仿真(ICE,In- Circuit Emulator)接口。
3.2 SPCE061A精簡開發(fā)板
SPCE061A精簡開發(fā)板(簡稱61板),是以凌陽16位單片機(jī)SPCE061A為核心的精簡開發(fā)-仿真-實驗板,大小相當(dāng)于一張撲克牌,是"凌陽科技大學(xué)計劃"專為大學(xué)生、電子愛好者等進(jìn)行電子實習(xí)、課程設(shè)計、畢業(yè)設(shè)計、電子制作及電子競賽所設(shè)計的,也可作為單片機(jī)項目初期研發(fā)使用。61板除了具備單片機(jī)最小系統(tǒng)電路外,還包括有電源電路、音頻電路(含MIC輸入部分和DAC音頻輸出部分)、復(fù)位電路等,采用電池供電,方便學(xué)生隨身攜帶!!使學(xué)生在掌握軟件的同時,熟悉單片機(jī)硬件的設(shè)計制作,鍛煉學(xué)生的動手能力,也為單片機(jī)學(xué)習(xí)者和開發(fā)者創(chuàng)造了一個良好的學(xué)習(xí)條件和開發(fā)新產(chǎn)品的機(jī)會! 61板上有調(diào)試器接口(Probe接口)以及下載線(EZ_Probe)接口,分別可接凌陽科技的在線調(diào)試器、簡易下載線,配合unSP IDE,可方便地在板上實現(xiàn)程序的下載、在線仿真調(diào)試。
61板上的主要功能模塊如下:
· SPCE061A單片機(jī)最小系統(tǒng)外圍電路模塊;
· 電源輸入模塊;
· 音頻電路(包含MIC輸入、DAC音頻功放輸出)模塊;
· 按鍵模塊;
· I/O端口接口模塊;
· 調(diào)試、下載接口模塊;
下圖為61板的實物圖:

圖 3.2 61板實物圖
3.3 DS18B20溫度傳感器簡介
3.3.1 簡介
DS18B20是DALLAS公司生產(chǎn)的一線式數(shù)字溫度傳感器,具有3引腳TO-92小體積封裝形式;溫度測量范圍為-55℃~+125℃,可編程為9位~12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.0625℃,被測溫度用符號擴(kuò)展的16位數(shù)字量方式串行輸出;其工作電源既可在遠(yuǎn)端引入,也可采用寄生電源方式產(chǎn)生;多個DS18B20可以并聯(lián)到3根或2根線上,CPU只需一根端口線就能與諸多DS18B20通信,占用微處理器的端口較少,可節(jié)省大量的引線和邏輯電路。以上特點使DS18B20非常適用于遠(yuǎn)距離多點溫度檢測系統(tǒng)。
3.3.2 DS18B20的內(nèi)部結(jié)構(gòu)
DS18B20內(nèi)部結(jié)構(gòu)圖 3.3所示,主要由4部分組成:64位ROM、溫度傳感器、非揮發(fā)的溫度報警觸發(fā)器TH和TL、配置寄存器。DS18B20的管腳排列如圖 3.4所示,DQ為數(shù)字信號輸入/輸出端;GND為電源地;VDD為外接供電電源輸入端(在寄生電源接線方式時接地,見圖 3.9)。

圖 3.3 DS18B20內(nèi)部結(jié)構(gòu)

圖 3.4 DS18B20封裝形式
ROM中的64位序列號是出廠前被光刻好的,它可以看作是該DS18B20的地址序列碼,每個DS18B20的64位序列號均不相同。64位ROM排放循環(huán)冗余校驗碼(CRC=X8+X5+X4+1)。ROM的作用是使每一個DS18B20都各不相同,這樣就可以實現(xiàn)一根總線上掛接多個DS18B20的目的。
DS18B20中的溫度傳感器完成對溫度的測量,用16位符號擴(kuò)展的二進(jìn)制補(bǔ)碼讀數(shù)形式提供,以0.0625℃/LSB形式表達(dá),其中S為符號位。例如+125℃的數(shù)字輸出為07D0H,+25.0625℃的數(shù)字輸出為0191H,-25.0625℃的數(shù)字輸出為FF6FH,-55℃的數(shù)字輸出為FC90H。
3.3.3 DS18B20的工作時序
DS18B20的一線工作協(xié)議流程是:初始化→ROM操作指令→存儲器操作指令→數(shù)據(jù)傳輸。其工作時序包括初始化時序、寫時序和讀時序,如圖 3.5、圖 3.6和圖 3.7所示。
圖 3.5 初始化時序
圖 3.6 寫時序
圖 3.7 讀時序
3.3.4 DS18B20與單片機(jī)的典型接口設(shè)計
可以采用外接電源與寄生電源供電(就是供電電源從數(shù)據(jù)線上得到):
圖 3.8 外接電源供電
圖 3.9 寄生電源供電
3.4 SPR1024 Flash簡介
3.4.1 芯片簡介
SPR1024是128K*8bit的高性能Flash,內(nèi)嵌有并行總線接口(BMI Bus Memory Interface)和串行總線接口(SIF Serial Interface)。工作電壓在2.7V-3.6V,工作頻率達(dá)到5MHz,最大讀操作電流1mA,最大寫操作/擦除電流4mA。在串行模式下,可以與SPCE061A單片機(jī)通過SIO方便連接。
3.4.2 芯片內(nèi)部結(jié)構(gòu)
圖 3.10 SPR1024內(nèi)部結(jié)構(gòu)
更詳細(xì)資料參考SPR1024 DataSheet。
3.5 液晶1602簡介
3.5.1 技術(shù)參數(shù)
顯示容量:32個字符,每個字符為5*7點陣,分2行,每行16列
芯片工作電壓:4.5-5.5V
工作電流:2mA(5.0V)
模塊最佳工作電壓:5.0V
字符尺寸:2.95*4.35(W*H)mm
3.5.2 接口信號說明
接口 | 編號 | 引腳說明 | 接口 | 編號 | 引腳說明 |
1 | VSS | 電源地 | 9 | D2 | DATA I/O |
2 | VDD | 電源正極 | 10 | D3 | DATA I/O |
3 | VL | 液晶顯示偏壓信號 | 11 | D4 | DATA I/O |
4 | RS | 數(shù)據(jù)/命令選擇端(H/L) | 12 | D5 | DATA I/O |
5 | R/W | 讀/寫選擇端(H/L) | 13 | D6 | DATA I/O |
6 | EP | 使能信號 | 14 | D7 | DATA I/O |
7 | D0 | DATA I/O | 15 | BLA | 背光源正極 |
8 | D1 | DATA I/O | 16 | BLK | 背光源負(fù)極 |
3.5.3 讀寫時序
讀操作時序
圖 3.11讀操作時序
圖 3.12 寫操作時序
時序參數(shù):

3.5.4 典型應(yīng)用
圖 3.13 1602與單片機(jī)典型接口
4 系統(tǒng)總體方案介紹
本系統(tǒng)由一塊SPCE061A精簡開發(fā)板(61板)、一線制數(shù)字溫度傳感器DS18B20、128K*8bit Flash SPR1024、液晶1602和外擴(kuò)UART串口電平轉(zhuǎn)換電路組成,可以實現(xiàn)溫度的測量、顯示、存儲與PC機(jī)通訊等功能。此系統(tǒng)以SPCE061A為核心,由測溫模塊、顯示模塊、存儲模塊等構(gòu)成。
硬件結(jié)構(gòu)框圖如圖 4.1所示。
圖 4.1 硬件結(jié)構(gòu)圖
SPCE061A與其它器件連接圖:

圖 4.2系統(tǒng)連線圖
5 系統(tǒng)硬件設(shè)計
5.1 SPCE061A周邊模塊
5.1.1 SPCE061A最小系統(tǒng)
SPCE061A最小系統(tǒng)當(dāng)中,包括SPCE061A芯片外圍的基本模塊,有:晶振輸入模塊(OSC)、鎖相環(huán)外圍電路(PLL)、復(fù)位電路(RESET)、指示燈(LED)等,如下圖所示。
圖 5.1 SPCE061A最小系統(tǒng)
本系統(tǒng),有關(guān)SPCE061A單片機(jī)的最小系統(tǒng)的各個模塊都做在61板當(dāng)中,讀者可以查閱61板的電路原理圖。
5.1.2 電源模塊
SPCE061A的內(nèi)核供電為3.3V,而I/O端口可接3.3V也可以接5V,所以在電源模塊(61板上)中有一個端口電平選擇跳線,如圖中的J5,下圖為61板上的電源模塊圖。
圖 5.2 電源模塊
5.2 DS18B20電路連接
由于DS18B20是一線制數(shù)字溫度傳感器,在與SPCE061A連接的時候非常的方便。
圖 5.3DS18B20的電路
5.3 液晶1602電路連接
由于液晶1602已經(jīng)是一個模塊,在這里只介紹與61板的連線圖:
圖 5.4液晶1602與61板連線
5.4 SPR1024電路連接
參考下面的電路圖:
圖 5.5 SPR1024電路圖
6 系統(tǒng)軟件設(shè)計
6.1 主程序設(shè)計
主程序流程如圖 6.1所示。
圖 6.1 主程序流程圖
主函數(shù)比較簡單,在程序開始后將系統(tǒng)時鐘調(diào)到24.576M,程序中操作液晶1602與DS18B20需要嚴(yán)格的讀寫控制時許,其中軟件延時就是按照這個時鐘計算的。然后初始化IO端口,打開2Hz中斷,為了定時10分鐘做準(zhǔn)備。調(diào)用開機(jī)顯示界面,在液晶1602上顯示www.unsp.com.cn/TEL62981668-2965字樣,持續(xù)一段時間,重新初始化液晶1602,初始化SIO與UART,為使用SIO,UART做準(zhǔn)備。然后進(jìn)入循環(huán),調(diào)用測溫函數(shù)測溫,調(diào)用顯示函數(shù)顯示,調(diào)用發(fā)送數(shù)據(jù)函數(shù)發(fā)送數(shù)據(jù),判斷是否是設(shè)定的時間(10分鐘),如果是調(diào)用存儲函數(shù)存儲數(shù)據(jù),如果不是直接執(zhí)行下一步清看門狗操作,然后繼續(xù)循環(huán)。
6.2 子程序的設(shè)計
6.2.1 測溫子程序
圖 6.2 測溫子程序子程序
在測溫時首先設(shè)置DS18B20的DQ為高電平,然后初始化DS18B20,在成功后DS18B20接收單片機(jī)的命令,為了簡單起見這里跳過ROM命令設(shè)置匹配過程,然后再次初始化DS18B20在成功后啟動測溫,然后將溫度保存起來,返回。其中讀寫DS18B20的驅(qū)動程序在DS18B20.c文件中,可以參考DS18B20的讀寫時序圖來理解程序。
6.2.2 顯示子程序
在測得溫度后,將溫度數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制數(shù)的溫度表示,然后再通過查表(在c語言中是一個數(shù)組,參考程序中在Display函數(shù)中,Data[10]數(shù)組)調(diào)用液晶1602顯示在液晶上,這里面比較簡單,數(shù)據(jù)處理類似于由二進(jìn)制轉(zhuǎn)換為十進(jìn)制,再由十進(jìn)制轉(zhuǎn)換為ASCII碼,讀者可以參考相關(guān)的說明。液晶顯示驅(qū)動程序在LCD1602_Driver .asm 文件中。
6.2.3 存儲子程序
調(diào)用SPR1024的用戶函數(shù),完成存儲功能,存儲的數(shù)據(jù)沒有經(jīng)過轉(zhuǎn)換,只是將溫度數(shù)據(jù)分為高低字節(jié)分兩次存儲。SPR1024的驅(qū)動程序在SPR1024_Driver.asm文件中。
6.2.4 UART通訊子程序
通訊子程序采用查詢的方法,數(shù)據(jù)格式為先發(fā)數(shù)據(jù)0xAA,然后是溫度數(shù)據(jù)的高字節(jié),溫度數(shù)據(jù)的低字節(jié),最后是0x55結(jié)束。UART操作的函數(shù)在UART.c文件中。
6.2.5 中斷的處理
在程序中打開2Hz的中斷作為計時使用,設(shè)置全局變量g_Min10為計數(shù)器,每進(jìn)入中斷一次計數(shù)加一。在主函數(shù)中判斷是否到預(yù)定值(10分鐘),如果到了,將變量清0,重新開始計數(shù)。
7 結(jié)語
本系統(tǒng)以SPCE061A單片機(jī)為控制核心,利用其強(qiáng)大的處理能力,以及豐富的外圍接口,再配合DS18B20溫度傳感器、液晶1602、SPR1024,很好的完成了溫度的測量、顯示、存儲與PC機(jī)通訊的功能,為溫度系統(tǒng)的實現(xiàn)提供了一種解決方案。
SPCE061A的IOA口低8位還沒有使用,IOB口的許多IO口也沒有使用,可以擴(kuò)展1*8或4*4鍵盤增加人機(jī)交互功能,實現(xiàn)溫度的查詢。在外擴(kuò)時間芯片可以記錄溫度的時間,這樣整個系統(tǒng)具有更加實用的意義。