基于VHDL语言的简易洗衣机控制器_图文(精选2篇)
基于VHDL语言的简易洗衣机控制器_图文 篇1
堆栈法的优缺点 优点 不需另开存储单元 栈深度的影响 缺点 编写程序较复杂 址混在一起 四 2 子程序的参数传递方法 但在 因为数据和返回地 传递的参数仅受堆 多模块之间的参数传递 多模块可以使用前面介绍的参数传递方法 使用约定单元法时 还可以采用以下方法 定义同名的COMMON段 一般的外部变量引用 定义同名的PUBLIC段 1 多模块的符号定义 源程序中定义的符号可以分为局部符号和外部符号 局部符号 外部符号 在本模块定义 在某模块定义 又在本模块中引用的符号 又在另一模块中引用的符号 定义外部符号 PUBLIC 符号名[ 符号名] 引用另一模块中定义的外部符号 EXTRN 符号名 类型[ 符号名 类型] 有了这两个伪操作就提供了模块间相互访 问的可能性 而且它们的使用必须相匹配
例;source module 1 Extrn var2:word,lab2:far public var1,lab1 Data1 segment Var1 db ? Var3 dw ? Var4 dw ? Data1 ends Code1 segment Module1的程序代码 Code1 ends End start 包括标号lab1;source module 2 Extrn var1:byte,var4:word public var2 没有相应的 Data2 segment PUBLIC声明 Var2 dw 0 Var3 db 5 dup(? Data2 ends 局部变量重 Code2 segment 复定义 Module2的程序代码 Code2 ends End;source module 3 Extrn lab1:far public lab2, lab3 Code3 segment Module3的程序代码 Code3 ends End 不同模块中的局部符号可以重名 没有相应的 EXTRN引用 但是 外部符号不能重名 用EXTRN引用的外部符号 必须在另一模块声明为外部符号 2 多个模块之间的参数传递方法 可以使用前面所讲的参数传递方法 对于约定单元法 方法一 方法二 方法三 如何实现不同模块中参量的引用 定义同名的COMMON段 一般的外部变量引用 定义同名的PUBLIC段 参见书上的例子
一 子程序的过程定义伪操作 子程序名 PROC 子程序体 子程序名 ENDP 属性 二 子程序的调用和返回 CALL RET DST 三 子程序设计中要注意的问题(1 寄存器值的保存与恢复(2 保证堆栈平衡 四 1 子程序的参数传递方法 单模块参数传递 1 2 3 寄存器法 约定单元法 堆栈法 直接访问模块变量法 地址表法 2 多模块之间的参数传递 可使用上述三种方法 对应于约定单元法 又可采用以下方法 定义同名的COMMON段 一般的外部变量引用 定义同名的PUBLIC段
基于VHDL语言的简易洗衣机控制器_图文 篇2
注:在浸泡模式下,洗涤时间为(31+12)分钟,这是因为在浸泡模式下在正式开始洗衣前应先将衣物浸泡一段时间,3 1分钟为浸泡时间。
1 全自动洗衣机系统的功能
当打开洗衣机的电源时,将产生一个复位reset脉冲,使所有的寄存器的值设置在默认值,即洗衣机“标准工作模式”下的设置值。洗衣机处于“暂停”状态,此时可以通过按键“program_button”(程序),“xd_button”(洗涤),“px_button”(漂洗),“ts_button”(脱水),“water_level_button”(水位)改变工作模式、洗涤时间、漂洗总次数、脱水时间、水位寄存器的值。连续按下program_button键,将使洗衣机的工作模式在“浸泡”,“标准”,“强洗”,“弱洗”,“快洗”模式之间切换,其各个模式的默认设置如表1所示。连续按下xd_button键,洗涤时间将在“12分钟”,“9分钟”,“6分钟”,“0分钟”之间切换,连续按下px_button键,漂洗总次数将在“3次”,“2次”,“1次”,“0次”之间切换,而连续按下ts_button键将使脱水时间在“7分钟”,“5分钟”,“3分钟”,“0分钟”之间切换,连续按下water_level_button键将使水位在最低水位和最高水位之间,最低水位是由洗衣机内所放衣物的重量决定,洗衣机通过一个衣物重量传感器输出所需最低的水位,该输出仅在每次洗衣开始之前有效。在设置各寄存器值时,首先设置工作模式,因为在每种工作模式下,其它寄存器(除水位寄存器)都有默认的设置,所以应先确定工作模式,然后根据需要设置其它寄存器的值,或直接工作在默认设置下。
当洗衣机的工作模式和其它参数值设置好,关上洗衣机的盖子(否则start_stop_button键按下无效),可以按下“start_stop_button”(启动/暂停)按键,洗衣机从“暂停”状态转到“启动”状态下,即开始工作。洗衣机在工作时分“注水”,“洗衣”,“脱水”,“结束报警”四种状态。
当衣服洗好后,洗衣机自动将各设置恢复到默认状态,即各寄存器的值时洗衣机工作模式为“标准”状态的设置,且洗衣机此时处于“暂停”状态,等待下次洗衣。洗衣机在处于“暂停”状态时,若“暂停”状态不处于洗衣过程中,即刚启动电源或上次衣服已洗好时,控制器将给定时器赋一个“等待时间”的初值,当定时器在定时结束脉冲前若还没有“启动”洗衣机,洗衣机自动关闭电源开关,若在“等待时间”内启动洗衣机则定时器自动复位(表1)。
2 全自动洗衣机系统的设计
2.1 设计流程
根据全自动洗衣机的功能,设计如下的流程图(图1)。
由洗衣机的流程图所示,全自动洗衣机程序主要由三个模块组成,这三个模块分别是:key模块(按键模块),control模块(控制模块)和timer模块(定时模块)。为了方便,增加了一个注水模块。
*key模块:对洗衣机的按键进行处理,通过它可以设置洗衣机的各项工作参数,
如洗衣时间,脱水时间等。
*control模块:根据key模块的参数值控制洗衣机的工作流程。
*timer模块:实现定时功能。洗衣机的洗衣时间和脱水时间都是由定时器进行定
时的,定时器在定时结束后产生定时结束脉冲给控制模块。
*注水模块:该模块的作用是在“注水”状态时,产生一段定时,当定时时间到。
即注水满时产生一个注水结束脉冲给控制模块,然后进行状态转换。
在实际中这是由水位传感器产生的。
2.2 设计方法
全自动洗衣机系统的设计采用了自顶向下(top-down)的设计方法。先根据系统的功能要求,将系统分成3个主要的模块,然后在分别设计各个模块,而模块间通过参量进行通讯。在设计各模块时采用了V H D L硬件语言直接描述,因为原理图设计法擅长描述硬件的连接关系和I/O形式。所以在顶层设计过程中,使用原理图输入。采用原理图设计方法的一个好处就是直观,对系统各个模块之间的连接可以一目了然,同时也便于调用各底层模块。图2即为全自动洗衣机的顶层模块的原理图。
2.3 仿真验证
这里主要给出对顶层模块进行仿真验证的结果,之前已对各子模块分别进行仿真并通过验证。顶层模块的典型信号的时序图如图3所示,其中各个信号的含义如表2所示。
3 设计实现(硬件下载)
在max+plusII中,通过ByteBlaster对FLEX器件进行在线配置,当VHDL程序编译通过后便生成一个*.sof目标文件,在确定将ByteBlaste一端与微机的并口相连后,在max+plusII菜单中打开编程窗口选择programming命令,在弹出的菜单中点击configure按钮即可自动下载该文件。源程序经MAX+PLUS II软件调试优化,下载到EPF10K10TC144-3芯片中,观察到整个系统运行良好,实现了全自动洗衣机系统的功能,可应用于实际的全自动洗衣机系统设计中。
目前全自动洗衣机都采用单片机系统进行控制,本文系统采用ALTERA的EPF10K10TC144-3芯片,相对于单片机系统而言,其所占体积更小,功耗更低,速度更快等优点。
4 结语
通过以上对洗衣机系统的设计,可以看到应用E D A技术能大大减轻电路图设计和电路板设计的工作量和难度,减少硬件的体积,提高可靠性,并有效地增强了设计的灵活性。更重要的是它的ISP功能,它具有系统内可再编程的性能,使得系统内硬件的功能可以象软件一样编程来配置,从而可以实时地进行灵活和方便的更改和开发,为电路系统设计提供了新的思路和方法,VHDL硬件描述语言设计、逻辑综合和仿真等E D A技术已经成为数字设计的重要手段。
摘要:通过洗衣机系统的设计,详细介绍了如何使用硬件描述语言VHDL设计复杂逻辑电路的步骤和过程,以及应用美国ALTERA公司的MAX+PLUS Ⅱ软件进行系统设计及仿真的方法.通过设计,可以看到应用EDA技术进行系统设计、逻辑综合和模块仿真是数字系统设计的重要手段。
关键词:ASIC芯片,电子自动化设计,硬件描述语言,MAX+PLUSⅡ
参考文献
[1]Donald E.Thomas,Philip R.Moorby.硬件描述语言Verilog[M].北京:清华大学出版社,2001.125-156.
[2]Altera.Good Lab Illustration ofMAX+PLUSⅡ[M].Synopsys Inc.,1995.182-226.
[3]曾繁泰,陈美金.VHDL程序设计[M].北京:清华大学出版社.
[4]刘曦,皇晓辉.EDA中的数字系统实验[J].实验技术与管理,2004,21(5),89-93.
【基于VHDL语言的简易洗衣机控制器_图文】推荐阅读:
基于vhdl语言的数字钟09-13
基于任务的语言教学10-23
硬件描述语言VHDL09-10
VHDL语言EDA四人抢答器07-16
基于电价的控制09-10
基于PC的控制系统08-16
基于fpga的交通灯控制08-02
基于电话网的嵌入式远程控制器的设计06-08
基于单片机的交通灯控制系统09-07