九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

數(shù)字電路課程設計:基于FPGA和VHDL語言的洗衣機控制系統(tǒng)設計

上傳人:good****022 文檔編號:116503434 上傳時間:2022-07-05 格式:DOC 頁數(shù):16 大小:369.50KB
收藏 版權申訴 舉報 下載
數(shù)字電路課程設計:基于FPGA和VHDL語言的洗衣機控制系統(tǒng)設計_第1頁
第1頁 / 共16頁
數(shù)字電路課程設計:基于FPGA和VHDL語言的洗衣機控制系統(tǒng)設計_第2頁
第2頁 / 共16頁
數(shù)字電路課程設計:基于FPGA和VHDL語言的洗衣機控制系統(tǒng)設計_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《數(shù)字電路課程設計:基于FPGA和VHDL語言的洗衣機控制系統(tǒng)設計》由會員分享,可在線閱讀,更多相關《數(shù)字電路課程設計:基于FPGA和VHDL語言的洗衣機控制系統(tǒng)設計(16頁珍藏版)》請在裝配圖網上搜索。

1、 08電氣8班 吳俊 學號:20080711121數(shù)字電路課程設計題目:基于FPGA和VHDL語言的洗衣機控制系統(tǒng)設計 報告員:吳俊 20080711121 組員:彭亮,劉靖,鄭淑芳 日期:2010年12月 20日課題:洗衣機定時系統(tǒng)功能:1按內定標準洗滌時間洗滌,脫水時間脫水; 2有預約洗衣功能,如:你預約1小時,則系統(tǒng)會在1小時后自動進入洗滌狀態(tài); 3顯示屏上能實時顯示該機正處于何種狀態(tài)和該狀態(tài)下的時間; 4為該機設置了報警提示,及報警鈴聲控制時間; 5可以自己設定洗滌及脫水的時間; 6可以用于直接脫水; 7報警顯示;模塊分析:根據(jù)系統(tǒng)的設計要求,整個系統(tǒng)可分為鍵盤轉按鍵,洗衣機主控制器,

2、LCD三個模塊。各個模塊的作用如下: 1鍵盤轉按鍵:將板上鍵盤變?yōu)?6個按鍵,從左上到右下,按鍵按下時,對應輸出為1,松開為0 ,它用于洗衣機外端口的輸入; 2洗衣機主控制器:它是整個系統(tǒng)正常有序工作的核心,按設計要求產生相應的控制邏輯,以控制其他各部分的協(xié)調工作; 3LCD:在LCD上按格式顯示4組兩位數(shù)碼 D0D3 從左至右,它用于顯示功能中要顯示的信息;設計要求1.分析設計任務,擬定多種設計方案,根據(jù)當時的制作條件,選定適合的方案繪制框圖和設計流程。2.設計各部分單元電路或編寫VHDL描述程序。3.對制作的電路進行功能測試,分析各項技術指標;或對設計的電路進行功能仿真,分析仿真波形。4.

