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

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的多功能電子萬(wàn)年歷設(shè)計(jì)

          基于單片機(jī)的多功能電子萬(wàn)年歷設(shè)計(jì)

          作者: 時(shí)間:2012-11-06 來(lái)源:網(wǎng)絡(luò) 收藏

          表2 DS1302的日歷、時(shí)間寄存器

          圖5 DS18B20溫度采集

          顯示模塊的

          本次采用的是LED動(dòng)態(tài)顯示方式,由于PROTEUS內(nèi)沒有LED,故用LCD代替LED進(jìn)行仿真,與主控制芯片AT89C52相連。如圖6所示。

          系統(tǒng)的軟件

          圖6 LED動(dòng)態(tài)掃描顯示

          圖7 主程序流程圖

          主程序流程框圖

          Keil C與Proteus的聯(lián)調(diào)與測(cè)試結(jié)果

          Proteus7.6是目前最好的模擬外圍器件的工具,可以仿真51系列、AVR、PIC等常用的MCU及其外圍電路(如LCD,RAM,ROM,鍵盤,馬達(dá),LED,AD/DA,部分SPI器件,部分IIC器件等),使用Proteus7.6和Keil C可以像使用仿真器一樣調(diào)試程序。

          Proteus的工作過(guò)程

          運(yùn)行Proteus的ISIS程序后,進(jìn)入該仿真軟件的主界面如圖8所示。在工作前,要設(shè)置view菜單下的捕捉對(duì)齊和system下的顏色、圖形界面大小等項(xiàng)目。通過(guò)工具欄中的p(從庫(kù)中選擇元件命令)命令,在pick devices窗口中選擇電路所需的元件,放置元件并調(diào)整其相對(duì)位置、元件參數(shù)設(shè)置、元器件間連線、編寫程序;在source菜單的Define code generation tools菜單命令下,選擇程序編譯的工具、路徑、擴(kuò)展名等項(xiàng)目;在source菜單的Add/remove source files命令下,加入硬件電路的對(duì)應(yīng)程序;通過(guò)debug菜單的相應(yīng)命令仿真程序和電路的運(yùn)行情況。

          圖8 Proteus的啟動(dòng)界面

          Proteus軟件所提供的調(diào)試手段

          Proteus提供了比較豐富的測(cè)試信號(hào)用于電路的測(cè)試。這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。對(duì)于硬件電路和軟件的調(diào)試,Proteus提供了兩種方法:一種是系統(tǒng)總體執(zhí)行效果,一種是對(duì)軟件的分步調(diào)試以看具體的執(zhí)行情況。

          軟件和硬件結(jié)合的應(yīng)用系統(tǒng)

          軟件和硬件的結(jié)合,就是一個(gè)單片機(jī)的應(yīng)用系統(tǒng)了。在這一階段,硬件電路的設(shè)計(jì)已經(jīng)不是最為關(guān)鍵的了,而軟件系統(tǒng)的設(shè)計(jì)、調(diào)試和運(yùn)行才是實(shí)驗(yàn)的主要內(nèi)容。因此可以以建議性的意見給出具體的硬件電路,并提出該電路所需要完成的具體工作,進(jìn)行軟件的設(shè)計(jì)和調(diào)試。

          Keil C的介紹

          keil C的運(yùn)行界面

          運(yùn)行Keil C后的運(yùn)行界面如圖9所示。

          圖9 keil C的運(yùn)行界面

          Keil C與proteus聯(lián)調(diào)測(cè)試

          1、安裝keil與proteus7.6;

          2、打開proteus,畫出相應(yīng)電路。在proteus的tools菜單中選中use remote debug monitor;

          3、在keil中編寫MCU的程序;

          4、進(jìn)入keil的project菜單option for target '工程名'。在DEBUG選項(xiàng)中右欄上部的下拉菜選中Proteus VSM Monitor-51 Driver;

          5、在keil中進(jìn)行debug,同時(shí)在proteus中查看直觀的結(jié)果,LCD顯示;

          6、把keil里的文件編譯后輸出hex的文件,在proteus中把單片機(jī)的加載程序文件換成keil中的hex文件,然后運(yùn)行。

          運(yùn)行結(jié)果

          結(jié)果顯示

          由圖1整體電路框圖可知,LED顯示結(jié)果,如圖10所示。

          圖10 結(jié)果顯示

          調(diào)節(jié)顯示

          日期和時(shí)間的修改由4個(gè)按鍵構(gòu)成。鍵P0為調(diào)節(jié);P2^0,模式切換鍵(向左移)向左移;鍵P2^1,加法按鈕;鍵P2^2,減法按鈕;鍵P2^3,立刻跳出調(diào)整模式按鈕。

          按動(dòng)PO時(shí)秒閃爍進(jìn)入調(diào)節(jié)系統(tǒng),如圖11所示。

          按動(dòng)P2^0向左移,對(duì)分進(jìn)行調(diào)節(jié),如圖12所示。

          按動(dòng)P2^1向左移,對(duì)時(shí)進(jìn)行加調(diào)節(jié),如圖13所示。

          圖11 秒調(diào)節(jié)

          圖12 分調(diào)節(jié)

          圖13 時(shí)加調(diào)節(jié)

          圖14所示,是未調(diào)之前的顯示,按動(dòng)P2^2向左移,對(duì)年進(jìn)行減調(diào)節(jié),如圖15所示

          按動(dòng)P2^3向左移,退出調(diào)節(jié)恢復(fù)如圖16所示。

          圖14 未調(diào)之前顯示

          圖15 年減調(diào)節(jié)

          圖16 退出調(diào)節(jié)系統(tǒng)

          總結(jié)

          本文設(shè)計(jì)了一個(gè)。電路是由AT89S52單片機(jī)為控制核心,與時(shí)鐘芯片DS1302、溫度芯片DS18B20、按鍵、LED顯示等模塊組成硬件系統(tǒng)。在硬件系統(tǒng)中設(shè)有3個(gè)獨(dú)立按鍵,根據(jù)使用者的需要可以隨時(shí)對(duì)時(shí)間進(jìn)行校準(zhǔn)、選擇時(shí)間、溫度顯示等,綜上所述此具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、成本低廉等諸多優(yōu)點(diǎn),符合儀器儀表的發(fā)展趨勢(shì),具有廣闊的市場(chǎng)前景。

          單片機(jī)相關(guān)文章:單片機(jī)教程


          單片機(jī)相關(guān)文章:單片機(jī)視頻教程


          單片機(jī)相關(guān)文章:單片機(jī)工作原理


          塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
          晶振相關(guān)文章:晶振原理
          脈沖點(diǎn)火器相關(guān)文章:脈沖點(diǎn)火器原理
          上拉電阻相關(guān)文章:上拉電阻原理


          評(píng)論


          相關(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); })();