FPGA课程设计-电风扇的自动定时开关控制器.doc

上传人:cn****1 文档编号:543898106 上传时间:2023-09-23 格式:DOC 页数:26 大小:1.31MB
返回 下载 相关 举报
FPGA课程设计-电风扇的自动定时开关控制器.doc_第1页
第1页 / 共26页
FPGA课程设计-电风扇的自动定时开关控制器.doc_第2页
第2页 / 共26页
FPGA课程设计-电风扇的自动定时开关控制器.doc_第3页
第3页 / 共26页
FPGA课程设计-电风扇的自动定时开关控制器.doc_第4页
第4页 / 共26页
FPGA课程设计-电风扇的自动定时开关控制器.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《FPGA课程设计-电风扇的自动定时开关控制器.doc》由会员分享,可在线阅读,更多相关《FPGA课程设计-电风扇的自动定时开关控制器.doc(26页珍藏版)》请在金锄头文库上搜索。

1、西安邮电学院FPGA课程设计报告题 目:电风扇的自动定时开关控制器 院 系: 电子工程学院 专业班级: 微电子0901 学生姓名: 导师姓名: 起止时间: 2012.6.18 至 2012.6.29 FPGA课程设计报告提纲1 任务运用FPGA用FPGA开发板的按键作为输入控制键,用数码管显示当前电风扇自动定时状态(包括:自动开/关,工作定时等)。2 目的运用verilog hdl描述设计,在开发板上实现要求。3 使用环境 (软件/硬件环境,设备等)Ep2c35f672c6开发板4 FPGA课程设计详细内容4.1 技术规范4.1.1 功能定义(1),根据用户需求,通过按键切换来实现风扇定时和普

2、通工作模式。(2) 普通工作模式时,由手动开关控制电风扇的开关,即当开关打开时,风扇工作; 开关关闭时,风扇停止工作。(3) 定时模式时,根据设定定时时间来选择电风扇工作时间,比如10 分钟、 20分钟、 30分钟等,并且同步显示剩余工作时间,但是此时用户仍可以通过开关控制提前关掉电扇。(4) LED 上显示当前工作状态:风扇工作亮,停止工作灭。数码管显示总的设定的时间(小时,分钟)和剩余工作时间。4.1.2 系统结构框图 分频模块自动定时倒计时模块模式选择控制模块显示模块ClkInoptkeyEnOnOut_HOut_LC_out总体设计可以分为以上几个模块,各模块的功能简要介绍:(1) 分

3、频模块:模块的功能是把 50MHz 的系统时钟转换为 1Hz 的时钟,和2Hz的时钟。1Hz的时钟供计数模块的使用。2Hz的时钟供输入定时数值的使用。(2)模式选择控制模块:选择需要的工作模式。包括两个模式:定时、普通。(3)自动定时倒计时模块:选择定时模式后,根据键盘的输入值来设定工作时间,在定时时间以内则风扇工作,倒计时结束或开关关闭时风扇自动关闭。 (4)显示模块:LED 上显示当前工作状态:风扇工作亮,停止工作灭。数码管显示总的设定的时间和剩余工作时间。4.1.3 应用范围 可以用于控制电扇手动控制电风扇工作或停止,也可以按照设定的时间自动工作或停止。4.1.4 引脚描述 顶层模块管脚

4、描述(1)输入开关管脚信号名称功能描述输入输出位宽Clk系统时钟,频率为50MHzinput1Op模式选择信号,为1时为定时模式;为0时为普通模式。input1In输入设定时间信号input4Key设定时间后开始计时信号Input1Clr清零信号input1Fz复制信号Input1En开始计时信号Input1(2) 输出显示管脚 信号名称功能描述输入输出位宽Out风扇工作信号,为1是风扇工作,为0时风扇停止工作Output1Out_3时间高位数码管输出端,为时钟的十位output7Out_2时间低位数码管输出端,为时钟的个位output7Out_1时间高位数码管输出端,为分钟的十位output

5、7Out_0时间高位数码管输出端,为分钟的十位output74.2 设计方案 4.2.1 概述 此自动定时控制器,可以实现定时模式和普通模式的切换,一共有六个模块。(1) 分频模块:模块的功能是把 50MHz 的系统时钟转换为 1Hz 的时钟,和2Hz的时钟。1Hz的时钟供计数模块的使用。2Hz的时钟供输入定时数值的使用。(2)模式选择控制模块:模式选择控制模块:选择需要的工作模式。包括两个模式:定时、普通。(3)自动定时倒计时模块:选择定时模式后,根据键盘的输入值来设定工作时间,在定时时间以内则风扇工作,倒计时结束或开关关闭时风扇自动关闭。 (4)显示模块:LED 上显示当前工作状态:风扇工

