




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字电路与逻辑设计实验报告题目: 洗衣机控制器设计 一、洗衣机控制器要求设计制作一个全自动洗衣机的控制器:_ 洗衣机的工作步骤为洗衣、漂洗和脱水三个过程,工作时间分别为:洗衣20秒,漂洗30 秒,脱水15 秒;_ 用一个按键实现洗衣程序的手动选择:A、单洗涤;B、单漂洗;C、单脱水;D、漂洗和脱水;E、洗涤、漂洗和脱水全过程;_ 用显示器件显示洗衣机的工作状态(洗衣、漂洗和脱水),并倒计时显示每个状态的工作时间,全部过程结束后,应提示使用者;_ 用一个按键实现暂停洗衣和继续洗衣的控制,暂停后继续洗衣应回到暂停之前保留的状态;_ 选做:三个过程的时间有多个选项供使用者选择。_ 选做:可以预约洗衣
2、时间。_ 选做:自拟其它功能。二、系统设计基本思想电路由模式选择、计数器、报警模块以及译码驱动电路和数字显示电路等模块组成。1、模式选择模块五种洗衣模式可供用户选择,模式选择模块将用户的选择信息传递到控制模块。2、减计数计数器模块计数器洗衣以倒计时模块的方式提示用户当前剩余的洗衣时间,该计数器能读取不同的模值进行计数。计时单位为一秒钟。3、译码和数码显示电路译码和数码显示电路是将计时状态直观清晰地反映出来,被人们的视觉器官所接受。显示器件选用LED 七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。4、报警模块当系统运行到“报警”状态时,蜂鸣器将会报警,时间为5 秒。4、分频
3、器模块设计一个大小合适的分频器使得系统能够正确的实现一秒的计时。三、总体设计图以及转移图流程图示:状态选择开始信号输入变量A为1YESNO进行洗涤变量B为1YESNO进行漂洗变量C为1YES进行脱水NO完成洗衣后报警提示完成总体逻辑设计图:控制器分频器OSC时间计数器洗涤漂洗脱水译码时间显示ClkClk1料库Clk2T15 T20T25Cnt clr报警Pause 状态选择译码状态转移图示:WAITA1进行洗涤进行漂洗A0B=1B0B1进行脱水A0B=0C1C0完成洗衣报警提示管脚设计图:仿真情况:简要说明:本次仿真执行的是第五个状态即洗涤、漂洗和脱水全过程。通过此仿真可以发现当输出选择模式信
4、号change时,洗衣机模式开始发生变化。输入第一个change信号的时候进入单洗涤状态,输入第二个change信号进入单漂洗状态,输入第三个change信号进入了单脱水的状态,输入第四个change信号进入了脱水和漂洗的状态,当输入最后一个change信号的时候进入洗涤、漂洗和脱水的全状态。而在选择每个状态的同时时间信号(q0、q1、q2、q3、q4、q5、q6)也发生变化,显示出每个状态时的时间。而设定的led灯(cat0、cat1)则依次闪亮。当start开始后change信号不再起作用,而系统进入了运行状态,时间开始逐秒变化。当程序最终运行结束后,进入报警状态,sound开始显示为高电
5、平,而时间均为0。(特别说明:由于本实验分2次去做,管脚设定的时候进行了新建工程,代码粘贴过去的,实体名字取得和第二周验收时候不一致,不是其他原因。)四、代码示例LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY xiyiji ISPORT(START: INSTD_LOGIC;PAUSE: INSTD_LOGIC;-暂停信号CLOCK: INSTD_LOGIC;Q: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -数码管显示信号CAT: OUTSTD_LOGIC_VECTOR(5 DOWNTO 0) -数码管选通信号); EN
6、D xiyiji;ARCHITECTURE washer OF xiyiji ISSIGNAL STATE: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL MODE: STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL TEMP: INTEGER RANGE 45 DOWNTO 0; -时间中间变量SIGNAL TIME: INTEGER RANGE 60 DOWNTO 0; -倒计时时间SIGNAL TMP: INTEGER RANGE 999 DOWNTO 0; -分频变量SIGNAL MA: INTEGER RANGE 9 DOWNTO 0;
7、 -数码管译码变量SIGNAL CLK: STD_LOGIC; -分频时钟输出BEGINPROCESS(CLOCK)BEGINIF (CLOCK'EVENT AND CLOCK='1') THEN -分频模块TMP<=TMP + 1;IF (TMP=999) THENTMP<=0;CLK<= NOT CLK;END IF;END IF;END PROCESS;PROCESS (START,CLK,PAUSE,CHANGE)-洗衣控制进程BEGINIF ( START = '0' ) THEN -开始前模式选择模块IF(CHANGE
8、9;EVENT AND CHANGE='1') THENCASE MODE ISWHEN "000"=>MODE<="001" WHEN "001"=>MODE<="010" WHEN "010"=>MODE<="100"WHEN "100"=>MODE<="110"WHEN "110"=>MODE<="111"WHEN
9、OTHERS=>MODE<="000"END CASE;END IF;STATE <= MODE;-选择洗衣模式BUZZER <= '0'CASE STATE IS-设置模式时间以及中间变量的值WHEN "001" =>TEMP <= 0 ;TIME <= 20;WHEN "010" =>TEMP <= 0 ;TIME <= 25;WHEN "100" =>TEMP <= 0 ;TIME <= 15;WHEN "
10、110" =>TEMP <= 25 ;TIME <= 40;WHEN "111" =>TEMP <= 40 ; TIME <= 60;WHEN "000" =>TEMP <= 0 ;TIME <= 0;WHEN OTHERS =>TEMP<= 0 ; TIME<= 0;END CASE ;ELSE IF ( PAUSE = '0') THEN -设置暂停信号IF ( CLK'EVENT AND CLK = '1' AND TIME/=
11、0) THENTIME <= TIME - 1 ; -时间自减IF ( TIME=1 ) THENSTATE <="000"BUZZER<= '1'-蜂鸣信号启动ELSIF ( TIME = TEMP ) THEN -洗衣中模式的切换CASE STATE ISWHEN "111" =>STATE <= "110"TEMP <= 20;WHEN "110" =>STATE <= "100"TEMP <= 0;WHEN OTHER
12、S =>TEMP <= 0 ;STATE <= "000"END CASE;END IF;END IF;END IF;END IF;MODEEND <= STATE; -中间变量赋值给结果变量END PROCESS;PROCESS (CLOCK,TIME)BEGINIF (CLOCK='1') THEN -提取十位数CAT<="111110" -数码管选通END IF;END PROCESS;process (MA) -将数字译码为七段共阴数码管码begin case MA iswhen 1 => q
13、<= "0110000" ;when 2 => q <= "1101101" ;when 3 => q <= "1111001" ;when 4 => q <= "0110011" ;when 5 => q <= "1011011" ;when 6 => q <= "1011111" ;when 7 => q <= "1110000" ;when 8 => q <=
14、"1111111" ;when 9 => q <= "1111011" ;when others => q <= "1111110"end case;end process;end washer; -洗衣机控制器结束首先根据实验题目的要求可以将洗衣机控制器分解成为如下的几个模块:洗衣机模式选择、计数器、报警模块以及译码驱动电路和数字显示电路。1、模式选择模块:总共五种洗衣模式可供用户选择,模式选择模块将用户的选择信息传递到控制模块,这个模式选择模块将在洗衣机的开始按键start按下前进行模式选择。基本思路是每有
15、个脉冲模式改变一次,算上初始闲置模式共为六种其间进行循环改变,通过case语句在start为零时每接到change信号的一次改变,通过三位二进制数改变至下一状态。如此即可实现循环形式的模式选择模块。其简要代码如下:If(change'event and change='1') thencase mode iswhen "000"=>mode<="001" when "001"=>mode<="010" when "010"=>mode<
16、="100"when "100"=>mode<="110"when "110"=>mode<="111"when others=>mode<="000"end case;2、减计数计数器模块计数器洗衣以倒计时模块的方式提示用户当前剩余的洗衣时间,该计数器能读取不同的模值进行计数。计时单位为一秒钟。首先,由于需要数码管的显示,又要实现单位为一秒钟的倒计时所以必要对于系统时钟的分频器。主要过程是设计一个总的时间变量称之为TIME,每个时钟上升沿
17、一到就对此变量减一,如此首先在系统内部实现时间的自减。自减是在没有暂停信号且开始信号为一的情况下进行的。另外我设计了一个中间变量,在不同的状态对其进行不同的赋值,并使其与我设计的总时间变量进行比较,然后将比较结果送给模式的另一个中间变量即可实现洗衣过程中的状态变化显示。减计数器及其和中间量的比较的简要代码如下:if ( pause = '0') thenif ( clk'event and clk = '1' and time/=0) thentime <= time - 1 ;if ( time=1 ) then state <="
18、;000"buzzer<= '1' elsif ( time = temp ) then case state iswhen "111" =>state <= "110"temp <= 20;when "110" =>state <= "100"temp <= 0;when others =>temp <= 0 ;state <= "000"end case;3、 译码和数码显示电路:译码和数码显示电路是将计时
19、状态直观清晰地反映出来,被人们的视觉器官所接受。显示器件选用LED 七段数码管。在译码显示电路输出的驱动下,显示出清晰、直观的数字符号。首先,由于需要数码管的显示,又要实现单位为一秒钟的倒计时所以必要对于系统时钟的分频器。基于上个学期进行的基础数字电路vhdl学习,分频器是十分基础的模块易于设计。又因为需要通过两位数码管显示当前倒计时的时间,同时当前倒计时的时间是两位数所以利用倒计时时间TIME除以10可以得到时间的十位,再用其MOD十即可得到时间的个位,然后将要显示的数与七段数码管的七个管角相匹配,最后将这两个数分别赋给两个数码管并使两个数码管交替显示就实现了对于倒计时的译码电路,以下是译码
20、和数码显示电路的简要代码:if (clock='1') then ma<=time/10; cat<="111101"else ma<=time mod 10; cat<="111110"end if;process (ma)begincase ma is when 1 => q <= "0110000" ; when 2 => q <= "1101101" ; when 3 => q <= "1111001" ; wh
21、en 4 => q <= "0110011" ; when 5 => q <= "1011011" ; when 6 => q <= "1011111" ; when 7 => q <= "1110000" ; when 8 => q <= "1111111" ; when 9 => q <= "1111011" ; when others => q <= "1111110" end case;end process;4、报警模块:报警模块是洗衣机系统的最后一个模块,即任何一个洗衣状态执行完成后倒计时为零时,系统运行到“报警”状态,蜂鸣器将会报警,时间为5 秒。其设计相对比较简单,只是需要加入一个蜂鸣器信号BUZZER,并且使其再TIME倒计时总时间为零时,提供一个上升沿信号即可。五、器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四川华新现代职业学院《内部控制理论与实务》2023-2024学年第二学期期末试卷
- 华东师范大学《构成设计》2023-2024学年第二学期期末试卷
- 青岛港湾职业技术学院《辅助设计》2023-2024学年第二学期期末试卷
- 燕京理工学院《现代生物医药研究进展》2023-2024学年第二学期期末试卷
- 安徽新华学院《机器学习与混合现实》2023-2024学年第二学期期末试卷
- 广东江门中医药职业学院《电子信息领域工程伦理》2023-2024学年第二学期期末试卷
- 吉林工商学院《核技术应用发展与创新》2023-2024学年第二学期期末试卷
- 江西机电职业技术学院《主任工作技能》2023-2024学年第二学期期末试卷
- 辽宁税务高等专科学校《跆拳道健身理论与实践》2023-2024学年第二学期期末试卷
- 内蒙古赤峰历年中考作文题与审题指导(2007-2023)
- 2024年湖南衡阳八中直选生综合能力测试物理试题打印版
- 公司注销解除合同判决书
- 设备使用培训计划方案
- 江苏省南京市秦淮区2023-2024学年八年级下学期历史期末测试卷
- 2024年甘肃省中考语文试题卷(含答案)
- 劳动教育智慧树知到期末考试答案章节答案2024年同济大学
- 中医养生与亚健康防治 知到智慧树网课答案
- 2024年浙江省杭州市滨江区中考二模数学试题
- CR300BF型动车组网络设备及列车控制讲解
- 危重症患者的早期识别及处理
- 苏教版小学五年级数学下册第五单元《分数加法和减法》课件
评论
0/150
提交评论