数电课程设计报告

发布 2022-10-04 03:36:28 阅读 7671

《基于fpga的洗衣机电机正反转控制器》

学院:信息与控制工程学院

专业:电子信息工程

班级: 姓名:

学号:2024年7月。

目录。1.设计任务与要求1

2.设计思路1

3.设计原理及方案2

4.总结与讨论14

一、设计任务及要求:

1.控制洗衣机的电机作如下周期性运转,正转4s――暂停2s――反转4s――暂停2s,用8位七段数码管显示自己学号的后四位(显示在从左边数第一个到第四个数码管上)、定时时间(两位,单位:分钟,显示在第五个和第六个数码管上),剩余时间(两位,单位:分钟,显示在第七个和第八个数码管上

2.洗衣机控制器的工作过程为:

1)上电后显示自己学号的后四位,在运行中不变;初始洗涤时间为10分钟,在开始前可用s1和s2按键设置总的工作时间,确定洗衣机控制器定时工作时间。(按下并松开s1定时时间增加一分钟,按下并松开s2定时时间减少一分钟,时间范围为:00~30分钟)

2)设定好定时时间后,按下并松开s3(按下时s3=0,松开时s3=1),启动控制器,整个系统开始运行;再次按下并松开s3,停止运行;再次按下并松开s3继续运行;按下并松开s4则回到上电初始状态。其他两个按键不起作用。到达定时时间后,停止运行,按下并松开s4则回到初始状态,在运行中要显示定时时间和剩余工作时间,当剩余时间为0时,要显示“end”。

在工作过程中用三个led指示灯指示电机工作状态,正转d1灯亮,反转d2灯亮,暂停d3灯亮,如此反复直至工作时间为0停止(三个led灯都不亮)。

系统总体框图如下:

二、设计思路。

为了便于计时,首先把1000hz的外部时钟分频为1hz。正转时间设为4s,反转设为4s,暂停设为2s,令洗衣机按照正转4s、暂停2s、反转4s、暂停2s的顺序进行旋转,周期恰好为10秒,而定时时间单位为分钟,因此需要设计分钟计数器和秒计数器。开发板提供的时钟信号cp频率为1000hz,应该设计一分频器得到1hz的时钟信号作为时间计数脉冲。

设计中七段数码管采用动态扫描的方式显示,扫描需要一个比较高频率的信号,本次设计选用1000hz。为了得到1000hz信号,必须对输入的时钟信号50mhz进行分频。显示模块共用10个管脚,其中7个用于连接8个数码管的七段led,还有3个管脚用于选择点亮哪个数码管,每隔很短的一段时间8个数码管交替点亮,依次循环,动态显示,由于人眼的视觉残留,可以观察到连续的测量计数器的计数值。

其原理框图如图所示:

本系统采用层次化、模块化的设计方法,设计顺序为自下向上。首先实现系统框图中的各子模块,然后由顶层模块调用各子模块(既可以采用原理图,也可以采用verilog hdl语言)来完成整个系统。

3、设计原理及方案。

1.洗衣机点击正反转控制器的设计由由分频模块,模八计数器模块,s1s2s3s4控制电路模块,32位信号产生模块,数据选择器模块,数码管显示模块组成。fpga接收命令,控制洗衣机的正转、反转、停机和定时时间为0时显示end的工作状态。

对fpga芯片的编程采用模块化的verilog hdl (硬件描述语言)进行设计。顶层使用原理图实现,底层由verilog hdl语句实现。

1)总体框图。

2)功能实现。

2.分频器50mhz到1khz

本模块实现对50mhz到1khz的分频,1khz的信号为模八计数器提供时钟信号。

1)源程序。

module lrfenpinqi50m(clk_50m,clk_1000);

input clk_50m;

output clk_1000;

reg clk_1000;

reg [15:0]cnt;

always@(posedge clk_50m)

beginif(cnt==16'd24999)

beginclk_1000<=~clk_1000;

cnt<=0;

endelse

cnt<=cnt+1;

endendmoduleendmodule

2)元器件。

3)功能**。

3.分频器1khz到1hz

本模块实现对1khz到1hz的分频,1khz的信号为s1s2s3s4控制电路提供时钟信号。

1)源程序。

module lrfenpinqi1000(clk_1000,clk_1);

input clk_1000;

output clk_1;

reg clk_1;

reg [15:0]cnt;

always@(posedge clk_1000)

