基于MSP430F149的溫濕度記錄儀的設(shè)計說明書
基于MSP430F149的溫濕度記錄儀的設(shè)計說明書,基于,msp430f149,溫濕度,記錄儀,設(shè)計,說明書,仿單
I 基于 MSP430F149 的溫濕度記錄儀 摘 要 市場上已有溫濕度記錄儀電池使用時間短、功能單一,本設(shè)計通過軟、 硬件的優(yōu)化來實現(xiàn)功耗低的功能。硬件主要由超低功耗單片機 MSP430、傳感器 SHT10、 斷碼液晶、串口 MAX3232 和 AT45DB161 flash 等器件組成。軟件方面主要通過定時器產(chǎn) 生一秒中斷方式,使其進行溫濕度的采集、顯示和存儲。記錄儀具有數(shù)據(jù)存儲大、功耗 低、能和 PC 通信、性價比高等特點。研究結(jié)果表明,該儀器能夠長時間記錄溫濕度,使 用方便,性能可靠而且當(dāng)溫度到達上限實現(xiàn)報警的功能。 關(guān)鍵詞 MSP430 溫濕度記錄儀 功耗低 II The Design of temperature and humidity recorder Based on the MSP430 Zheng Fengjun Directed by Lecturer Jang Shaojun Abstract On the market,there has been a lot of problems of temperature and humidity recorder, such as single function, short battery life ,a kind of recorder based on MSP430 single chip was presented.The instrument through the soft and hardware to achieve low power consumption function. The hardware is mainly composed of low power microcontroller MSP430, sensor SHT10, Fault code liquid crystal, serial port MAX3232 and flash AT45DB161.Software mainly through the timer generating a second interrupt mode and the power using query mode.The temperature and humidity recorder can realize the data acquisition, display and storage. It has the merits of big data storage volume, low power consumption,PC communication and high performancecost ratio. The results indicate that the device can long time record temperature and humidity. it is convenient in use and stable in performance.Besides,when the temperature reaches upper limit,the buzzer will sound. Key words MSP430F149 Temperature and humidity recorder Low power 3 目 錄 摘 要 ..................................................................I ABSTRACT .................................................................II 2 背景介紹 ................................................................4 2.1 選題背景 ...........................................................4 2.2 研究的目的及意義 ...................................................5 3 溫濕度記錄儀各模塊的介紹 ................................................5 3.1單片機 MSP430 ........................................................5 3.2 串口 MAX3232.........................................................6 3.3 flash at45db ........................................................6 3.4 時鐘 DS1302..........................................................6 3.5 lcd液晶顯示器 .......................................................7 3.6 溫濕度傳感器 SHT10...................................................7 3.7 本章小結(jié) ............................................................7 4 溫濕度監(jiān)測的硬件設(shè)計 ....................................................7 4.1 msp430的外圍電路 ....................................................8 4.2 電源電路 ............................................................9 4.3 通信電路 ............................................................9 4.4 時鐘電路 ...........................................................10 4.5 存儲電路 ...........................................................10 4.6 顯示電路 ...........................................................11 4.7 報警電路 ...........................................................12 5 溫濕度監(jiān)測的軟件設(shè)計 ...................................................12 5.1 Altium Designer的介紹 ..............................................12 5.2 Altium Designer使用 ................................................13 5.3程序流圖 ............................................................14 5.4 程序 ...............................................................14 5.5本章小結(jié) ............................................................20 4 6 問題發(fā)現(xiàn)和解決 .........................................................20 6.1程序問題 ............................................................20 6.2硬件問題 ............................................................21 6.3 本章小結(jié) ...........................................................21 7 總結(jié) ...................................................................21 參考文獻: ...............................................................22 致謝 .....................................................................23 5 基于 MSP430F149 的溫濕度記錄儀 1 引言 日常生活和工業(yè)生產(chǎn)都離不開溫濕度,因此人們發(fā)明了很多儀器去測量它們,并且經(jīng)歷了長久 的發(fā)展過程,從很久以前的長度測量方法以及干濕測量方法,到現(xiàn)在的電測量方法,溫濕度測量技 術(shù)已經(jīng)一步一步得趨于成熟。但是這些測量方法仍存在一些缺點和不足,不能滿足我們現(xiàn)在對溫濕 度測量的要求,尤其是一些場所,要求實時測量并記錄其全過程,并且超過溫度上下限時報警,這 些導(dǎo)致了新的溫濕度記錄儀的產(chǎn)生。該儀器溫濕度參數(shù)是由溫濕度傳感器SHT10獲得的,其值為數(shù) 字量,直接按預(yù)先設(shè)定的時間間隔將溫濕度參數(shù)儲存到內(nèi)部的flash中。在完成存儲后,如果將其與 PC機相連, PC將向記錄儀發(fā)送相應(yīng)的指令,產(chǎn)生中斷,此時記錄儀將數(shù)據(jù)上傳PC,再對數(shù)據(jù)進行 整體分析,采取相應(yīng)措施。它能夠長時間的記錄環(huán)境或被測對象的溫度,工作溫度范圍廣,滿足通 用性。在氣溫監(jiān)測,貨物存儲、實驗過程等方面有很重要的作用。 2 背景介紹 2.1 選題背景 1592年,意大利人Galileo創(chuàng)造了最早的溫濕度測量儀。他在一個容器中,倒入一定量的液體, 倒置了一個有細長頸的器皿,為了使液面上升到細頸內(nèi),從長頸器皿中抽出一部分空氣。由于氣體 的熱脹冷縮現(xiàn)象,長頸內(nèi)的液面將隨著外界溫度的變化而變化,因此溫濕度的高低就反映到液面的 升降上,但是這個測量器是沒有刻度的,在應(yīng)用上受到限制。 荷蘭人華倫海特于 1714 年制定了華氏溫標(biāo),這是歷史上最早出現(xiàn)的溫標(biāo),華氏溫標(biāo)單位用 “”來表示,也讀作華氏度。0 華氏度是由一定濃度的鹽水變?yōu)楣腆w時的溫度規(guī)定的,32 華氏度、 212 華氏度分別是由純水變?yōu)楣腆w時的溫度和 1.013105 帕斯卡氣壓下水急劇轉(zhuǎn)化為氣體的溫度 規(guī)定的。 瑞典的 Anders Celsius 于 1742 年創(chuàng)立了另一種溫標(biāo),制成了水銀溫濕度計,溫濕度記錄儀以水 轉(zhuǎn)化為氣體的溫度作為 0 度,以水的凝固溫度為 100 度。1745 年,瑞典科學(xué)家 Linnaeus 研制了攝 氏溫濕度計,他是將 Anders Celsius 的水銀溫濕度計的冰點和沸點這兩個溫度點顛倒過來制成的。 1802年,出現(xiàn)了查理斯定律,即在恒壓一定量氣體的體積隨絕對溫度的上升而上升。反之,一 定體積的氣體,壓力與開爾文溫度變化的趨勢相同。當(dāng) Charles 定律出現(xiàn)后,氣體溫濕度計也有了 相應(yīng)的提升,相比較水銀溫濕度計,氣體溫度計的效果無論在測溫范圍方面還是在精確度上,都超 過前者。 1821年,德國的塞貝克發(fā)現(xiàn)熱電效應(yīng),即溫差與電壓相互轉(zhuǎn)換的現(xiàn)象。于是就出現(xiàn)了熱電偶溫 濕度計。英國的 Dawid 在同一年里發(fā)現(xiàn)了溫濕度影響電阻的規(guī)律,再此之后熱電阻溫濕度計隨之 產(chǎn)生。 2.2 研究的目的及意義 在測量范圍內(nèi),溫度、濕度是一對很重要的參數(shù),無論是人們生活的環(huán)境還是工業(yè)生產(chǎn)、農(nóng)作 物的生長都需要對溫度和濕度進行適時準(zhǔn)確的測量,以保證能源的節(jié)約和各行各業(yè)安全健康的發(fā)展。 隨著科學(xué)技術(shù)的迅猛發(fā)展,測量領(lǐng)域內(nèi)對溫濕度的檢測也取得飛速發(fā)展,其水平直接影響人類的各 種活動。利用單片機對溫濕度控制,具有很多優(yōu)點,如高精度、小體積、多功能、低價格,易操作 等,極大的滿足了生產(chǎn)生活的需求。 6 3 溫濕度記錄儀各模塊的介紹 溫濕度記錄儀的整體結(jié)構(gòu)框架如圖 4-1 所示,記錄儀由 FLASH 存儲器、外部時鐘、電源電路、 報警器、溫濕度傳感器、液晶顯示、MSP430 單片機等模塊組成。并且能夠與 PC 機通信,將數(shù)據(jù) 傳送到 PC,再進行分析綜合,有助于對整體趨勢的把握。 3.1 單片機 MSP430 本設(shè)計考慮到低功耗的需求選用了 MSP430f149 作為主控制器。MSP430 系列是所有主流單片 機芯片中能耗最低的。其在一個芯片上集成了中央處理器和許多模擬、數(shù)字電路,提供了單片解決 的方案。其具有超低功耗、體積小、功能強的優(yōu)點,得到廣泛應(yīng)用。 單片機 MSP430 的優(yōu)點有以幾點: (1)功耗低。單片機 MSP430 工作電壓范圍為 1.83.6V,有一種活動模式,耗電電流為 250uA;有五種低功耗模式, 0.1uA 為 RAM 保持模式下的耗電電流,0.7uA 為實時時鐘模式下的電 流。輸入輸出口的最大漏電流僅為 50nA。 (2)MSP430 單片機集成的片內(nèi)外設(shè)較為豐富,為簡化設(shè)計提供了很大的方便。這些外設(shè)包 括看門狗、模擬比較器 A、定時器 A、定時器 B、串口 0/1、乘法器、IIC 串口總線、10 位/12 位 模數(shù)轉(zhuǎn)換器、端口 16、基本定時器等模塊。 (3)處理能力強大。16 位單片機 MSP430 系列,采用了目前最流行的精簡指令集結(jié)構(gòu),指令 數(shù)目少,其指令執(zhí)行周期為一個時鐘周期。 (4)系統(tǒng)能夠長時間穩(wěn)定工作。數(shù)字控制振蕩器 DCO 是該系列默認(rèn)的內(nèi)部集成振蕩器,單片 機復(fù)位后,為使程序從正確的地方開始運行,確保晶體振蕩器的起振和穩(wěn)定時間充足,CPU 應(yīng)首先 由 DCO 啟動。系統(tǒng)工作的時鐘頻率,可由軟件來設(shè)置,通過改變寄存器相應(yīng)的控制位設(shè)定適當(dāng)?shù)?頻率。為保證系統(tǒng)工作正常和運行的穩(wěn)定性,在 DCO 用作 CPU 時鐘的過程中,如果出現(xiàn)問題,數(shù) 字控制振蕩器會自動開啟。 (5)開發(fā)環(huán)境方便,效率高。MSP430 系列有三種類型,即 FLASH 型、ROM 型、OTP 型, FLASH 型單片機應(yīng)用廣泛。不同類型的單片機開發(fā)方法不相同,F(xiàn)LASH 型單片機的開發(fā)和調(diào)試環(huán) 境很方便,因為器件片內(nèi)集成了可電擦寫的 FLASH 存儲器及 JTAG 調(diào)試接口,所以,在一個軟件 集成環(huán)境中,可以運行所有編譯和調(diào)試過程。使用方法是將程序從 JTAG 調(diào)試接口下載到存儲器中, 控制系統(tǒng)運行。要想讀出片內(nèi)中央處理器的狀態(tài),也要由該調(diào)試接口控制程序進行操作。這種方式 不需要專門的編程器和仿真器,只需要一個 JTAG 調(diào)試器和 PC 機,使用簡單方便。而 ROM 型和 OTP 型的 MSP430 系列是由專門的仿真器開發(fā)的,開發(fā)完之后再燒寫或掩摸的一種芯片。 以下是 MSP430f149 和 89C51 單片機性能的比較。 (1)十六位 MSP430f149 單片機,其指令使用的是精簡指令集( RISC ),指令相對較少, 有 27 條指令。其中,大多數(shù)為模擬指令,很多片內(nèi) FLASH 和寄存器都可參加程序的執(zhí)行。由于 這 27 條指令均為單周期的指令,所以運行速度快。相比較而言,八位 89C51 使用的是復(fù)雜指令集 ( CISC ),指令較多,有 111 條指令且運行速度慢。 (2)MSP430f149 是十六位的開放性架構(gòu),經(jīng)過轉(zhuǎn)換還能使總線變?yōu)榘宋坏?,所以對這樣的基 本結(jié)構(gòu)而言,無論外接八位,還是十六位的模塊,或者擴展模數(shù)轉(zhuǎn)換或數(shù)模轉(zhuǎn)換模塊也是很方便的。 對于 89C51,由于 89C51 系列的片內(nèi)總線為八位,所以內(nèi)部的模塊基本上也都是八位的。又由于受 其內(nèi)部性質(zhì)的影響,內(nèi)部模塊雖然有了一定的增加,但是如果增加模擬功能的部件,仍顯得困難。 這使得 MSP430f149 的產(chǎn)品及功能部件迅速增加。 (3)在功耗方面,89C51 系列單片機比 MSP430f149 消耗的功耗多。89C51 正常運行的電源 電壓為 5V,有待機方式(系統(tǒng)時鐘還在運行)和掉電方式(停止包括系統(tǒng)時鐘的所有工作)兩種 低功耗模式。在正常運行情況下,電流消耗為 24mA;對于后者,一些模塊也要消耗電流 3mA 左 右。但是,為了保存 89C51 單片機內(nèi) RAM 中的內(nèi)容,即便是停止所有工作,單片機所需電壓能降 到 2V 時,也需要提供電流約 50uA 。所以,MSP430 要比 89C51 更適合應(yīng)用于電池供電裝置或系 統(tǒng)中。 7 (4)在開發(fā)工具方面。對于 MSP430f149 來說,采用了 JTAG 技術(shù)和 Flash 型存儲器,使開發(fā) 工具變得既簡便又低廉,同時也能夠?qū)崿F(xiàn)在線編程。而 89C51 單片機,很早進入中國市場,使用者 對它相對了解,所以有很多開發(fā)工具被創(chuàng)造出來,適應(yīng)設(shè)計者的要求。但是仍存在一個很大的問題, 即如何實現(xiàn)在線編程。 3.2 串口 MAX3232 串口 MAX3232 的輸出級使用的是輸入和輸出的電壓差值,為了能夠?qū)崿F(xiàn)真正的 RS-232 的功 能,輸出電平保持 RS-232 的電平,必須使電源電壓在 3.0V 到 5.5V 之間。MAX3232 具有兩個發(fā)送 端和兩個接收端,具有關(guān)斷模式,電流僅為 1uA,有效的降低了功率的消效并延長了電池的使用時 間。在關(guān)斷模式下,串口 MAX3232 仍對芯片外設(shè)進行監(jiān)測,接收端口仍保持有效的電平。當(dāng)芯片 傳輸數(shù)據(jù)的頻率過于頻繁時,串口仍就能實現(xiàn) RS-232 規(guī)定的電壓+5.0V 和-5.0V。只要輸入電壓在 3.0V 到 5.5V 范圍內(nèi),即可提供輸出正負電壓 5.5V。如果串口輸出電壓低于 5.5V,且工作在非連續(xù) 模式下,就會開啟電荷泵(開關(guān)電容式電壓變換器) ;如果串口電壓高于 5.5V,就會關(guān)閉電荷泵。 3.3 FLASH AT45DB 存儲芯片選用了 Nand-Flash 系列。存儲芯片現(xiàn)在流行 TF 卡,TF 卡可以方便拔插,但是功耗 比 Nand-Fash 系列高不少。本設(shè)計選用了 AT45DB161D,其有三種工作模式,典型待機電流為 25uA,典型掉電電流為 9uA,典型讀取電流 7mA。存儲器為八管腳的芯片,主要有片選端 (/CS) 、 電源(VCC) 、 串行輸入(SI) ,寫保護(WP) 、串行輸出(SO)和串行時鐘(SCK)等管腳。 AT45DB161D 是具有串行接口、運行電壓為 2.5V 或 2.7V 的 FLASH 存儲器,能夠存儲各種數(shù) 字語音,圖像,程序代碼等。AT45DB161D 適用于要求高速操作的場合。 存儲器串口與 SPI 兼容,存儲速率能夠達到 66MHz。AT45DB161D 的存儲地址分為頁、塊、 扇、片???cè)萘繛?17301504 位,主存儲器為 4096 頁,512 或 528 字節(jié)定義為一頁。與以前的存儲 器不同,此存儲器串行口順序訪問數(shù)據(jù),而不是采用總線分時復(fù)用或并行傳輸?shù)姆绞?。順序訪問比 并行接口節(jié)省了很多引腳,充分利用了芯片的資源,有助于硬件設(shè)計,提高了系統(tǒng)工作的穩(wěn)定性。 AT45DB161D 在要求引腳數(shù)低、電壓低、功耗低以及容量高的場合 是最佳的選擇。 存儲器 AT45DB161D 讀取操作、重復(fù)編程操作的工作電壓都為 2.5V 至 3.6V 或 2.7V 至 3.6V, 而并不需要高輸入電壓來支持,為設(shè)計者提供了極大的方便。 3.4 時鐘 DS1302 隨著科學(xué)技術(shù)的提高和人們生活水平的不斷提高,測量時間的準(zhǔn)確性也越來越重要,記錄、顯 示時間的儀器在人們不斷的努力下,也得到了提升。從電子儀表到數(shù)字時鐘,測量工具逐步改進, 計時更加可靠,更加準(zhǔn)確。在由單片機構(gòu)成的系統(tǒng)中,實時時鐘是必不可少的器件?,F(xiàn)在大多數(shù)實 時時鐘,通常使用單片機的定時器設(shè)定初值,溢出后產(chǎn)生中斷的方法實現(xiàn),這種方式既需要采用計 數(shù)器,又使用軟件編程,耗費了單片機很多資源,而且需要選擇中斷或查詢方式,同時在一些系統(tǒng) 中或許不可以采用中斷;有的系統(tǒng)為了滿足對時鐘芯片的要求,則使用并行接口芯片,如 MSM5832、DS12C885 等,它們雖能滿足系統(tǒng)對實時時鐘的要求,但這些芯片存在很大缺點,如并 行接口的芯片與單片機連接的接口繁瑣、芯片占用空間大、占用數(shù)據(jù)位和地址位接口多,給整個系 統(tǒng)帶來不便。此溫濕度記錄儀的數(shù)字時鐘是由串行實時時鐘 DS1302 和 MSP430 同步通信構(gòu)成的。 其 3-wire 結(jié)構(gòu)節(jié)省了 MSP430 很多能源,減少了不必要的消耗。而且,電路掉電后,時間和數(shù)據(jù)等 重要內(nèi)容仍然不會消失。這些特點擬補了普通時鐘芯片具有的缺點,該時鐘電路可靠性和準(zhǔn)確性有 了很大提高,適用于要求比較高的場合,優(yōu)越性明顯高于其它時鐘芯片,在很多自動化控制、無人 的測控系統(tǒng)等領(lǐng)域,具有較高的使用價值。 時鐘芯片 DS1302,能與單片機進行同步串行方式的通信,其內(nèi)部內(nèi)含有一個實時時鐘和 31 字 節(jié)數(shù)據(jù)暫存存儲器,僅需用到三根線進行數(shù)據(jù)的控制和傳遞,即 SCLK 串行時鐘,RES 復(fù)位,輸 入輸出數(shù)據(jù)線。實時時鐘能提供日、時、分、秒、月、年的精確信息,根據(jù)每月的天數(shù)和閏年、平 年的天數(shù),時鐘可自動做出調(diào)整。也可通過對時鐘進行設(shè)置,決定使用 24 小時模式還是使用 12 小時模式。DS1302 工作電壓范圍 2.05.5V,當(dāng)電壓為 2V 時,能保存時鐘和數(shù)據(jù)信息,且電流小 于 300NA,也就是說率小于 1MW,因此功耗很低。 8 3.5 LCD 液晶顯示器 LCD 液晶顯示器的整體是由上下兩個玻璃板構(gòu)成的,在兩塊板之間設(shè)置液晶盒,LCD 液晶下 層板放置薄膜晶體管,在上層板中,放置彩色濾光片。LCD 液晶分子的運動趨勢由薄膜晶體管上 的電壓和信號的改變決定,由此決定每一個像素點偏振光被過濾掉還是射出,從而顯示出想要顯示 的效果。 LCD 液晶顯示器的優(yōu)點是顯示的內(nèi)容多,控制簡單,功耗低,可以顯示字符、圖片等內(nèi)容; 缺點是顯示器本身不會發(fā)光,而是根據(jù)背光來達到顯示的目的,并且價格也不便宜。相比于 LCD 液晶屏,LED(二極管)的優(yōu)點是液晶本身會發(fā)光,所以從遠處能夠看清屏上的內(nèi)容,而 LCD 則 不能看清,并且其價格比 LCD 要低;缺點是顯示的內(nèi)容少,一般是數(shù)碼,而且很耗電,控制復(fù)雜。 基于本設(shè)計低功耗的設(shè)計理念,并且對發(fā)光亮度沒有要求,應(yīng)選擇 LCD 顯示屏。 芯片的驅(qū)動器使用的是功能強大并且可以編程的 HT1621,可驅(qū)動很多種顯示器,其中包括有 效電平時間與總周期之比為 1/2、1/3 和 1/4 的,偏置比為 1/2 或 1/3 的顯示器。驅(qū)動芯片內(nèi)有 128 位顯示 RAM,可以選擇低功耗的運行模式,適用于本設(shè)計所選的 LCD 模塊和 HT1621 模塊組成的 顯示系統(tǒng)。HT1621 正常工作電壓為 2.4V 到 2.5V,內(nèi)部設(shè)有振蕩器(頻率 256kHz) ,外部有時鐘 (頻率 256kHz)或者晶體振蕩器(頻率 32kHz) 。 3.6 溫濕度傳感器 SHT10 考慮到功能要求和功耗要求選用了 SHT10 溫濕度傳感器,該傳感器為輸出數(shù)字量的集成器件, 是由瑞士 Sensirion 公司推出。傳感器的組成包括兩個部分,即 1 個測溫元器件以及 1 個測濕元器 件,能同時實現(xiàn)測量溫濕度的要求,并且在同一芯片上,結(jié)合串行接口電路和 14 位模數(shù)轉(zhuǎn)換器。 這些器件不僅使該產(chǎn)品具有性價比高的優(yōu)點,而且反應(yīng)快、功耗低,使其成為首選產(chǎn)品。 SHTl0 具有很多優(yōu)點,體積小,精度高,數(shù)字輸出等特點給設(shè)計者帶來很大方便。 3.7 本章小結(jié) 本章主要對溫濕度記錄儀各模塊的結(jié)構(gòu)和功能特點做了簡單的介紹,從中可以看出都采用了超 低功耗的器件,使整個系統(tǒng)將功耗降到最低。 4 溫濕度監(jiān)測的硬件設(shè)計 溫濕度記錄儀的整體結(jié)構(gòu)框架如圖 4-1 所示,記錄儀由 FLASH 存儲器、外部時鐘、電源電路、 報警器、溫濕度傳感器、液晶顯示、MSP430 單片機等模塊組成。并且能夠與 PC 機通信,將數(shù)據(jù) 傳送到 PC,再進行分析綜合,有助于對整體趨勢的把握。 圖 4-1 4.1 MSP430 的外圍電路 MSP430及其外圍電路如圖4-2所示,單片機周圍有晶振電路、復(fù)位電路、電源電路。MSP430 9 外接了一個32768HZ的晶振,芯片內(nèi)部的工作頻率通過倍頻提供,每條指令的執(zhí)行周期為125ns。 圖 4-2 4.2 電源電路 如圖4-3所示,SOUR2是經(jīng)過電阻R9和R10 分壓后得到的R10 上的電壓,送入MSP430 進行模數(shù) 轉(zhuǎn)換,轉(zhuǎn)換值與預(yù)先設(shè)置的值進行比較,如果低于設(shè)定值,則通知單片機,并在LCD液晶上顯示電 量不足的信息。二極管D1能防止 P2產(chǎn)生的大電流進入單片機,能很好的保護單片機正常運行。穩(wěn) 壓管VR1 為MSP430提供3.3V 電壓。 圖 4-3 4.3 通信電路 使用 MAX3232 作為與 PC 通信的芯片,通信示意圖如圖 4-4 所示,供電電壓為+3.3v。電路中 10 的 C9、C10 、C13、C14 的值在串口使用說明上都為 0.1uf。 DB9 各管腳定義:1、載波檢測(DCD);2、數(shù)據(jù)接收端(RXD);3、數(shù)據(jù)發(fā)送端(TXD ); 4、數(shù)據(jù)終端準(zhǔn)備好(DTR);5、信號地(SG);6、數(shù)據(jù)準(zhǔn)備好(DSR);7、發(fā)送請求(RTS ); 8、發(fā)送清除(CTS);9、振鈴提示(RI); 圖 4-4 4.4 時鐘電路 該設(shè)計時鐘電路由時鐘芯片、晶振和電阻組成。如右圖 4-5 所示,時鐘電路在很多系統(tǒng)中都很 常見,如手機、筆記本、電子手表、學(xué)習(xí)機等都有時鐘電路。DS1302 電路是目前普遍使用的串行 時鐘芯片,該時鐘電路具有很多優(yōu)點,如電路計時準(zhǔn)確、價格便宜、操作方便、可靠性強、使用方 法簡單。時鐘電路最突出的特點是數(shù)據(jù)傳輸使用的是串行輸出,節(jié)省了輸入輸出口。除此之外,時 鐘電路具有充電功能,掉電后為保證電路正常工作,能夠通過軟件提供充電操作,也能夠停止該動 作。晶體振蕩器 Y1 使用的頻率為 32.768kHz。 圖 4-5 4.5 存儲電路 AT45DB 的連接如圖 4-6 所示,片選引腳/CS 為使能端,串行時鐘(SCK)端進行讀寫控制。 SI 和 SO 為串行輸入線和串行輸出線,微處理器指令控制設(shè)備運行。AT45DB161B 具有通用串行接 口,但是只支持模式 0 和 3。在這兩種模式下,當(dāng) SCK 端出現(xiàn) 0 到 1 的跳變時,存儲器將輸入數(shù)據(jù); 當(dāng) SCK 出現(xiàn) 1 到 0 的跳變時,存儲器將輸出數(shù)據(jù)。二者的不同之處在于 SCK 觸發(fā)沿的變化不同。 復(fù)位時,串行外設(shè)接口的模式 3 為存儲器的默認(rèn)使用模式。以上所有的地址、指令和數(shù)據(jù)都從高字 11 節(jié)傳送。 圖 4-6 4.6 顯示電路 根據(jù)顯示要求驅(qū)動器使用了 HT1621,驅(qū)動器是 34*2 位的內(nèi)存映象和功能齊全的驅(qū)動芯片。液 晶能夠在很多地方使用,例如一些顯示子系統(tǒng)和 LCD 模塊等場合。只用四條或五條引腳來連接驅(qū) 動和主控制器?;诒驹O(shè)計的理念,HT1621 也有節(jié)電模式,電流最大為 5uA,有助于系統(tǒng)整體功 耗的降低。 液晶使用了普瑞翔 FY-T03937ARP 如圖 4-7。 12 圖 4-7 4.7 報警電路 溫濕度記錄儀的報警電路如圖 4-8 所示,單片機通過 BELLLC 端控制蜂鳴器。當(dāng)溫度超過上下 限時,該端為高電平,三極管導(dǎo)通,報警電路報警。相反,當(dāng)該端為低電平時,三極管截止,報警 電路不工作。 圖 4-8 5 溫濕度監(jiān)測的軟件設(shè)計 5.1 Altium Designer 的介紹 該軟件是 EDA(電路設(shè)計自動化)軟件開發(fā)商 Altium 公司推出的一體化的電子產(chǎn)品開發(fā)系統(tǒng)。 13 這套軟件融合了原理圖繪制、電路仿真、PCB 繪制、自動布線、信號完整性分析和設(shè)計輸出等技術(shù), 給使用此系統(tǒng)的人們提供了輕松的設(shè)計方法,是一種快捷高效的設(shè)計研發(fā)途徑。該系統(tǒng)已經(jīng)在很大 程度上加快了印刷電路板的設(shè)計效率和產(chǎn)品質(zhì)量。 EDA 指的是將整個設(shè)計過程中由人完成的部分現(xiàn)在交給計算機來完成此任務(wù)。例如電路原理 圖的繪制、印刷電路板文件的制作、執(zhí)行電路仿真等工作。隨著電子科技的迅速發(fā)展,功能強大的 器件不斷出現(xiàn),人們的要求也越來越高,電路的設(shè)計也變得很復(fù)雜,這些工作想要靠手工完成,幾 乎是不可能的事情,電路設(shè)計自動化已經(jīng)成為必然的趨勢,設(shè)計人員開始使用簡單方便的 CAD(計算機輔助設(shè)計)軟件來進行設(shè)計,除了能夠畫原理圖和設(shè)計印刷電路板,也能夠打印各種 報表。 Altium Designer 不僅沿用了 EDA、CAD 的基本功能和特點,還擴展了一些改進的高端的功能。 該平臺拓展了板級設(shè)計的傳統(tǒng)界面,集成了可編程片上系統(tǒng)和現(xiàn)場可編程門陣列設(shè)計功能,從而允 許設(shè)計人員能集成系統(tǒng)設(shè)計中的印刷電路板設(shè)計與現(xiàn)場可編程門陣列和嵌入式設(shè)計。在繼承先前 EDA 軟件功能的基礎(chǔ)上,此軟件綜合了現(xiàn)場可編程門陣列設(shè)計、嵌入式系統(tǒng)軟件設(shè)計的功能,對 計算機的系統(tǒng)需求比以前的版本要高。 功能介紹:1、原理圖設(shè)計;2、PCB 設(shè)計;3、嵌入式開發(fā);4、現(xiàn)場可編程門陣列的開發(fā)。 5.2 Altium Designer 使用 首先在軟件建立一個印刷電路板的工程文件,然后向工程中添加原理圖文件,最后再向工程中 添加 PCB,更新 PCB,設(shè)計 PCB。如圖 5-1 所示。 14 圖 5-1 5.3 程序流圖 軟件部分可分為主程序、中斷程序和各種子程序。在主程序和中斷程序里調(diào)用數(shù)據(jù)接收、A/D 轉(zhuǎn)換、數(shù)據(jù)存儲、顯示、數(shù)據(jù)上傳等子程序。在沒有和PC 機連接的情況下,單片機執(zhí)行完操作后, 若沒有操作,會進入休眠狀態(tài),直到與上位機相連,將單片機喚醒。當(dāng)單片機與PC相連時,可以 接收上位機發(fā)送來的命令并執(zhí)行,上傳相應(yīng)的數(shù)據(jù)。 圖5-2為本設(shè)計的程序流圖。 定時器 1 秒 休眠 按鍵 顯示 讀時間溫度 圖5-2 5.4 程序 初始化程序 P2OUT//關(guān)蜂鳴器 P4DIR|=BIT0; P4OUT //發(fā)光二極管滅 P6DIR 15 P6OUT InitSystemClock(); // // 為時鐘源選擇外部晶振為振源 /*初始化定時器a*/ CCR0 = 32767; //設(shè)置定時器 A的中斷時間為1S TACTL = TASSEL_1 + MC_1; //計數(shù)時鐘ACLK, 增計數(shù)模式8分頻+ID_3 CCTL0 |= CCIE; //使能CCR0比較中斷 /*ds1302*/ P1SEL //定義為普通 I/O口 P1DIR |= DS_RST+DS_SCL; //bit1 bit0 bit3輸出 /************初始化re232*************/ Init_rs232 (); // /***初始化1621顯示******/ P2SEL //定義 p2.2 p2.4 p2.5為普通I/O 口 P2DIR|=BIT2+BIT4+BIT5; //定義 p2.2 p2.4 p2.5為輸出 Init_1621(); qingping();////////先清 屏 //////////////ad//////////// P6DIR ADC12CTL0 = ADC12ON+SHT0_0+MSC; // 打開ADC,設(shè)置采樣時間 ADC12CTL1 = CSTARTADD_3+SHP+CONSEQ_0; // 選擇存儲器地址,使用采樣定器 ADC12MCTL3 = INCH_3; // 選擇采樣通道a3 ADC12CTL0 |= ENC; // 使能轉(zhuǎn)換 P6SEL |= BIT3; //使能ADC通道 // /**** 初始化flash*****/ AT45_ini(); ///******初始化按鍵**/ key_init(); ///***初值設(shè)定****/ chuzhi_from_flash();//讀出flsh中的初值 ///////////////初次顯示//////////// th_read( Getshijian(gettimer30s); chadianliang(); show_all1621(); P2DIR|=BIT1;P2OUT|=BIT1; Delays(18);P2OUT //蜂鳴器控制 主程序中標(biāo)志位掃描程序 _EINT(); //打開全局中斷 if(guanji==0) //不關(guān)機 這條命令只執(zhí)行一次 Init_1621(); P4DIR|=BIT7; //開啟VS P4OUT|=BIT7; P1IFG =0 x00; P2IFG =0 x00; 16 key_init(); guanji=2; //跳出這條命令 qingping(); CCTL0 |= CCIE; //使能CCR0比較中斷 if(guanji==2) //不關(guān)機 if(model==0) LPM1; if(kongzhi==0) if(miao%60==0) Getshijian(gettimer30s); th_read( temp=temp_offset+temp+tempset; hum=hum_offset+hum+humset; if((miao%caijishijian==0) if((miao%60==0) else if(model==1) show_setmodel1() ; else if(model==2) show_setmodel2() ; else if(model==3) show_setmodel3() ; if(guanji==1) qingping(); P2DIR|=BIT1;P2OUT//蜂鳴器不響 P1IE // 關(guān)閉P1.6P1.7中斷使能 P2IE //關(guān)閉P2.0中斷使能 P5OUT=BIT0+BIT1; P1OUT=BIT0+BIT1+BIT2; P3OUT=BIT1+BIT2+BIT3+BIT4; CCTL0 //關(guān)閉定時器 P4DIR|=BIT0; P4OUT LPM1; 17 顯示總調(diào)用函數(shù) void show_all1621() //// //顯示總調(diào)用 if(model==0) //普通模式 showtime() ; xianshifuzhi() ; show_T1_5_X4_LOG_MEM_H_X1() ; showwenshi() ; void show_setmodel1() qingping(); ///設(shè)置模式1 //設(shè)置部分全亮 switch(xian_choose) case 0: Ht1621Wr_Data_4(0 x80, 23);//溫度高限亮 set_show_wendu_H() ; break; case 1: Ht1621Wr_Data_4(0 x80, 21);//溫度低限亮 set_show_wendu_L() ; break; case 2: Ht1621Wr_Data_4(0 x10, 1); //顯示濕度高限 set_show_shidu_H() ; break; case 3: Ht1621Wr_Data_4(0X10, 17); //顯示濕度高限 set_show_shidu_L() ; break; default: break; Delays(40); //閃爍 switch(xian_choose) case 0: case 1:if(wei_choose==1) Write_Data(0 x00, 26); Write_Data(0 x00, 2); else if(wei_choose==2) Write_Data(0 x00, 28); Write_Data(0 x00, 4); 18 break; case 2: case 3: if(wei_choose==1) Write_Data(0 x00, 26); Write_Data(0 x01, 2); else if(wei_choose==2) Write_Data(0 x00, 28); Write_Data(0 x00, 4); break; default: break; Delays(40); void show_setmodel2() ///設(shè)置模式2 qingping(); switch(xian_choose) case 0: set_show_shifen(); Delays(40); if(wei_choose==1) //讓選中位滅 達到閃爍效果 Write_Data(0 x00, 14); Write_Data(0 x01, 8); else if(wei_choose==2) Write_Data(0 x00, 10); Write_Data(0 x00, 12); Delays(40); break; case 1: set_show_yueri(); Delays(40); if(wei_choose==1) //讓選中位滅 達到閃爍效果 Write_Data(0 x00, 14); Write_Data(0 x00, 8); else if(wei_choose==2) Write_Data(0 x00, 10); Write_Data(0 x00, 12); 19 Delays(40); break; case 2: set_show_year(); Delays(40); if(wei_choose==1) //讓選中位滅 達到閃爍效果 Write_Data(0 x00, 10); else if(wei_choose==2) Write_Data(0 x00, 12); Delays(40); break; case 3 : set_show_caijishijian(); Delays(40); if(wei_choose==1) //讓選中位滅 達到閃爍效果 Write_Data(0 x00, 24); else if(wei_choose==2) Write_Data(0 x00, 26); else if(wei_choose==3) Write_Data(0 x00, 28); else if(wei_choose==4) Write_Data(0 x00, 30); Delays(40); default: break; void show_setmodel3() qingping(); switch(xian_choose) case 0: set_show_temp_wucha(); break; case 1: set_show_hum_wucha(); break; default: break; Delays(40); switch(xian_choose) case 0: if(wei_choose==1) Write_Data(0 x08, 28); else if(wei_choose==2) Write_Data(0 x08, 30); break; case 1: 20 if(wei_choose==1) Write_Data(0 x01, 4); else if(wei_choose==2) Write_Data(0 x01, 6); break; default: break; Delays(40); 5.5 本章小結(jié) 本章主要介紹了能進行融合原理圖繪制、電路仿真、印刷電路板的繪制、自動布線的 Altium Designer 軟件。同時,也簡單的介紹了溫濕度記錄儀的程序框架。 6 問題發(fā)現(xiàn)和解決 6.1 程序問題 問題1:按鍵觸發(fā)概率低。 按鍵程序原來是這樣的: if(P1IFG if(keyin == 0 x0e) while(keyin != 0 x0f); //等待按鍵放開 KeyVal = 1; LPM1_EXIT; P1IFG = 0; return; 該程序在邏輯上是對的,因為單個按鍵程序是沒有任何問題的。 分析如下: 1)是不是由于delay()的時間太短或者太長造成的呢?經(jīng)過查閱資料知道按鍵消抖時間 50毫秒 左右,經(jīng)過嘗試修改delay()時間發(fā)現(xiàn)不能從根本上解決問題;還有很大的概率按鍵失靈; 2)懷疑是寫的程序太亂執(zhí)行效率低來不及執(zhí)行按鍵,通過三天的修改程序架構(gòu),已經(jīng)變得十 分簡單了,結(jié)果還是沒有太大改善,但是程序很順暢了。 3)懷疑是中斷使用過多觸發(fā)太頻繁導(dǎo)致觸發(fā)程序失敗,經(jīng)過精簡中斷函數(shù),去掉了一個20毫 秒的定時器,去掉了一個rs232 發(fā)送中斷,沒有太大改觀。 4)或許按鍵程序有問題。通過仿真器的采集P1IFG的值,發(fā)現(xiàn)了亂碼,P1IFG應(yīng)該是0 x80卻有 時候變?yōu)? x87(低三位接了DS1302);找到了原因原來邏輯上對的實際上很有可能有其他的干擾 存在,于是屏蔽低四位的干擾,程序如下: if(P1IFG if(P1IN //等待按鍵放開 21 key_val = 1; P1IFG =0 x00; 完美解決了按鍵問題。 問題 2:段碼液晶顯示不正常。 1)可能是段碼程序問題,經(jīng)過仔細檢查程序發(fā)現(xiàn)還是不正常顯示。 2)可能是電路問題,經(jīng)過反復(fù)推敲電路設(shè)計發(fā)現(xiàn)沒問題。排除方法是:測量電壓、電流。發(fā) 現(xiàn)驅(qū)動 ht1621 正常工作。驅(qū)動 ht1621 的上拉電阻采取資料提供的標(biāo)準(zhǔn)的 100k 電阻發(fā)現(xiàn)問題依舊。 3)詢問廠家是否按標(biāo)準(zhǔn)制作,回答是肯定的。我們只好再次進行上述的步驟結(jié)果還是徒勞, 迷茫中我們要求廠家提供測試正常的視頻依據(jù)和測試代碼,經(jīng)過仔細比對發(fā)現(xiàn)視頻中有一處和原理 有悖。進過仔細審查發(fā)現(xiàn)廠家沒有按要求去生產(chǎn),把 COM 口放錯位置且是順時針排序。而我們提 供給他們的圖紙是逆時針的。亂碼問題也解決了。 問題 3:串口通訊不正常與速度太慢。 在調(diào)試串口時候發(fā)現(xiàn)程序有錯誤,按照教程修改好了。由于 4 萬條數(shù)據(jù)要傳送以 9600 波特率 要傳送十幾分鐘,我們改為 115200HZ 的波特率。發(fā)現(xiàn)總是通訊失敗,查閱相關(guān)資料發(fā)現(xiàn) msp430 默認(rèn)工作頻率 800KHZ 雖然傳送數(shù)據(jù)用的是子時鐘 8MHZ,但 CPU 主時鐘頻率低,不能勝任提供 數(shù)據(jù)工作經(jīng)過修改把 CPU 提高到 8MHZ,但是頻率越高功耗越大,所以我們進行降頻實驗最后降 到 1MHZ 發(fā)現(xiàn)正常工作。所以確定 CPU 工作在 1MHZ 模式下。 問題 4:存儲不正常。 NAND-FLASH 雖然功耗低但是操作起來復(fù)雜,經(jīng)過查閱相關(guān)資料發(fā)現(xiàn)存儲電路設(shè)計的并不完 美,因為 MSP430 有 SPI 接口,但設(shè)計電路時候卻用了普通 I/O 口模擬 SPI,造成某些對時間要求 苛刻的函數(shù)并不能夠順利執(zhí)行,最后采用精簡邏輯使用兩個函數(shù)完成存儲讀取的任務(wù)。 6.2 硬件問題 1)斷不開地問題的解決。采用三極管斷開器件與地的連接以節(jié)省功耗,卻發(fā)現(xiàn)芯片依然工作。 器件分離測試發(fā)現(xiàn)各個芯片都存在這個問題。最后決定使用三極管斷開電源的方法。 2)I/O 功耗問題的解決。雖然采取了大量硬件軟件措施降低功耗,但是功耗還是達到了十幾毫 安秒。芯片一一卸下檢測剩下的電路的總電流,最終發(fā)現(xiàn)原因在連接外部電源的接口,分析后認(rèn)為 電源接口有一個檢測端口不插入外部電源就處于低電平而檢測端口接的 I/O 可能是高電平,所以 I/O 口設(shè)為輸入口后應(yīng)該再輸出一個低電平,問題解決。 3)上拉電阻功耗問題的解決。在使用上拉電阻時候起初采用了經(jīng)典的十千歐電阻,單個電阻 電流為零點三三毫安,由于上拉電阻比較多電流總和就達到了三到五毫安。所以才用了一兆歐姆的 電阻作為上拉電阻,經(jīng)過測試系統(tǒng)工作正常。 6.3 本章小結(jié) 本章大略地說明了存在的問題及其解決方法??偨Y(jié)出的方法是首先考慮軟件問題其次考慮硬件 問題,最后綜合考慮。最初的程序跑在板子上功耗最高時候四十多毫安秒。經(jīng)過軟件的優(yōu)化降低了 大部分的的功耗,經(jīng)過硬件的排查幾乎滿足了要求。軟硬件的綜合考慮之后功耗滿足了設(shè)計的要求。 7 總結(jié) 本設(shè)計要求能對溫度、濕度同時進行檢測。來自SHT10的數(shù)字信號通過SHTDATA 端進入單片 機,在單片機中,溫度濕度數(shù)據(jù)一方面送到LCD液晶屏顯示;另一方面將溫濕度數(shù)據(jù)存儲在 AT45DB中,存儲下來的數(shù)據(jù)可以經(jīng) MAX3232總線傳輸?shù)接嬎銠C中,在計算機中使用相應(yīng)的軟件, 可以觀測溫濕度數(shù)據(jù)的曲線,也能對數(shù)據(jù)進行打印,實現(xiàn)了智能化,人性化。 本設(shè)計采用 MSP430 單片機實現(xiàn)了溫濕度的記錄、顯示、報警、設(shè)置、上傳到 PC 等功能。而 且還可以設(shè)置測量溫濕度的時間長短、起始時間等參數(shù)進行設(shè)置。由于 MSP430 單片機的超低功耗 特性,以及采用高效率電源管理模塊,程序設(shè)計中采用低功耗設(shè)計方式,使得整個系統(tǒng)減少了功耗 22 的浪費。 參考文獻: 1 胡大可MSP430 系列 Flash型超低功耗 16位單片機北京航空航天大學(xué)出版社,2001 2 蔡純潔邢武PIC16/17 單片機原理和應(yīng)用,合肥:中國科學(xué)技術(shù)大學(xué)出版社,2001 3 張雪彤張榮華胡書敏等大洋中脊熱水探測與新型傳感器J地質(zhì)論評,2006 4 沈建華楊艷琴MSP430 系列 16位超低功耗單片機原理與應(yīng)用M北京:清華大學(xué)出版 社,2004 5 童詩白華成英模擬電子技術(shù)M北京:高等教育出版社,2001 6 陳延奎基于 80C51單片機的通用數(shù)據(jù)采集與處理系統(tǒng)J機械出版社,2008 7 李朝青單片機&DSP 外圍數(shù)字 IC技術(shù)手冊北京:北京航空航天大學(xué)出版社,2005 8 袁濤等單片機 C高級語言程序設(shè)計及其應(yīng)用北京:北京航空航天大學(xué)出版社,2001 9 晶辰工作室編Visual Basic 6.0中文版實用參考手冊專著:語句、函數(shù)、對象與方 法篇.北京:電子工業(yè)出版社,1998 10 何希才薛永毅姜余祥傳感器技術(shù)及應(yīng)用北京:北京航空航天大學(xué)出版社,2005 11 李道華李玲朱艷傳感器電路分析與設(shè)計武漢:武漢大學(xué)出版社,2000 12 利爾達沈建華楊艷琴MSP430 系統(tǒng) 16位超低功耗單片機實踐與系統(tǒng)設(shè)計,2005 13 金海龍基于 MSP430 的高精度溫度測量的補償方法,單片機與嵌入式系統(tǒng)應(yīng)用,2001 14 張希王德銀MSP430 系列單片機實用 C語言程序設(shè)計北京:人民郵電出版社,2005 15 葉樹明. 基于 C8051F040 單片機的便攜式心電監(jiān)護儀的低功耗設(shè)計. 電子器件, 2007 16 沈建華. MSP430 系列 16 位超低功耗單片機原理與應(yīng)用. 北京: 清華大學(xué)出版社, 2004 17 孫建軍. 小型血液溫度監(jiān)測記錄儀研制. 中國醫(yī)療器械信息,2
收藏