3、總結設計資料,但因包括原理電路、VHDL描述、仿真波形的設計報告,校驗并演示電路裝置。設計過程: 根據(jù)上述功能及要顯示的信息,我們分析得出10個狀態(tài),分別為s0(復位即等待命令,輸入),s1(輸入命令),s2(注水),s3(洗滌),s4(排水),s5(漂洗),s6(脫水),s7(報警響鈴計時),s8(預約計時),s9(結束,播放提示音計時)。相關模塊的程序:1主控系統(tǒng):LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity xiyiji is port (CPIN,R : IN STD_LO

4、GIC; bgxh:IN STD_LOGIC; X_add_time: IN STD_LOGIC; X_minus_time:IN STD_LOGIC; start_1 : IN STD_LOGIC; start_2 : IN STD_LOGIC; T_MINUS_TIME: IN STD_LOGIC; T_ADD_TIME : IN STD_LOGIC; yuy_z_TIME : IN STD_LOGIC; xl_out: OUT STD_LOGIC; cp1_out: OUT STD_LOGIC; light: OUT STD_LOGIC; xi_yi_out: OUT STD_LOGIC

5、_VECTOR(7 DOWNTO 0 ); liucsj_out: OUT STD_LOGIC_VECTOR(7 DOWNTO 0 ); zt_2_out: OUT STD_LOGIC_VECTOR(7 DOWNTO 0); zt_1_out: OUT STD_LOGIC_VECTOR(7 DOWNTO 0);end entity ;architecture JGT of xiyiji is TYPE STATES IS (S0,S1,S2,S3,S4,s5,s6,s7,s8,s9); SIGNAL s: STATES; SIGNAL xidi: STD_LOGIC_VECTOR(7 DOWN

6、TO 0) ; SIGNAL TUOSHUI: STD_LOGIC_VECTOR(7 DOWNTO 0) ; SIGNAL PIAOXI: STD_LOGIC_VECTOR(7 DOWNTO 0) ; SIGNAL zhushui: STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL PAISHUI:STD_LOGIC_VECTOR(7 DOWNTO 0); signal yuyue:std_logic_vector(7 downto 0); SIGNAL xlsj:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL xiyi:STD_LOGIC_V

7、ECTOR(7 DOWNTO 0); SIGNAL bgsj:STD_LOGIC_VECTOR(7 DOWNTO 0); signal zt1: std_logic_vector(7 downto 0); signal zt2: std_logic_vector(7 downto 0); signal liucsj: std_logic_vector(7 downto 0); SIGNAL xl: STD_LOGIC; SIGNAL cishu:integer range 0 to 5; signal cp:std_logic;beginPROCESS(CPIN,R)BEGINIF R=1 T

8、HEN S=S0; xidi=00000100;tuoshui=00000011;piaoxi=00000100;zhushui=00000011; PAISHUI=00000011;bgsj=00000010;xlsj=00000010; xl=0;cishu=2; yuyue=00000000; light=1; zt1=00010011; -輸入-s zt2=00010010; -rELSIF CPIN=1 AND CPINEVENT THEN if s=s0 or s=s1 then xiyi=00000000; else xiyiS if bgxh=1 then zt1=000000

9、10; -報警-b zt2=00001010; -j s= s7; elsif x_add_time=1then zt1=00011000; -洗滌加時-x zt2=00011010; -z xidi=xidi+1; if xidi=00011110 then xidi=00011110; end if; elsif x_minus_time=1then zt1=00011000; -洗滌減 -x zt2=00001010; -j xidi=xidi-1; if xidi=00000000 then xidi=00000000; end if; elsif T_add_time=1then z

10、t1=00010100; -脫水加 -t zt2=00011010; tuoshui=tuoshui+1; if tuoshui=00011001 then tuoshui=00011001; end if; elsif T_minus_time=1then zt1=00010100; -脫水減 zt2=00001010; tuoshui=tuoshui-1; if tuoshui=00000000 then tuoshui=00000000; end if; elsif yuy_z_time=1then zt1=00011001; -預約加 zt2=00011010; yuyue=yuyue

11、+1; if yuyue=00011001 then yuyue=00011001; end if; elsif start_1=1then if yuyue=00000000 then zt1=00011010;-注水 zt2=00010011; s=s2; Else zt1=00000100; -倒計時 zt2=00001010; s=s8; end if; elsif start_2=1then zt1=00010100; -脫水 zt2=00010011; s=s6;xidi=00000000;piaoxi=00000000;zhushui=00000000; PAISHUI if b

12、gxh=1 then zt1=00000010; -報警-b zt2=00001010; s=s7; else IF zhushui=00000001 THEN zt1=00011000;-洗滌 zt2=00000100; S=S3; zhushui=00000000; else zhushui if bgxh=1 then zt1=00000010; -報警-b zt2=00001010; s=s7; else IF xidi=00000001 THEN zt1=00010000;-排水 zt2=00010011; s=s4; xidi=00000000; else xidiif bgxh=

13、1 then zt1=00000010; -報警-b zt2=00001010; s=s7; else IF paishui=00000001 THEN zt1=00010000;-漂洗 zt2=00011000; s=s5; paishui=00000000; else paishui if bgxh=1 then zt1=00000010; -報警-b zt2=00001010; s=s7; elsIF piaoxi=00000001 THEN zt1=00010100; -脫水 zt2=00010011; s=s6; piaoxi=00000000; else piaoxi if bgx

14、h=1 then zt1=00000010; -報警-b zt2=00001010; s=s7; elsIF tuoshui=00000001 THEN zt1=00001010; -洗完 zt2=00010011; S=s9; tuoshui=00000000; else tuoshui if bgsj=00000000 then xl=0;s=s0; else bgsj=bgsj-1; xl if bgxh=1 then zt1=00000010; -報警-b zt2=00001010; s=s7; elsIF yuyue=00000001 then zt1=00011010;-注水 zt

15、2=00010011; yuyue=00000000; s=s2; else yuyue=yuyue-1; zt1=00000100; -倒計時 zt2 if cishu=0 then zt1=00010011; -輸入-s zt2=00010010; -r s=s1; elsif xlsj=00000000 then xlsj=00000001; xl=0;cishu=cishu-1; else xlsj=xlsj-1; xl s=s1; end case;end if;end process; process (xiyi,tuoshui,xl,zhushui,zt1,zt2,yuyue,x

16、idi,piaoxi,paishui,liucsj,CPIN) begin if x_add_time=1or x_minus_time=1then liucsj=xidi; elsif T_add_time=1 or T_minus_time=1then liucsj=tuoshui; elsif yuy_z_time=1then liucsj00000000then liucsj00000000 then liucsj00000000then liucsj00000000 then liucsj00000000then liucsj00000000 then liucsj= tuoshui

17、; elsif zhushui=00000000 and yuyue=00000000and xidi=00000000and paishui=00000000 and piaoxi=00000000 and tuoshui=00000000 then liucsj=00000000; end if; if xiyi 10 then xi_yi_out= xiyi; elsif xiyi20 then xi_yi_out=xiyi+6; elsif xiyi30 then xi_yi_out= xiyi+12; elsif xiyi40 then xi_yi_out=xiyi+18; elsi

18、f xiyi50 then xi_yi_out=xiyi+24; elsif xiyi60 then xi_yi_out=xiyi+30; elsif xiyi70 then xi_yi_out=xiyi+36; end if; if liucsj 10 then liucsj_out= liucsj; elsif liucsj20then liucsj_out =liucsj+6; elsif liucsj30 then liucsj_out =liucsj+12; elsif liucsj40 then liucsj_out = liucsj+18; elsif liucsj50 then

19、 liucsj_out = liucsj+24; elsif liucsj60 then liucsj_out = liucsj+30; elsif liucsj70 then liucsj_out = liucsj+36; end if; if xl=1 then xl_out=xl;cp1_out=CPIN; else xl_out=0;cp1_out=0; end if; zt_1_out=zt1; zt_2_out=zt2;end process ;end architecture jgt;-主控程序2鍵盤轉按鍵程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_11

20、64.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity PADTOKEY is port (CPIN,R :IN STD_LOGIC; Y: OUT STD_LOGIC_VECTOR(15 DOWNTO 0); ICOL : IN STD_LOGIC_VECTOR(3 DOWNTO 0); OROW : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END ENTITY;architecture JGT of PADTOKEY is TYPE STATES IS (S0,S1,S2,S3,S4); SIGNAL S: STATES;

21、 SIGNAL SROW : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CPCT : INTEGER RANGE 0 TO 255; SIGNAL CTDELAY: INTEGER RANGE 0 TO 511; SIGNAL CP:STD_LOGIC; BEGIN PROCESS(CPIN) BEGIN IF CPIN=1 AND CPIN EVENT THEN IF CPCT=255 THEN CPCT=0;CP= NOT CP; ELSE CPCT=CPCT+1; END IF; END IF; END PROCESS; PROCESS(CP,R) VAR

22、IABLE N:INTEGER RANGE 0 TO 12; BEGIN IF R=1 THEN S=S0;Y=0000000000000000;SROWSOROW=SROW;SSY(3 DOWNTO 0)Y(7 DOWNTO 4)Y(11 DOWNTO 8)Y(15 DOWNTO 12)NULL; END CASE; WHEN S3=IF N=12 THEN N:=0;S=S4;CTDELAY=0;SROW=1110; ELSE N:=N+4;S=S1;SROWIF CTDELAY=511 THEN S=S1;CTDELAY=0; ELSE CTDELAY=CTDELAY+1; END IF

23、; END CASE;END IF;END PROCESS;END JGT;3LCD模塊程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity GENLCD8 is port (CPIN,R,BUSY :IN STD_LOGIC; xlxh :IN STD_LOGIC; xy_sj,lc_sj,zhuangt_1,zhuangt_2 :IN STD_LOGIC_VECTOR(7 DOWNTO 0); CLK,RST,STROBE,OUTLINE : OUT STD_LOGIC; DAT

24、A : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); ADDR : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);end entity ;architecture JGT of GENLCD8 is TYPE STATES IS (S0,S1,S2,S3,S4); SIGNAL S: STATES; SIGNAL LCDPT : INTEGER RANGE 0 TO 20; SIGNAL CPCT: INTEGER RANGE 0 TO 65535; SIGNAL CP: STD_LOGIC; SIGNAL D3: STD_LOGIC_VECTOR(7

25、 DOWNTO 0);beginPROCESS(CPIN,R)BEGINCLK=CPIN;IF R=1 THEN CPCT=65535;ELSIF CPIN=1 AND CPIN EVENT THEN IF CPCT=0 THEN CPCT=65535;CP=NOT CP;-分頻為500US周期 ELSE CPCT=CPCT-1; END IF;END IF;END PROCESS;PROCESS(CP,R)-主進程:擬采用500us時鐘,即在500us后完成狀態(tài)轉換,修改LCDPT指針BEGINIF R=1 THEN -S0:初始狀態(tài),在R=1時,處于S0狀態(tài),LCDPT=0 S=S0;LC

26、DPT=0;RST S=S1;LCDPT=0;RST RST=0;STROBE=0;-輸出RST=0; IF BUSY=0 THEN-判斷BUSY=0? LCDPT=LCDPT+1;-:Y: LCDPT+1 IF LCDPT=7 THEN-LCDPT到固定最后? S=S3;-:Y: 轉S3 ELSe S S=S1;STROBE STROBE=0; IF BUSY=0 THEN-BUSY=0? IF LCDPT=14 THEN LCDPT=7; ELSe LCDPT=LCDPT+1; END IF; S STROBE=1;S NULL;- END CASE;END IF; END PROCESS

27、;PROCESS(LCDPT,xlxh)-選擇輸出進程(LCDPT)BEGINif xlxh=1 then D3=00010001; else D3 NULL;WHEN 1=DATA=00011000;ADDR=0010;OUTLINEDATA=00011001;ADDR=0001;OUTLINEDATA=00001100;ADDR=0110;OUTLINEDATA=00000011;ADDR=0101;OUTLINEDATA=00011010;ADDR=1010;OUTLINEDATA=00010100;ADDR=1001;OUTLINEDATA=0011&xy_sj(7 DOWNTO 4)

28、;ADDR=0011;OUTLINEDATA=0011&xy_sj(3 DOWNTO 0);ADDR=0010;OUTLINEDATA=0011&lc_sj(7 DOWNTO 4);ADDR=0110;OUTLINEDATA=0011&lc_sj(3 DOWNTO 0);ADDR=0101;OUTLINEDATA=zhuangt_1;ADDR=1010;OUTLINEDATA=zhuangt_2;ADDR=1001;OUTLINEDATA=0000&D3(7 DOWNTO 4);ADDR=1110;OUTLINEDATA=0000&D3(3 DOWNTO 0);ADDR=1101;OUTLIN

29、E NULL;END CASE;END PROCESS;ENDJGT;下板后具體模擬演示過程:-接通電源,按下復位鍵1,LCD上顯示如下: 報警狀態(tài)流程洗衣00ZTLCXY00SR0000-再按下5號鍵(x_add_time 代表洗衣時間在標準定值基礎上加一個單位時間,為實驗以觀察一個單位時間在這兒都是取值1個脈沖),則LC兩格下依次顯示05(表示洗衣時間在標準的基礎上加了一個單位時間);-再按下7號鍵(T_minus_time代表脫水時間在標準基礎上減一個單位時間),則LC兩格下依次03;-再按下6號鍵(yuy_z_time表示預約時間為一個單位時間),LC兩格下依次顯示01;-再按下3號鍵

30、(start_1表示開始進入洗衣狀態(tài));LC顯示預約時間倒計時01;ZT顯示DJ(倒計時);XY顯示18(整個洗衣過程的用時); 接著LCD上顯示的就是狀態(tài)之間的變化等.如下:ZTLCXY00ZSO31700XD051400PS030900PX030600TS030300JS020000RS0000當ZT顯示JS時表示洗衣結束,LC顯示的是結束提示音的時間,洗衣時間XY顯示為00;當提示音為00時狀態(tài)又轉到復位狀態(tài)即輸入(等待命令);與此操作類似的仿真圖如下:原理圖如下心得體會 在為期兩周的數(shù)字課程設計的時間里,我初步掌握了altium designer在硬件開發(fā)方面的應用,并且學會了用VHD

31、L語言進行簡單的硬件程序描述,不僅開拓了自己的視野而且讓自己的邏輯思維更加敏捷與嚴謹。大家都清楚這個課程設計中老師管得較為寬松,而且老師讓我們自己設計的主要就是主控程序這一塊,所以一開始我們小組都不待見它,感覺應該蠻容易就能完成了?;谶@一點我們小組的課題拖了很久才定下來。雖然當我來寫主控程序時感覺和C語言的有很多類似的地方,所以給我的錯覺是不是很難,可是當我去機房仿真時發(fā)現(xiàn)了一些邏輯上的問題,這時我發(fā)現(xiàn)它與C語言還是有區(qū)別的。還有就是LCD,它是很實際性的器件,我自己仿真成功了,可就是下板子老是出來了信息。后來才知道對于LCD只有單獨下板子成功了才能表示LCD程序無誤,看其仿真波形無法判斷的。當自己的作品順利顯示在FPGA開發(fā)板上的時候,才明白我們平時缺乏的是實踐能力,以至于在邏輯上還停留在理論上,唯有多加實踐,才能讓我們更加穩(wěn)固的掌握一門學科和技術。 16

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關資源

更多
正為您匹配相似的精品文檔
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對上載內容本身不做任何修改或編輯。若文檔所含內容侵犯了您的版權或隱私,請立即通知裝配圖網,我們立即給予刪除!