<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于Proteus的液晶溫度顯示器仿真設(shè)計

          基于Proteus的液晶溫度顯示器仿真設(shè)計

          作者: 時間:2011-06-14 來源:網(wǎng)絡(luò) 收藏

          溫度傳感器采用美國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是電源地。現(xiàn)場溫度直接以“一線總線”的數(shù)字方式傳輸,可以提高系統(tǒng)的抗干擾性。DS18B20的電源供電方式有2種:外部供電方式和寄生電源方式。工作于寄生電源方式時,VDD和GND均接地,它在需要遠(yuǎn)程溫度檢測和空間受限的場合特別有用,但是需要強(qiáng)上拉電路,軟件控制變得復(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)中,單片機(jī)的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傳遞給單片機(jī)。當(dāng)單片機(jī)復(fù)位后,若SW1為ON,DS18B20檢測溫度信息,經(jīng)過單片機(jī)處理后送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所示。

          本文引用地址:http://www.ex-cimer.com/article/191168.htm

          c.jpg



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();