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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 一種基于VHDL的洗衣機控制器設計

          一種基于VHDL的洗衣機控制器設計

          作者: 時間:2014-05-15 來源:網(wǎng)絡 收藏

          2.3 控制模塊設計

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

          控制模塊是洗衣機控制器的核心模塊,它根據(jù)按鍵選擇模塊輸入的各種控制信息和計時模塊輸入的計時信息控制洗衣4種狀態(tài)的轉(zhuǎn)換和電機轉(zhuǎn)速,并輸出當前洗衣狀態(tài)、電機轉(zhuǎn)速,以及剩余時間。

          洗衣四種狀態(tài)的轉(zhuǎn)換可以方便對由狀態(tài)機實現(xiàn)。狀態(tài)機是一種輸出由當前狀態(tài)和當前輸入決定的時序電路,它通??梢杂脿顟B(tài)轉(zhuǎn)換圖表示。使用設計狀態(tài)機不必知道電路的具體實現(xiàn)細節(jié),只需在邏輯上加以描述,因此采用狀態(tài)機實現(xiàn)控制模塊是一種非常方便的方法。

          狀態(tài)機的用實現(xiàn)有通用格式,它包含兩個個進程:狀態(tài)機狀態(tài)轉(zhuǎn)換進程Change_State和狀態(tài)機輸出進程Output_Process。其中狀態(tài)轉(zhuǎn)換進程由狀態(tài)轉(zhuǎn)換圖決定,洗衣機的狀態(tài)轉(zhuǎn)換圖如圖2所示,S0、S1、S2、S3、S4分別為進水、洗滌、漂洗、脫水以及結(jié)束狀態(tài),n0、n1、n2、n3分別表示由按鍵選擇模塊輸出的進水、洗滌、漂洗與脫水時間,num為計數(shù)模塊輸出的洗衣機運行時間,reset為洗衣機啟動信號。當洗衣機啟動時,即reset按鍵撥動,進入S0狀態(tài),開始進水;當洗衣機運行時間num=n0時,進水完成,狀態(tài)轉(zhuǎn)為S1,開始洗滌;當洗衣機運行時間num=n0+n1時,洗滌完成,狀態(tài)轉(zhuǎn)為S2,開始漂洗;當洗衣機運行時間num=n0+n1+n2時,漂洗完成,狀態(tài)轉(zhuǎn)為S3,開始脫水;當洗衣機運行時間num=n0+n1+n2+n3時,脫水完成,狀態(tài)轉(zhuǎn)為結(jié)束狀態(tài)S4,洗衣停止。

           

           

           

          狀態(tài)轉(zhuǎn)換進程的代碼如下:

           

           

          當reset=1時,啟動進程,當前狀態(tài)state置S0。每當掃描時鐘scan_clk為上升沿時,啟動進程,根據(jù)當前狀態(tài)state和洗衣機運行時間num,按照狀態(tài)轉(zhuǎn)換圖決定新的當前狀態(tài)。

          輸出進程通過輸出4種洗衣狀態(tài)信號控制4個LED燈當明滅來顯示當前洗衣狀態(tài)。輸出進程通過輸出進水信號控制進水。當洗衣為進水狀態(tài)時,若暫停信號為0,則輸出進水信號為1,開始進水;若暫停信號為1,輸出進水信號為0,暫停進水。而當洗衣為其他狀態(tài)時,輸出進水信號始終為0,停止進水。輸出進程通過輸出電機控制信號控制電機運行。根據(jù)洗滌電機的邏輯控制過程,當洗衣狀態(tài)為進水時,輸出電機控制信號為零電平,表示電機暫停;當洗衣狀態(tài)為洗滌和漂洗時,輸出電機控制信號為頻率為洗滌轉(zhuǎn)速(默認60轉(zhuǎn)/分鐘,即1Hz)的方波持續(xù)5秒(默認時輸出1 Hz的方波5個),然后高電平持續(xù)1秒(控制電機極性轉(zhuǎn)向);洗衣狀態(tài)為脫水時,輸出電機控制信號為頻率為脫水轉(zhuǎn)速(600轉(zhuǎn)/分鐘,即10 Hz)的方波持續(xù)5秒(默認狀態(tài)下,輸出10 Hz的方波50個),然后零電平持續(xù)1秒(控制電機暫停)。輸出進程根據(jù)當前狀態(tài)和洗衣機運行時間輸出當前狀態(tài)剩余時間到顯示模塊。例如,當洗衣為洗滌狀態(tài)時,輸出剩余時間為n0+n1-num。

          2.4 顯示模塊設計

          本模塊用于在7段數(shù)碼管上顯示當前狀態(tài)剩余時間,其輸入為控制模塊輸出的當前狀態(tài)剩余時間和掃描時鐘。首先,將輸入的剩余時間由秒轉(zhuǎn)換為分鐘(四舍五入);然后進行分位,分為個位ge和十位shi(顯然剩余時間不超過100分鐘,最多2位);最后通過動態(tài)掃描在2個共陰極的七段數(shù)碼上交替顯示個位數(shù)字和十位數(shù)字。當交替頻率高于28 Hz時,由于人眼的視覺殘留效果,這2位數(shù)字看上去是同時顯示在2個七段數(shù)碼管上。動態(tài)掃描進程的VHDL代碼如下:

           

           

          3 結(jié)束語

          我們在QuartusⅡ軟件開發(fā)平臺上,基于模塊化的設計思想,使用VHDL語言完成洗衣機控制器設計、編譯和仿真,并下載到硬件實驗箱上進行測試。仿真波形和測試結(jié)果表明該洗衣機能正確實現(xiàn)各種設計功能,該設計方案切實可行。


          上一頁 1 2 下一頁

          關鍵詞: FPGA VHDL

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();