ImageVerifierCode 换一换
格式:DOC , 页数:26 ,大小:1.31MB ,
资源ID:8669389      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8669389.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(FPGA课程设计-电风扇的自动定时开关控制器.doc)为本站上传会员【s4****5z】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

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

1、 西安邮电学院 FPGA课程设计报告 题 目:电风扇的自动定时开关控制器 院 系: 电子工程学院 专业班级: 微电子0901 学生姓名: 导师姓名: 起止时间: 2012.6.18 至 2012.6.29 FPGA课程设计报告提纲 1. 任务 运用FPGA 用FPGA开发板的按键作为输入控制键,用数码管显示当前电风

2、扇自动定时状态(包括:自动开/关,工作定时等)。 2. 目的 运用verilog hdl描述设计,在开发板上实现要求。 3. 使用环境 (软件/硬件环境,设备等) Ep2c35f672c6开发板 4. FPGA课程设计详细内容 4.1 技术规范 4.1.1 功能定义 (1),根据用户需求,通过按键切换来实现风扇定时和普通工作模式。 (2) 普通工作模式时,由手动开关控制电风扇的开关,即当开关打开时,风扇工作; 开关关闭时,风扇停止工作。 (3) 定时模式时,根据设定定时时间来选择电风扇工作时间,比如10 分钟、 20分钟、 30分钟等,并且同步显示剩余工作时间,但是此时用户

3、仍可以通过开关控制提前关掉电扇。 (4) LED 上显示当前工作状态:风扇工作亮,停止工作灭。数码管显示总的设定的时间(小时,分钟)和剩余工作时间。 4.1.2 系统结构框图 分频模块 自动定时倒计时模块 模式选择控制模块 显示模块 Clk In opt key En On Out_H Out_L C_out 总体设计可以分为以上几个模块,各模块的功能简要介绍: (1) 分频模块:模块的功能是把 50MHz 的系统时钟转换为 1Hz 的时钟,和2Hz的时钟。1Hz的时钟供计数模块的使用。2Hz的时钟供输入定时数值的使用。 (2)模式选择控制

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

5、1 Op 模式选择信号,为1时为定时模式;为0时为普通模式。 input 1 In 输入设定时间信号 input 4 Key 设定时间后开始计时信号 Input 1 Clr 清零信号 input 1 Fz 复制信号 Input 1 En 开始计时信号 Input 1 (2) 输出显示管脚 信号名称 功能描述 输入输出 位宽 Out 风扇工作信号,为1是风扇工作,为0时风扇停止工作 Output 1 Out_3 时间高位数码管输出端,为时钟的十位 output 7 Out_2 时间低位数码管输出端,为时钟的个位

6、 output 7 Out_1 时间高位数码管输出端,为分钟的十位 output 7 Out_0 时间高位数码管输出端,为分钟的十位 output 7 4.2 设计方案 4.2.1 概述 此自动定时控制器,可以实现定时模式和普通模式的切换,一共有六个模块。 (1) 分频模块:模块的功能是把 50MHz 的系统时钟转换为 1Hz 的时钟,和2Hz的时钟。1Hz的时钟供计数模块的使用。2Hz的时钟供输入定时数值的使用。 (2)模式选择控制模块:模式选择控制模块:选择需要的工作模式。包括两个模式:定时、普通。 (3)自动定时倒计时模块:选择定时模式后,根据

7、键盘的输入值来设定工作时间,在定时时间以内则风扇工作,倒计时结束或开关关闭时风扇自动关闭。 (4)显示模块:LED 上显示当前工作状态:风扇工作亮,停止工作 灭。数码管显示总的设定的时间和剩余工作时间。 (5)信号处理模块:该模块的主要作用是在定时没有结束的时候用火仍可以通过开关来控制电扇的关闭。 (6)数据输入模块:当赋值信号(fz)有效后可以通过键盘输入定时的时间,确定输入无误后按下启动键(en),风扇开始倒计时。 4.2.2 顶层模块划分 (1)分频模块 这个模块的功能是把频率为50MHz的时钟转换为1Hz的时钟,供计时模块的使用。

8、 引脚分配: 信号名称 功能描述 方向 宽度 Clk 输入50MHz的时钟信号 input 1 Inclk 输出经过分频以后的1Hz的时钟信号 output 1 Nclk 输出经过分频后的2hz的时钟信号 Output 1 电路设计: (2)模式选择控制模块:选择需要的工作模式。包括两个模式:自动、手动,op为1时是定时模式,opl为0时是普通模式。若为定时模式风在设定的时间内自动工作,当计时结束时风扇自动停止工作,即计时反馈信号out为0时,风扇自动关闭。若选为手动模式,则在有手动开关key来控制风扇的开关