beginif(cnt==16'd499)

beginclk_1<=~clk_1;

cnt<=0;

endelse

cnt<=cnt+1;

endendmodule

2)元器件。

3)功能**。

4.模八计数器。

本模块实现显示数码管的动态扫描。如果采用静态显示,则需要56根线实现,动态则只需要10根。其输出还作为数据选择器的sel端输入。

1)源程序。

module lrjishuqi(cp,q);

input cp;

output q;

reg [2:0]q;

always@(posedge cp)

beginif(q==3'd7)

q<=0;

else if(q==0||q>0)

q<=q+1;

endendmodule

2)元器件。

3)功能**。

控制电路。本模块实现时间加减,开始和复位的功能并且通过本模块来控制d1,d2,d3三个灯的循环产生,本模块还输出8位信号作为下一模块设置时间和剩余时间的输入。

1)源程序。

module s1s2s3s4(clk,s1,s2,s3,s4,m_settime,m_left,d1,d2,d3);

input clk;

input s1,s2,s3,s4;

output [4:0]m_left;

output [4:0]m_settime;

output d1,d2,d3;

reg [5:0]s_out;

reg [4:0]m_out;

reg [4:0]m_left;

reg [4:0]m_up;

reg [4:0]m_down;

reg [4:0]m_settime;

reg str;

reg d1,d2,d3;

reg [3:0]i;

reg stop;

always@(posedge clk or negedge s4)

begin

if(!s4)

begins_out<=0;

m_out<=0;

i<=0;

d1<=0;

d2<=0;

d3<=0;

stop<=0;

endelse if(m_left==0)

begini<=14;

d1<=0;

d2<=0;

d3<=0;

stop<=1;

endelse if(str&&!stop)

beginif(i<4&&i>=0)

begini<=i+1;

d1<=1;

d3<=0;

endif(i<6&&i>=4)

begini<=i+1;

d1<=0;

d3<=1;

endif(i<10&&i>=6)

begini<=i+1;

d3<=0;

d2<=1;

endif(i==10)

begini<=i+1;

d2<=0;

d3<=1;

endif(i==11)

i<=0;

if(i>12)

d1<=0;

if(s_out!=6'd59)

s_out<=s_out+1;

elsebegin

s_out<=0;

m_out<=m_out+1;

endend

endalways@(posedge s1 or negedge s4)

begin

if(!s4)

m_up<=0;

else if(!str)

m_up<=m_up+5'd1;

end always@(posedge s2 or negedge s4)

beginif(!s4)

m_down<=0;

else if(!str)

m_down<=m_down-5'd1;

endalways@(posedge s3 or negedge s4)

beginif(!s4)

str<=0;

else if(str==1)

str<=0;

else if(str==0)

str<=1;

endalways@( s1 or s2 or s4

beginm_settime<=5'd10+m_up+m_down;

endalways@(clk or s3 or s4)

beginm_left=m_settime-m_out;

endendmodule

2)元器件。

3)功能**。

5. 32位信号产生电路。

本模块长生32位信号实现显示学号和设置时间、剩余时间的功能。

1)源程序。

module xinhao32(settime,lefttime,s1,s2,s3,s4,s5,s6,s7,s8);

output [3:0]s1,s2,s3,s4,s5,s6,s7,s8;

数电课程设计报告

五邑大学。数字电路课程设计报告。题目 两位十进制计数显示器。院系信息工程学院 专业通信工程 学号 ap1005833 学生姓名张国辉 指导教师陈鹏。报告日期 2013年4月 两位十进制计数显示器。1.题目概述。计数器电路是一种随时钟输入cp的变化,其输出按一定的顺序变化的时序电路,其变化的特点不同可...

数电课程设计报告

熟悉各种元件及芯片的作用,并能将其运用到实际的电路中。2.熟悉面包板的用法,能够熟练的进行连线。3.通过此次的设计,加深对数电这门课的理解。4.提高解决实际问题的能力。二 设计任务和要求。测量范围为1 999nf。用三位led数码管显示测试结果。1.熟悉各种元件及芯片的作用,并能将其运用到实际的电路...

数电课程设计报告

滨江学院。电工电子综合实践设计报告。题目多模块综合实验报告 院系滨江学院自动控制系 专业电气工程与自动化 学生姓名。班级 10电气 学号。指导教师。二 一二年十二月一日。目录。一 设计内容及目的 1 1 1 设计内容 1 1 2 设计目的 1 二 综合设计实验的模块电路 1 2.1 三极管和光耦应用...