名称:基于FPGA的电风扇控制器Verilog代码Quartus仿真
软件:Quartus
语言:Verilog
代码功能:
电风扇控制器
设计任务及要求
运用 EDA SOPO实验开发系统设计一个基于FPGA的电风扇定时开关控制器,能实现手动和自动模式之间的切换。要求:
(1)K1为电源开关
由电源开关控制电风扇的开关,即当K1为高电平“1”时,风扇工作:K1为低电平“0”时,风扇停止工作。
(2)K2为模式选择开关
用户可以选择工作模式,由模式切换开关实现手动或自动模式。K2为“0”时手动工作,K2为“1”时自动工作。
(3)K3为时间选择开关
自动模式时,由开关选择自动工作时间,K3为“0”时,工作时间为20分钟;K3为“1”时,工作时间为30分钟:工作时间结束时,风扇自动关闭;手动模式时开关无效。
(4)K4为风扇摇头选择开关
K4为“0”时,风扇不摇头,K4为“1”时,风扇摇头。
(5)四个数码管
在手动工作时,四个数码管显示“9999”,在自动工作时,左边两位显示总时间右边两位显示剩余时间。
(6)发光二极管D1,D2
D1表示电风扇,电风扇工作时,输高电平,二极管亮,电风扇不工作时,输出低电平,二极管不亮;D2是电风扇摇头指一灯,摇头时点亮。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
演示视频:
设计文档:
1. 工程文件
2. 程序文件
3. 程序编译
4. 管脚分配
5. RTL图
6. 仿真图
整体仿真图
分频器仿真图
电风扇控制器仿真图
译码器仿真图
部分代码展示:
//顶层模块 module?fan( input?CP,//1000Hz时钟 input?K1,//K1为电源开关,1时工作 input?K2,//K2为模式开关,0时手动,1时自动 input?K3,//K3为时间选择开关,0时20分钟,1时30分钟 input?K4,//K4为摇头选择开关,1时摇头,0不摇头 output?[7:0]?DS1,DS2,DS3,DS4,//数码管手动显示9999,自动时左显示总时间,右显示剩余时间 output?D1,//工作指示LED output?D2//摇头指示LED ); wire?clk_en; wire?[15:0]?dis_bus;//数据 //分频器 fenpin?U_fenpin( .?CP(CP),//1000Hz .?clk_en(clk_en)//高电平脉冲1Hz ); //电风扇控制器 fan_ctrl?U_fan_ctrl( .?CP(CP),//1000Hz .?clk_en(clk_en),//高电平脉冲1Hz .?K1(K1),//K1为电源开关,1时工作 .?K2(K2),//K2为模式开关,0时手动,1时自动 .?K3(K3),//K3为时间选择开关,0时20分钟,1时30分钟 .?K4(K4),//K4为摇头选择开关,1时摇头,0不摇头 .?D1(D1),//工作指示LED .?D2(D2),//摇头指示LED .?dis_bus(dis_bus)//数码管值,手动显示9999,自动时左显示总时间,右显示剩余时间 ); //译码器 decode?U_decode( .?dis_bus(dis_bus),//数码管值 .?DS1(DS1),//数码管1 .?DS2(DS2),//数码管2 .?DS3(DS3),//数码管3 .?DS4(DS4)////数码管4 ); endmodule
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=727
304