9、key为1时风扇工作,为0时停止工作。 引脚分配 信号名称 功能描述 方向 宽度 op 模式选择信号,为1时为自动开关模式;为0时为手动开关模式。 input 1 key 开关信号 input 1 out 风扇工作状态信号 output 1 clk 主时钟 Input 1 Clr 清零信号 Input 1 A_1 Op为1时a_1为1 Output 1 A_0 Op为0时a_0为1 Output 1 Key_1 Key和a_0都为1时可key_1为1,否则为0。 Output 1 电路设计 (3)自动定

10、时倒计时模块:选择定时模式后,根据键盘的输入值来设定工作时间,在定时时间以内则风扇工作,倒计时结束时风扇自动关闭。 管脚分配 信号名称 功能描述 输入输出 位宽 Clk 主时钟 Input 1 nclk 计时时钟,频率为1Hz input 1 en 开始倒计时信号 input 1 H 小时数据输入 input 8 m 分钟数据输入 Input 8 Sign 时间计数为零反馈信号 output 1 电路设计 (4)显示模块:LED 上显示当前工作状态:风扇工作亮,停止工作灭。数码管显示总的设定的时间和剩余工作时间。

11、 管脚分配 信号名称 功能描述 输入输出 位宽 Data_3 时间高位输出端,为小时的十位 input 4 Data_2 时间低位输出端,为小时的个位 input 4 Data_1 时间高位输出端,为分钟的十位 input 4 Data_0 时间低位输出端,为分钟的个位 input 4 Out_3 时间高位数码管输出端,为小时的十位 output 7 Out_2 时间低位数码管输出端,为小时的个位 output 7 Out_1 时间高位数码管输出端,为分钟的十位 Output 7 Out_0 时间低位数码管输出端,为分

12、钟的个位 Output 7 Clk 主时钟 Input 1 clr 清零信号 Input 1 sign 计时信号 Input 1 电路设计 (5)信号处理模块 该模块主要是用来在定时还没有结束时,用户仍可以通过开关关闭电扇。 信号名称 功能描述 输入输出 位宽 Key 电扇开关 Input 1 Key_1 电扇在普通模式下产生的工作信号 Input 1 Sign 倒计时信号 Input 1 Out 电扇工作信号 Output 1 (6)数据输入模块 该模块用于用户输入定时时间。

13、 信号名称 功能描述 输入输出 位宽 Clk 2hz时钟,用于防抖 Input 1 clr 清零信号 Input 1 Fz 赋值信号 Input 1 H_0 小时低位输入端 Input 1 H_1 小时高位输入端 Input 1 M_0 分钟低位输入端 Input 1 M_1 分钟高位输入端 Input 1 H 小时输入数值 Output 8 M 分钟输入数值 Output 8 4.3 功能验证方案 4.3 功能验证方案可变模值计数器模块项目 信号名 预期结果

14、 实际结果 结果比较时钟输入 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_

15、1,h_0,m_1,m_0,out,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;

16、 wire a_1,a_0; wire key_1; wire sign; wire inclk; display play(.fz(fz),.h_1(h_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),

17、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),.a_0(a_0),.key(key),.clk(clk),.clr(clr),.key_1(key_1)); last la(.key(key),.key_1(key_1),.sign(

18、sign),.out(out)); sg sos(.b_m(b_m),.b_h(b_h),.clk(clk),.clr(clr),.sign(sign)); led_display l_play(.sign(out),.out_3(out_3),.out_2(out_2),.out_1(out_1),.out_0(out_0),.clk(clk),.clr(clr),.data_3(h_bcd_h),.data_2(h_bcd_l),.data_1(m_bcd_h),.data_0(m_bcd_l)); endmodule

19、 分频模块 module fenpin(clk,clr,nclk,inclk); input clk,clr; output nclk,inclk; reg nclk,inclk; reg [50:0] nadd,inadd; always @ (posedge clk) begin if(!clr) begin nclk=0; nadd=0; end els

20、e begin if(nadd==24999999) begin nclk=!nclk; nadd=0; end else nadd=nadd+1; end end always @ (posedge clk) begin if(

21、clr) begin inclk=0; inadd=0; end else begin if(inadd==12999999) begin inclk=!inclk; inadd=0; end else

22、 inadd=inadd+1; end end endmodule 倒计时模块 module hour(a,en,sign,data,clk,b_h,bcd_h,bcd_l); input a,clk,en,sign; input [7:0] data; wire [7:0] data; output b_h; reg b_h; output [3:0] bcd_h,bcd_l; reg [3:0] bcd_h,bcd

