广工eda课程设计简易微波炉控制器.docx
- 文档编号:29497442
- 上传时间:2023-07-24
- 格式:DOCX
- 页数:8
- 大小:50.10KB
广工eda课程设计简易微波炉控制器.docx
《广工eda课程设计简易微波炉控制器.docx》由会员分享,可在线阅读,更多相关《广工eda课程设计简易微波炉控制器.docx(8页珍藏版)》请在冰豆网上搜索。
广工eda课程设计简易微波炉控制器
课程设计
课程名称硬件描述语言及EDA技术课程设计
题目名称简易微波炉控制器
学生学院材料及能源学院
专业班级
学号
学生姓名
指导教师陈先朝
2017年6月11日
设计内容及功能要求
简易微波炉:
设计一个简易微波炉控制器,要求能控制烹调的开关,并显示烹调状态进行结束。
同时,设置固定烹调时间,并显示烹调所剩时间(假设系统最长的烹调时间为9秒)。
设计思路
要设计一个简易微波炉
(1):
要求能控制烹调的开关
这里可以在模块里定义一个输入变量,然后在always过程块中通过if语句来实现微波炉的开关,同样的道理可以再定义一个变量用来启动烹调。
(2):
要求要显示烹调状态的进行及结束
这里可以通过控制一个LED灯的暗亮来实现,暗代表烹调结束,亮代表烹调进行,当烹调启动的时候LED等就会亮,当烹调结束或暂停的时LED灯就会暗。
(3):
要求设置固定的烹调时间,并显示烹调所剩时间
这里就要用到数码管,用数码管来显示时间,然后定义一个脉冲,通过九进制加数器来逐步加一来设置固定烹调时间,最后通过一个九进制减数器来显示烹调所剩时间。
Verilog源程序
moduleweibolu(open,add,start,clk_1,outa,out_led1);
outputreg[7:
0]outa;
outputreg[7:
0]out_led1;
inputopen,add,start,clk_1;
reg[3:
0]a,b;
always@(posedgeclk_1)
begin
if(a==4'b1010)a=4'b0000;
elseif(add&&!
start)a=a+1;
elseif(start&&a!
=0)begina=a-1;out_led1=8'b00000001;end
elseif(a==0||!
start)out_led1[0]=0;
end
always@(a)
begin
if(open)
begin
case(a)
4'b0000:
outa=8'b00111111;
4'b0001:
outa=8'b00000110;
4'b0010:
outa=8'b01011011;
4'b0011:
outa=8'b01001111;
4'b0100:
outa=8'b01100110;
4'b0101:
outa=8'b01101101;
4'b0110:
outa=8'b01111101;
4'b0111:
outa=8'b00000111;
4'b1000:
outa=8'b01111111;
4'b1001:
outa=8'b01101111;
default:
outa=8'b00000000;
endcase
end
elseouta=8'b00000000;
end
endmodule
程序分析
(1):
端口定义
moduleweibolu(open,add,start,clk_1,outa,out_led1);
outputreg[7:
0]outa;
outputreg[7:
0]out_led1;
inputopen,add,start,clk_1;
reg[3:
0]a,b;
这部分代码定义了6个端口,其中open、add、start、clk_1为输入端口,open用来控制微波炉的总开关,add用来逐一加数实现设置固定时间功能,start用来启动或暂停烹调,clk_1则作为加数器和减数器的时钟脉冲。
outa和out_led1为输出端,outa作为数码管的输入,用来显示时间,out_led1作为LED灯的输入,用来控制LED灯的亮暗。
a和b是自行定义的寄存器变量,用于存储数据。
(2):
加数器和减数数器的设计
always@(posedgeclk_1)
begin
if(a==4'b1010)a=4'b0000;
elseif(add&&!
start)a=a+1;
elseif(start&&a!
=0)begina=a-1;out_led1=8'b00000001;end
elseif(a==0||!
start)out_led1[0]=0;
end
这部分代码用来实现加数器和减数器:
1、当clk_1脉冲上升沿来临的时候,先判断a是否等于1010(10),如果满足则清0,实现九进制功能;
2、接着判断(add&&!
start)是否满足,满足则a+1,因为当按键add按下的时候为高电平,松开的时候为低电平,按钮start推上的时候为高电平,推下的时候为低电平,只有当烹调结束或暂停的时候才能通过按键add来进行设置固定时间,按一次计数器就+1,所以是(add&&!
start);
3、接着判断(start&&a!
=0)是否满足,满足则a-1和令out_led1=8’b00000001,因为当start推下的时候这位暂停状态,所以就停止倒计时,当a=0的时候即烹调结束,所以也停止倒计时,所以为(start&&a!
=0)。
同时这里的out_led1为8位二进制输出,每一位控制一盏LED灯,当为高电平时,LED灯才会亮,这里只需第一盏灯亮,所以第一位赋为1,其余7位赋为0。
4、最后当满足(a==0||!
start)时,out_led1的第一位赋为0,即当烹调结束后或当按钮start推下暂停时,LED灯灭,表示烹调结束或暂停状态。
(3):
数码管的显示
always@(a)
begin
if(open)
begin
case(a)
4'b0000:
outa=8'b00111111;
4'b0001:
outa=8'b00000110;
4'b0010:
outa=8'b01011011;
4'b0011:
outa=8'b01001111;
4'b0100:
outa=8'b01100110;
4'b0101:
outa=8'b01101101;
4'b0110:
outa=8'b01111101;
4'b0111:
outa=8'b00000111;
4'b1000:
outa=8'b01111111;
4'b1001:
outa=8'b01101111;
default:
outa=8'b00000000;
endcase
end
elseouta=8'b00000000;
end
endmodule
这部分代码用来实现数码管的显示,拿来显示烹调的时间。
1、通过判断(open)是否为真,即按钮open是否推上,如果是则数码管显示数字,否者则将outa赋为8’b00000000,即数码管不显示任何数字,从而实现了微波炉开和关的功能。
2、接着通过case语句,以a变量作为数码管译码器的输入,让数码管显示相应的数字。
编译及配置
代码写好后进行编译,编译成功无错误后为各个输入输出端口配置管脚如下图:
其中,clk_1分配在一个1kHz的时钟信号上,即每个一秒就有一个时钟上升沿,从而实现每秒倒计时;add分配在一个按键key1上,每按下一次都会产生一个电平信号1给加数器,从而实现计数器+1功能;open和start都分配在一个推动按钮sw1和sw2上,推上则会产生一个持续的高电平,从而实现开关微波炉和启动暂停烹调的功能;
outa的8位分配在相应的数码管管脚上,使数码管显示相应的数字;out_led1的8为分配在相应的LED灯上,控制LED灯的亮和灭,从而实现显示烹调状态的功能。
管脚配置完毕后再次编译,编译成功无错误后便在CPLD/FPGA实践系统上下载,进行硬件验证情况。
硬件验证及现象观察
管脚配置完毕后再次编译,编译成功无错误后在CPLD/FPGA实践系统上下载,进行硬件验证情况。
现象:
当按钮sw1推上,数码管开始显示数字0,然后每按下按键key1一次,数码管上的数字会加1,满9会重新变回0,加到需要的时间后,将按钮sw2推上,数码管上的数字则会开始进行倒计时,每秒减1,D1灯也会亮,若在倒计时过程中将按钮sw2推下,倒计时则会停止在当前的数字,D2灯也会随之而灭,把sw2再次推上,数码管从当前的数字继续进入倒计时,D1灯也重新亮了起来,当数码管上的数字减至0时,停止减数,数码管持续显示0,D1灯灭,此时把sw2按钮推下后则可继续通过按键key1来继续让数码管加1,然后重复以上的步骤即可重复现象。
。
参考文献
(1)自编指导书;
(2)Verilog及EDA相关教程:
a)王金明等编著,EDA技术及VerilogHDL设计,电子工业出版社,2013年;
b)艾明晶编著,EDA技术实验教程,清华大学出版社,2014年;
c)潘松等编著,EDA技术及VerilogHDL,清华大学出版社,2013年;
d)张春晶等编著,现代数字电子技术及Verilog设计,清华大学出版社,2014年;
e)刘靳等编著,Verilog程序设计及EDA,西安电子科技大学出版社,2012年;
f)刘福奇主编,VerilogHDL应用程序设计实例精讲,电子工业出版社,2012年;
g)周润景等主编,基于QuartusⅡ的数字系统VerilogHDL设计实例详解,电子工业出版社,2010年。
(3)相关的电子技术基础。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- eda 课程设计 简易 微波炉 控制器