洗衣机控制器(FPGA)

设计要求及分工:
(1)设计一个电子定时器,控制洗衣机做如下运转:定时启动→正转25s→暂停5s→反转25s→暂停5s→如果时间未到,则回到“正转25s→暂停5s→……”,定时到则停止。
(2)若定时到,则停机发出音响信号
(3)用两个数码管显示洗涤的预置时间(分钟数),按倒计时方式对洗涤过程作计时显示,直到时间到停机;洗涤过程由“开始”信号开始。
(4)3 只 LED 灯表示“正转”、“反转”、“暂停”等3个状态。
附代码链接:https://download.csdn.net/download/BerylLe_/12511838
正文:
一、 设计目的和意义
随着时代的发展,洗衣机已成为人们日常生活中的必需品。目前全自动单桶、滚筒洗衣机已日渐盛行。从市场反馈情况发现,洗衣机的控制电路若采用传统机械式的转妞,其发生故障的概率极高。随着芯片制工艺的发展和成本的进一步降低,可编程门阵列以其具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点,在大规模数据计算、嵌入式处理、通信、家用电器智能控制等方面被广泛应用。为了改善家用洗衣机控制系统,本文充分利用FPGA的特点,用其作为洗衣机控制系统的核心,配置电路和控制逻辑的设计是该系统的重要组成部分,实现基于FPGA的洗衣机控制器。
二、 设计原理
洗衣机控制器的设计主要是时序控制和定时器的设计,由FPGA和外围电路构成电器控制部分。FPGA接收按键信息,控制启动洗衣机,使其在预定时间范围内按照“正转25s→暂停5s→反转25s→暂停5s……”工作;在定时时间为0时发出提示音响;控制并显示工作状态以及显示定时时间。对FPGA芯片的编程采用模块化的Verilog HDL(硬件描述语言)进行设计,设计由分频模块,消抖模块,中心控制模块、数码管显示及提示模块组成,顶层实现整个芯片的功能。顶层使用原理图实现,底层由Verilog HDL语言实现。
本设计基于Xilinx ARTIX-7实现,其输入时钟为100MHz,因此使用了分频模块输出1Hz的方波给定时器,每一秒进行自减,同时将剩余时间通过译码显示至数码管,同时进入中心控制模块控制洗衣机的正转、反转、暂停和提示工作状态。
分频计数原理分为偶数倍分频和奇数倍分频。偶数倍分频的实现非常简单,只需要一个计数器进行计数就能实现。如需要N分频器(N为偶数),就可以由待分频的时钟触发计数器进行计数,当计数器从0计数到N/2-1时,将输出时钟进行翻转,并给计数器一个复位信号,以使下一个时钟开始从零计数。以此循环,就可以实现偶数倍分频;奇数倍分频,对于50%奇数分频器的设计,用到的思维是错位半个时钟并相或运算。具体实现步骤如下:分别利用待分频时钟的上升沿与下降沿进行((N-1)/2)分频,最后将这两个时钟进行或运算即可。
数码管显示原理。8位发光二极管连接有两种结构:共阴极和共阳极。8段数码管字段码为8位,从高位到低位的顺序依次是dp、g、f、e、d、c、b、a。共阴极:八段发光二极管的阴极端连接在一起,阳极端分开控制,使用时候公共端接地,要使哪个发光二极管亮,则对应的阳极端接高电平;共阳极:八段发光二极管的阳极端连接在一起,阴极端分开控制,使用时候公共端接电源,要使哪个发光二极管亮,则对应的阴极端接低地。
数码管动态显示方式是将所有的数码管的段选线并接在一起,用一个IO接口控制,公共端并不是直接接地(共阴极)或者电源(共阳极),而是通过相应的IO接口控制。以共阳极为例假设4个数码管工作过程为:每个数码管的公共端与一根IO(2)相连,第一步使最右边一个数码管的公共端为1,其余数码管公共端为0,同时在IO(1)上 发送右边第一个数码管的字段码,这时候只有右边的第一个数码管显示,其余不显示;第二部使右边第二个数码管的公共端D1为1,其余的公共端为0,同时在IO(1)上发送右边第二个数码管的字段码,这时候,只有右边第二个数码管显示,其余不显示,以此类推,直到最后一个,这样子4个数码管轮流显示相应的信息,

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值