数字钟实验报告文档格式.docx
- 文档编号:17775098
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:16
- 大小:438.95KB
数字钟实验报告文档格式.docx
《数字钟实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《数字钟实验报告文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
output[3:
0]Q;
reg[3:
always@(posedgeCPornegedgenCR)
begin
if(~nCR)Q<
=4'
b0000;
elseif(~EN)Q<
=Q;
elseif(Q==4'
b0101)Q<
elseQ<
=Q+1'
b1;
end
endmodule
(2)仿真波形:
说明:
Q在每个CP上升沿变化;
在0到5之间循环,周期为6。
2.十进制计数器:
modulecounter10(Q,nCR,EN,CP);
inputCP,nCR,EN;
output[3:
b1001)Q<
在0到9之间循环,周期为10。
3.二十四进制计数器:
modulecounter24(CntH,CntL,nCR,EN,CP);
inputCP,nCR,EN;
output[3:
0]CntH,CntL;
reg[3:
regCO;
always@(posedgeCPornegedgenCR)
if(~nCR){CntH,CntL}<
=8'
h00;
elseif(~EN){CntH,CntL}<
={CntH,CntL};
elseif((CntH>
2)||(CntL>
9)||((CntH==2)&
&
(CntL>
=3)))
{CntH,CntL}<
elseif((CntH==2)&
(CntL<
3))
beginCntH<
=CntH;
CntL<
=CntL+1'
elseif(CntL==9)
beginCntH=CntH+1'
else
低位在每个CP上升沿变化在0到9之间循环,高位在低位为9后进位,在0到2之间循环,整个周期为24。
4.十二进制计数器
modulecounter12(CntH,CntL,nCR,EN,CP,M);
//M表示上午0下午1
output[3:
outputM;
regM;
always@(posedgeCPornegedgenCR)
begin
if(~nCR)begin{CntH,CntL}<
h01;
M=1'
b0;
end
1)||(CntL>
9)||((CntH==1)&
=2)))
begin{CntH,CntL}<
elseif((CntH==1)&
2))
beginCntH<
CntL<
elseif(CntL==9)
=CntH+1'
else
if({CntH,CntL}==8'
b00010001)M<
=~M;
(2)仿真波形
低位在每个CP上升沿变化在0到9之间循环,高位在低位为9后进位,在0到1之间循环,整个周期为12;
在11向12变化时,M在0、1间变化。
5.分频
modulefenpin(CPH,CPL);
//实现CPL是CPH频率的一半
inputCPH;
outputCPL;
regCPL;
always@(posedgeCPH)
CPL<
=(~CPL);
CPH每来一个周期,CPL翻转一次,结果其周期为CPH的两倍,实现分频效果。
6.任意时刻触摸报时:
moduleanytime(Out,K,CP,hour,CPH);
inputCP,CPH,K;
outputOut;
input[7:
0]hour;
reg[7:
0]count;
wireOut;
assignOut=(count<
=hour)&
CP&
CPH&
K;
always@(posedgeCPornegedgeK)
if(~K)count<
elseif(count<
=hour)
begin
if(count==8'
h09)count<
h10;
elsecount<
=count+1'
(2)仿真波形见整机仿真波形。
7.整机:
moduletop_clock(M,Hour,Minute,Second,BS,CP,CPH,nCR,EN,Adj_Min,Adj_Hour,Alarm_Min,Alarm_Hour,K);
//多功能数字钟,CPH为1024HZ,CP为1HZ
inputCP,CPH,nCR,EN,Adj_Min,Adj_Hour,Alarm_Min,Alarm_Hour,K;
output[7:
0]Hour,Minute,Second;
outputM,BS;
//M=0表示上午,M=1表示下午;
BS为扬声器
wire[7:
0]Hour,Hour1,Hour2,Minute,Minute1,Minute2,Second;
wireBS,out1,out2,out3,out4,out5,M,M1,M2;
supply1Vdd;
wireMin1L_EN,Min1H_EN,Hour1_EN,Min2L_EN,Min2H_EN,Hour2_EN;
counter10U1(Second[3:
0],nCR,EN,CP);
//秒的个位
counter6U2(Second[7:
4],nCR,(Second[3:
0]==4'
h9),CP);
//秒的十位
assignMin1L_EN=Adj_Min?
Vdd:
(Second==8'
h59);
//校分的低位
assignMin1H_EN=(Adj_Min&
(Minute1[3:
h9))||((Minute1[3:
h9)&
h59));
//校分的高位
counter10U3(Minute1[3:
0],nCR,Min1L_EN,CP);
//分的个位
counter6U4(Minute1[7:
4],nCR,Min1H_EN,CP);
//分的十位
assignHour1_EN=Adj_Hour?
((Minute1==8'
h59)&
//校时
counter12U5(Hour1[7:
4],Hour1[3:
0],nCR,Hour1_EN,CP,M1);
//小时
assignMin2L_EN=Alarm_Min?
(~Vdd);
//调闹铃分
assignMin2H_EN=Alarm_Min&
(Minute2[3:
h9);
//调闹铃分的个位
counter10U7(Minute2[3:
0],nCR,Min2L_EN,CP);
//调闹铃分的十位
counter6U8(Minute2[7:
4],nCR,Min2H_EN,CP);
assignHour2_EN=Alarm_Hour?
//调闹铃小时
counter12U9(Hour2[7:
4],Hour2[3:
0],nCR,Hour2_EN,CP,M2);
fenpinU11(CPH,CPL);
//由1024HZ的CPH得到512HZ的CPL
assignout1=CPH&
(Hour1==Hour2)&
(Minute1==Minute2)&
(M1=M2);
//闹铃
assignout2=CPL&
((Second==8'
h51)||(Second==8'
h53)||(Second==8'
h55)||(Second==8'
h57)));
//四声仿广播低音
assignout3=CPH&
//仿广播高音
assignout4=(Minute==8'
h00)&
(Second<
Hour)&
CPL;
//整点报时,几点响几下
anytimeU12(out5,K,CP,Hour,CPH);
//任意时刻触摸报整点时刻,几点响几下
assignBS=out1||out2||out3||out4||out5;
assignMinute=Alarm_Min?
Minute2:
Minute1;
//按下Alarm_Min数码管显示闹铃分否则显示时间分
assignHour=Alarm_Hour?
Hour2:
Hour1;
//按下Alarm_Hour数码管显示闹铃时否则显示时间时
assignM=Alarm_Hour?
M1:
M2;
//按下Alarm_Hour数码管显示闹铃上下午否则显示时间的上下午
开始时闹铃默认为01:
00,闹铃时间为一分钟。
Adj_Min=1时,Minute不断变化,当恰变为01:
00时,闹铃响。
Adj_Hour=1时,Hour不断变化。
K=1时,报当前整点时刻,图中12点响了12下。
在59分51、53、55、57秒有四声低音,59秒时又一声高音,为仿广播报时;
当整时,每秒有一声低音,几点响几下,为整点报时。
图中有一段Adj_Hour、Adj_Min为1,由上图知,闹铃定在了上午04:
08,
则04:
08时有一分钟闹铃。
五、实验总结:
通过本次实验,掌握了VerilogHDL程序的基本结构,学会了用EDA技术和可编程逻辑器件实现数字系统,包括设计输入、编译、仿真和器件编程;
熟悉了MAX+PLUSII软件的使用,掌握了可编程逻辑器件的开发过程,以及系统编程技术;
掌握了分层次分模块的设计方法;
对数字电路有了更进一步的认识。
附加课题:
汽车尾灯控制电路设计
1.源代码
moduleqicheweideng(CP,Stop,Back,Left,Right,L,F);
//Stop代表刹车1,Back代表倒车6,Right代表右转弯2,Left代表左转弯3,Back+Left代表左转弯刹车4,Back+Rightt代表右转弯刹车5,正常行驶0,数字由数码管F显示
inputCP,Stop,Back,Left,Right;
output[5:
0]L;
0]F;
0]F,S1,S2,S3;
reg[5:
0]L,LED1,LED2,LED3;
driveU1(CP,Stop,Back,LED1,S1);
//实现正常行驶、倒车和刹车功能
LRU2(CP,Left,Right,LED2,S2);
//实现左右转弯
LRSU3(CP,Left,Right,LED3,S3);
//实现左右转弯刹车
always@
(1)
if((Right||Left)&
~Stop)beginL<
=LED2;
F<
=S2;
elseif((Right||Left)&
Stop)beginL<
=LED3;
=S3;
elsebeginL<
=LED1;
=S1;
moduledrive(CP,STOP,BACK,LED,S);
inputCP,STOP,BACK;
0]LED;
0]S;
always@(CP)
if(STOP)beginLED<
=6'
b111111;
S<
h1;
elseif(BACK)begin
LED[0]<
=CP;
LED[1]<
LED[2]<
LED[3]<
LED[4]<
LED[5]<
S<
h6;
elsebeginLED<
d0;
h0;
moduleLR(CP,Left,Right,LED,S);
inputCP,Right,Left;
reg[1:
wire[5:
assignLED[0]=Left&
~count[0]&
count[1]&
CP;
assignLED[1]=Left&
count[0]&
~count[1]&
assignLED[2]=Left&
assignLED[3]=Right&
assignLED[4]=Right&
assignLED[5]=Right&
always@(posedgeCP)
if(count==2'
b10)count<
=2'
b00;
=count+2'
b01;
if(Right)S=4'
h2;
elseif(Left)S=4'
h3;
moduleLRS(CP,Left,Right,LED,S);
if(Left)
beginS<
h5;
=~count[0]&
=count[0]&
=1'
elseif(Right)
h4;
由波形知该程序实现了所有要求的功能。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 实验 报告