6、作亮,停止工作灭。数码管显示总的设定的时间和剩余工作时间。(5)信号处理模块:该模块的主要作用是在定时没有结束的时候用火仍可以通过开关来控制电扇的关闭。(6)数据输入模块:当赋值信号(fz)有效后可以通过键盘输入定时的时间,确定输入无误后按下启动键(en),风扇开始倒计时。4.2.2 顶层模块划分 (1)分频模块 这个模块的功能是把频率为50MHz的时钟转换为1Hz的时钟,供计时模块的使用。 引脚分配: 信号名称功能描述方向宽度 Clk输入50MHz的时钟信号input1Inclk输出经过分频以后的1Hz的时钟信号 output1Nclk输出经过分频后的2hz的时钟信号Output1电路设计:

7、(2)模式选择控制模块:选择需要的工作模式。包括两个模式:自动、手动,op为1时是定时模式,opl为0时是普通模式。若为定时模式风在设定的时间内自动工作,当计时结束时风扇自动停止工作,即计时反馈信号out为0时,风扇自动关闭。若选为手动模式,则在有手动开关key来控制风扇的开关,key为1时风扇工作,为0时停止工作。引脚分配 信号名称功能描述方向宽度op模式选择信号,为1时为自动开关模式;为0时为手动开关模式。input1key开关信号input1out风扇工作状态信号output1clk主时钟Input1Clr清零信号Input1A_1Op为1时a_1为1Output1A_0Op为0时a_0

8、为1Output1Key_1Key和a_0都为1时可key_1为1,否则为0。Output1电路设计(3)自动定时倒计时模块:选择定时模式后,根据键盘的输入值来设定工作时间,在定时时间以内则风扇工作,倒计时结束时风扇自动关闭。 管脚分配信号名称功能描述输入输出位宽Clk主时钟Input1nclk计时时钟,频率为1Hzinput1en开始倒计时信号input1H小时数据输入input8m分钟数据输入Input8Sign时间计数为零反馈信号output1电路设计(4)显示模块:LED 上显示当前工作状态:风扇工作亮,停止工作灭。数码管显示总的设定的时间和剩余工作时间。管脚分配信号名称功能描述输入输

9、出位宽Data_3时间高位输出端,为小时的十位input4Data_2时间低位输出端,为小时的个位input4Data_1时间高位输出端,为分钟的十位input4Data_0时间低位输出端,为分钟的个位input4Out_3时间高位数码管输出端,为小时的十位output7Out_2时间低位数码管输出端,为小时的个位output7Out_1时间高位数码管输出端,为分钟的十位Output7Out_0时间低位数码管输出端,为分钟的个位Output7Clk主时钟Input1clr清零信号Input1sign计时信号Input1电路设计(5)信号处理模块该模块主要是用来在定时还没有结束时,用户仍可以通过

10、开关关闭电扇。信号名称功能描述输入输出位宽Key电扇开关Input1Key_1电扇在普通模式下产生的工作信号Input1Sign倒计时信号Input1Out电扇工作信号Output1(6)数据输入模块该模块用于用户输入定时时间。信号名称功能描述输入输出位宽Clk2hz时钟,用于防抖Input1clr清零信号Input1Fz赋值信号Input1H_0小时低位输入端Input1H_1小时高位输入端Input1M_0分钟低位输入端Input1M_1分钟高位输入端Input1H小时输入数值Output8M分钟输入数值Output84.3 功能验证方案 4.3 功能验证方案可变模值计数器模块项目 信号名

11、 预期结果 实际结果 结果比较时钟输入 clk_50M 20ns 时钟信号 同左 复位检测 rst 初始化高电平,等待 同左 200ns 后变为低电平分频器脉冲进位 Clk rst 为低电平后,每 5 同左 个时钟脉冲(为测试 方便选用模 5 分频 器)后产生一个高脉 冲 秒 time_sec 当 clk 为高时,加 1, 同左 从 0 加到 60 分 time_min 当 time_sec 为高时, 同左 time_min .4.4 电路设计源代码,功能仿真激励源代码及功能仿真结果报告/顶层模块module fan(op,clr,clk,key,fz,en,h_1,h_0,m_1,m_0,o

12、ut,out_3,out_2,out_1,out_0,nclk); input op,clr,clk,key,fz,en; input h_1,h_0,m_1,m_0; output out,nclk; wire out,nclk; output 6:0 out_3,out_2,out_1,out_0; wire 7:0 h,m; wire b_m,b_h; wire 3:0 h_bcd_h,h_bcd_l,m_bcd_h,m_bcd_l; wire a_1,a_0; wire key_1; wire sign; wire inclk; display play(.fz(fz),.h_1(h_

13、1),.h_0(h_0),.m_1(m_1),.m_0(m_0),.clk(inclk),.clr(clr),.h(h),.m(m); fenpin fen(.inclk(inclk),.nclk(nclk),.clk(clk),.clr(clr); clock min(.a_1(a_1),.sign(sign),.sclk(nclk),.en(en),.data(m),.clk(clk),.b_m(b_m),.bcd_h(m_bcd_h),.bcd_l(m_bcd_l); hour ho(.sign(sign),.en(en),.a(b_m),.data(h),.clk(clk),.b_h(b_h),.bcd_h(h_bcd_h),.bcd_l(h_bcd_l); opt option(.op(op),.a_1(a_1)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号