23、l; reg [7:0] count; reg e; always @ (posedge clk) begin if(!en) e=1; end always @ (posedge a or negedge en) if(!en) begin count=dat

24、a; b_h=0; end else begin if(a) begin if(count[3:0]==0) begin if(count[7:4]==0) begin b_h=1;

25、 end else begin count[7:4]=count[7:4]-1; count[3:0]=4'b1001; b_h=0; end

26、 end else begin count[3:0]=count[3:0]-1; b_h=0; end end end always @

27、 (posedge clk or posedge e) begin if(e) begin bcd_h=count[7:4]; bcd_l=count[3:0]; end end endmodule module clock(en,a_1,sign,data,sclk,clk,b_m,bcd_h,bcd_l)

28、 input en,sign,clk,sclk,a_1; input [7:0] data; wire [7:0] data; output b_m; reg b_m; output [3:0] bcd_h,bcd_l; reg [3:0] bcd_h,bcd_l; reg [7:0] count; wire as; reg e; assign as=e&sign&a_1; a

29、lways @ (posedge clk) begin if(!en) e=1; end always @ (posedge sclk or negedge en) if(!en) begin count=data; b_m=0; end else begin

30、 if(as) begin if(count[3:0]==0) begin if(count[7:4]==0) begin count[7:4]=4'b0101; count[3:0]=4'b1001;

31、 b_m=1; end else begin count[7:4]=count[7:4]-1; count[3:0]=4'b1001; b_m=0; end

32、 end else begin count[3:0]=count[3:0]-1; b_m=0; end end end

33、 always @ (posedge clk or posedge e) begin if(e) begin bcd_h=count[7:4]; bcd_l=count[3:0]; end end endmodule module sg(b_m,b_h,clk,sign,clr); input b_m,b_h,clk,clr;

34、 output sign; reg sign; always @ (posedge clk or negedge clr) begin if(!clr) begin sign=1; end else begin if(b_h) begin

35、 if(b_m) begin sign=0; end else begin sign=1; end end

36、 else begin sign=1; end end end endmodule 信号处理模块 module last(key,sign,key_1,out); input key,sign,key_1; output out; wire out; wir

37、e ks; assign ks=key&sign; assign out=ks|key_1; endmodule 数据输入模块 module display(h_1,h_0,m_1,m_0,fz,clk,clr,h,m); input h_1,h_0,m_1,m_0; input clk,clr,fz; output [7:0] h,m; reg [7:0] h,m; reg [3:0] add_m_0,add_

38、m_1,add_h_0,add_h_1; always @ (posedge clk or negedge clr) begin if(!clr) begin add_m_0=0; add_m_1=0; end else begin if(fz) b

39、egin if(!m_0) begin if(add_m_0==4'b1001) begin add_m_0=1'b0; end else

40、 begin add_m_0=add_m_0+1'b1; end end if(!m_1) begin if(add_m_1==4'b0101)

41、 begin add_m_1=1'b0; end else begin add_m_1=add_m_1+1'b1; end

42、 end end end end always @ (posedge clk or negedge clr) begin if(!clr) begin add_h_0=0; add_h_1=0; end else

43、begin if(fz) begin if(!h_0) begin if(add_h_0==4'b1001) begin add_h_0=0; end

44、 else begin add_h_0=add_h_0+1; end end if(!h_1) begin if(add_h_

45、1==4'b0101) begin add_h_1=0; end else begin add_h_1=add_h_1+1; end

46、 end end end end always @ (posedge clk or negedge clr) begin if(!clr) begin h=0; m=0; end else begin

47、 h={add_h_1,add_h_0}; m={add_m_1,add_m_0}; end end Endmodule 模式切换模块 module opt(op,a_1,a_0,key_1,key,clk,clr); input op,key,clk,clr; output a_1,a_0,key_1; reg a_1,a_0;

48、 assign key_1=key&a_0; always @ (posedge clk or negedge clr) begin if(!clr) begin a_0=0; a_1=0; end else begin if(op)

49、 begin a_1=1; a_0=0; end else begin a_0=1; a_1=0; end end end

50、 endmodule led数码管显示模块 module led_display(out_3,out_2,out_1,out_0,clk,clr,data_3,data_2,data_1,data_0,sign); input clk,clr,sign; input [3:0] data_3,data_2,data_1,data_0; output [6:0] out_3,out_2,out_1,out_0; wire [6:0] out_3,out_2,out_1,out_0; le

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服