基于Proteus的液晶溫度顯示器仿真設(shè)計
摘要:給出了一種基于Proteus7.5仿真實現(xiàn)的液晶溫度顯示器設(shè)計。系統(tǒng)硬件電路采用AT89C52單片機、DS18B20數(shù)字溫度傳感器和LM016L液晶顯示器等主要元件。采用Keil uVision3設(shè)計系統(tǒng)軟件的C51源程序并調(diào)試。在Proteus 7.5平臺上,對系統(tǒng)進(jìn)行了軟硬件仿真。仿真結(jié)果表明,該系統(tǒng)的測量和顯示精度達(dá)到了0.1℃。通過Proteus對液晶溫度顯示器的工作狀態(tài)進(jìn)行模擬,以檢驗和評估設(shè)計的可行性,縮短了實際系統(tǒng)開發(fā)周期,降低了開發(fā)成本,是一種有效可行的仿真方法。
關(guān)鍵詞:Proteus;液晶溫度顯示器;DS18B20;LM016L
隨著現(xiàn)代信息技術(shù)的飛速發(fā)展和傳統(tǒng)工業(yè)改造的逐步實現(xiàn),能夠獨立工作的溫度檢測和顯示系統(tǒng)已經(jīng)應(yīng)用于諸多領(lǐng)域。傳統(tǒng)的溫度檢測和顯示是基于模擬傳感器和LED顯示技術(shù)的。傳感器輸出的模擬信號易受干擾,在一些溫度范圍內(nèi)線性不好,需要進(jìn)行冷端補償或引線補償。隨著科學(xué)技術(shù)的發(fā)展,由單片集成電路構(gòu)成的溫度傳感器的種類越來越多,測量的精度越來越高,數(shù)字溫度傳感器具有價格低、精度高,適于微型封裝、能工作在寬溫度范圍內(nèi)等優(yōu)點,在很多應(yīng)用中,數(shù)字溫度傳感器正開始替代傳統(tǒng)的模擬溫度傳感器。另外,液晶顯示器體積小,便于攜帶、功耗低、抗干擾能力強、信息豐富等優(yōu)點,已被廣泛應(yīng)用在儀器儀表和控制系統(tǒng)中。
現(xiàn)代電子設(shè)計手段的發(fā)展,已由傳統(tǒng)的手工設(shè)計階段發(fā)展到了EDA階段,再到虛擬設(shè)計階段,Proteus軟件就是在這大背景下應(yīng)運而生的。Proteus軟件是英國Labcenterelectronics公司研發(fā)的EDA工具軟件,是目前最流行的嵌入式系統(tǒng)設(shè)計與仿真平臺,它能完全脫離硬件平臺進(jìn)行嵌入式虛擬開發(fā),通過各虛擬儀器構(gòu)建硬件電路,調(diào)試Keil、ADS等集成開發(fā)環(huán)境中生成的軟件程序,達(dá)到虛擬硬件調(diào)試系統(tǒng)程序的目的,為后續(xù)實際軟硬件系統(tǒng)的設(shè)計提供實踐理論依據(jù)。
1 硬件電路設(shè)計
液晶溫度顯示器的硬件主要有以下部分:溫度檢測部分、單片機最小系統(tǒng)、顯示電路和鍵盤電路,如圖1所示。
單片機采用美國ATMEL公司生產(chǎn)的低電壓、高性能CMOS的MCS-51系列單片機AT89C52,它片內(nèi)含8 K字節(jié)可重復(fù)擦寫Flash閃速存儲器和256字節(jié)的RAM,片內(nèi)程序存儲器空間能滿足本系統(tǒng)程序存儲之需要,可省去片外EPROM程序存儲器,簡化系統(tǒng)的設(shè)計,使電路結(jié)構(gòu)簡潔。時鐘電路中的晶振頻率采用12 MHz,系統(tǒng)復(fù)位采用上電復(fù)位方式。系統(tǒng)的硬件電路如圖2所示。
溫度傳感器采用美國Dallas公司生產(chǎn)的單總線(1-wire)數(shù)字溫度傳感器DS18B20。它的測量溫度范圍為-55~+125℃,在-10~+85℃范圍內(nèi),精度可達(dá)±0.5℃,通過編程可以選擇9~12位A/D轉(zhuǎn)換精度,測溫分辨率可達(dá)0.062 5℃。DS18B20耐磨耐碰,體積小,使用方便,適用于各種狹小空間。它只有3個引腳,2腳DQ是數(shù)字信息輸入/輸出端,3腳VCC是外部電源輸入端,1腳GND是電源地?,F(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,可以提高系統(tǒng)的抗干擾性。DS18B20的電源供電方式有2種:外部供電方式和寄生電源方式。工作于寄生電源方式時,VDD和GND均接地,它在需要遠(yuǎn)程溫度檢測和空間受限的場合特別有用,但是需要強上拉電路,軟件控制變得復(fù)雜,同時芯片的性能也有所降低。因此,在本設(shè)計中,采用外接電源供方式,將DQ與P3.2相連接。
LM016L是16x2數(shù)碼液晶顯示器,每行可顯示16個字符,共2行。LM016L的控制器為HD44780,與液晶屏集成在一起。HD44780的控制端有3個,分別是RS、讀寫控制端RW和使能信號E。RS=0時,配合RW實現(xiàn)命令讀寫;RS=1時,配合RW實現(xiàn)顯示數(shù)據(jù)的讀寫。本系統(tǒng)中,單片機的P0口作為數(shù)據(jù)口,與LM016L的D0~D7連接,為保證電路能正常顯示,在P0口與D0~D7之間分別連接8個上拉電阻。P2口作為LCD的控制線,P2.0~P2.2分別連接LM016L的RS、RW和E,VDD、VSS和VEE分別接電源和地。
本顯示器設(shè)置了一個檢測控制開關(guān)SW1,它的高低電平信息通過P2.3傳遞給單片機。當(dāng)單片機復(fù)位后,若SW1為ON,DS18B20檢測溫度信息,經(jīng)過單片機處理后送LM016L顯示,工作指示燈LED1亮;若SW1為OFF,則系統(tǒng)暫停工作,工作指示燈LED1滅。當(dāng)溫度傳感器DS18B20有故障無法復(fù)位時,工作指示燈LED1閃爍。
2 軟件設(shè)計
系統(tǒng)在Keil uVision3集成開發(fā)環(huán)境編寫C51程序進(jìn)行軟件開發(fā),采用模塊化編程方式。在硬件設(shè)計的基礎(chǔ)上,根據(jù)DS18B20和LM016L的工作原理,軟件設(shè)計主要完成以下任務(wù):初始化DS18B20,讀/寫DS18B20,讀取DS18B20轉(zhuǎn)換后的溫度值并轉(zhuǎn)換,初始化LMOl6L,LM016L顯示溫度值等。以上各個子任務(wù)分別用相應(yīng)的子程序來實現(xiàn),在主程序中有序的調(diào)用各個子程序模塊,程序流程圖如圖3所示。
系統(tǒng)軟件設(shè)計的重點和難點之一是傳感器輸出信號的讀取和轉(zhuǎn)換。單片機從DS18B20中讀到的溫度值是16位的數(shù)字信息,其中高5位是表示溫度正負(fù)的符號位。數(shù)字溫度值的讀取并轉(zhuǎn)換成實際溫度十進(jìn)制值的子程序流程圖如圖4所示。
溫度轉(zhuǎn)換子程序設(shè)計如下:
在軟件設(shè)計時,應(yīng)嚴(yán)格按照DS18B20和LM016L的工作時序,設(shè)置好延時時間,否則會影響系統(tǒng)的實時性,即出現(xiàn)溫度顯示輸出變化滯后溫度輸入的變化。
3 系統(tǒng)仿真
在Keil uVision3中,采用C51編寫源程序,在新建項目中選擇AT89C52單片機作為CPU,再將編寫好的C語言源程序加載到新建項目中。在“Project”下拉菜單中,選擇“Options forTarget”對話框,在對話框中選中“Output”選項卡的“Create HEX File”選項,最后點擊“Itebuild all Target Files”,編譯成功后生成的“*.Hex”文件。在Proteus ISIS7.5中,雙擊AT89C52,將可執(zhí)行程序裝載到單片機中,如圖5所示。
程序?qū)隤roteus后,點擊仿真運行控制按鈕后,進(jìn)入仿真調(diào)試狀態(tài),點擊中的Play鍵,進(jìn)行軟、硬件交互仿真,如圖6所示。圖6(a)表明,假如DS18B20檢測到的當(dāng)前溫度是123.9℃,則經(jīng)過單片機處理后,LM016L顯示出當(dāng)前的溫度值123.9℃,工作指示燈亮。通過調(diào)節(jié)DS18B20模型上的上下標(biāo),可設(shè)定低于零度的溫度輸入,仿真顯示結(jié)果如圖6(b)所示。在Proteus仿真狀態(tài)下,調(diào)節(jié)DS18B20模塊的上下標(biāo)改變溫度的輸入值(-55.0~+125.0 ℃),LM016L的輸出溫度值實時跟隨變化。仿真結(jié)果表明,該溫度顯示器能準(zhǔn)確的測量并顯示溫度,測量精度到0.1℃,仿真效果與系統(tǒng)預(yù)期要實現(xiàn)的一致。
4 結(jié)束語
利用功能強大的Proteus軟件提供的元件庫設(shè)計硬件電路及軟硬件仿真,實現(xiàn)了液晶溫度顯示器的仿真設(shè)計。該顯示器電路結(jié)構(gòu)簡潔,可靠性高,成本低。通過Proteus的前期仿真提高了液晶溫度顯示器的設(shè)計效率,縮短了開發(fā)周期,降低了設(shè)計成本,保證了設(shè)計的合理性和可靠性。