电子日历表的课程设计
发布网友
发布时间:2022-05-24 08:01
我来回答
共2个回答
热心网友
时间:2023-10-09 02:41
用单片机应该不难.
热心网友
时间:2023-10-09 02:41
mole mmm(clk,qx,qr,qy,qn);
input clk;
output [7:0] qr,qy,qn;
output [3:0] qx;
reg [7:0] qr,qy,qn,data;
reg [3:0] qx;
reg clkn,clky;
//数据初始化
initial
begin
qn=8'b0;qy=8'b1;qr=8'b1;qx=4'b1;
end
//星期计数模块
always @(posedge clk)
begin
if(qx==4'b110)
qx=4'b1000;//周日显示“8”
else if(qx==4'b1000)
qx=4'b1;//一个循环
else qx=qx+2'b1;
end
//日计数模块
always @(posedge clk)
begin
clky=0;
if(qr==data)
begin
qr=8'b1;
clky=1;
end
else if(qr[3:0]==4'b1001)
begin
qr[7:4]=qr[7:4]+2'b1;
qr[3:0]=4'b0;
end
else qr=qr+2'b1;
end
//月计数器
always @(posedge clky)
begin
clkn=0;
if(qy==8'b10010)
begin
qy=8'b1;
clkn=1;
end
else if(qy[3:0]==4'b1001)
begin
qy[7:4]=4'b1;
qy[3:0]=4'b0;
end
else qy=qy+2'b1;
end
//data的产生
always
begin
case(qy)
8'b1:data=8'b110001;
8'b11:data=8'b110001;
8'b101:data=8'b110001;
8'b111:data=8'b110001;
8'b1000:data=8'b110001;
8'b10000:data=8'b110001;
8'b10010:data=8'b110001;
8'b100:data=8'b110000;
8'b110:data=8'b110000;
8'b1001:data=8'b110000;
8'b10001:data=8'b110000;
8'b10:data=8'b101000;
endcase
end
//年计数模块
always @(posedge clkn)
begin
if(qn==8'b10011001)
qn=8'b0;
else if(qn[3:0]==4'b1001)
begin
qn[7:4]=qn[7:4]+2'b1;
qn[3:0]=4'b0;
end
else qn=qn+2'b1;
end
endmole