河北大学数字电路课程设计Word文档格式.docx
- 文档编号:20173973
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:19
- 大小:339.39KB
河北大学数字电路课程设计Word文档格式.docx
《河北大学数字电路课程设计Word文档格式.docx》由会员分享,可在线阅读,更多相关《河北大学数字电路课程设计Word文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
2.1各模块硬件电路说明................................3
2.1.1电源电路........................................42.1.2振荡电路与分频电路...............................42.1.3JTAG下载接口电路................................52.1.4显示电路........................................52.1.5CPLD电路........................................62.2各模块程序设计说明................................82.2.1程序总体设计框图.................................8
2.2.2总程序..........................................8
2.2.3七段译码器.......................................9
2.2.4位选端控制器....................................10
2.2.5六选一选择器...................................10
2.2.6十进制计数器....................................10
2.2.7六进制计数器...................................11
2.2.8二十四进制计数器...............................12
2.2.9小数点.........................................13
2.2.10二分频........................................13
2.2.11消抖..........................................13
三数字钟软件设计及原理说明.........................14
3.1CPLD内部模块划分................................14
3.2时间调节模块的设计及原理分析......................15
四总结.............................................16
参考文献............................................17
一总体设计方案
1.1总体设计要求
1、以数字形式显示时、分、秒的时间;
2、能够手动校时、校分;
3、时与分显示之间的小数点常亮;
4、分与秒显示之间的小数点以1Hz频率闪烁;
5、各单元模块设计采用VerilogHDL语言进行设计。
1.2设计总框图
1.2.1数字钟电路设计总框图
图1.2.1数字钟电路设计总框图
1.2.2数字钟程序设计总框图
图1.2.2数字钟程序设计总框图
二各模块说明
2.1各模块硬件电路说明
2.1.1电源电路
电源电路为整个数字钟提供能量,其主要由AMS1117-3.3、USB接口、直流电源、电容、电阻及红色发光二极管组成。
AMS1117-3.3为一个正向低压降稳压器,在1A电流作用下压降为1.2V,稳定电压输出为3V,具有稳定电压的功能。
J2处为USB接口,用于连接电路板与具有USB接口的设备。
LED2为红色发光二极管,作为电源的指示灯,接通电源时LED2会发红光。
图2.1.1电源电路
2.1.2振荡电路与分频电路
此数字钟设计采用CD4060分频器进行分频,CD4060由一振荡器和14级二进制串行计数器位组成,由于晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,因此它可以将32768Hz的信号逐步分频为2Hz,于是本设计中用到的频率512Hz、64Hz、2Hz都可以从中得到。
其中512Hz的时钟信号用来作为数码管显示时的时钟信号,64Hz的信号作为消抖电路的时钟信号,2Hz的信号经过二分频产生1Hz的信号作为计数脉冲。
图2.1.2振荡电路与分频电路
2.1.3JTAG下载接口电路
JTAG下载接口电路用于把由Quartus设计好的程序下载到CPLD器件中,其中LED1为绿色发光二极管,作为下载时的指示灯,下载时LED1灯亮,下载成功后,LED1灯灭。
图2.1.3JTAG下载接口电路
2.1.4显示电路
数码管共有六个,分别用于显示时分秒,由于计数器是以8421BCD码的形式累加计数的,因此要选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑,这样才能使七段译码管上能显示正常十进制数字。
电路中六个数码管下方分别有一个非门,它们是7407的组成部分,起到缓冲作用,能够输出更大电流的作用,更稳定的点亮数码管。
图2.1.4显示电路
2.1.5CPLD电路
CPLD为复杂可编程逻辑器件,我们用QuartusII软件设计的程序将生成相应的目标文件,通过下载电缆将代码传送到CPLD中,进而实现设计的数字系统。
CPLD控制着信号的输入、输出、转换及编制,是整个设计中的核心部件。
设计中要用到3个开关,其中K1产生复位清零信号Reset,K2为调时按键,K3为调分按键。
图2.1.5CPLD电路原理图
2.2各模块程序设计说明
2.2.1程序总体设计框图
图2.2.1总体框图
2.2.2总程序
moduleshuzizhong(reset,Hour_Add,Min_Add,F64Hz,F2Hz,F512Hz,dout2,pointw);
inputreset,Hour_Add,Min_Add,F64Hz,F2Hz,F512Hz;
output[6:
0]dout2;
output[5:
0]w;
outputpoint;
wireyu1,yu2,c1,c2,m,s,f,a1,a2;
wire[5:
0]d6;
wire[3:
0]b1,b2,b3,b4,b5,b6,dout1;
xiaodouu12(.clk(F64Hz),.key(Min_Add),.cout(yu1));
xiaodouu13(.clk(F64Hz),.key(Hour_Add),.cout(yu2));
orand3(m,c1,yu1);
orand4(s,c2,yu2);
fenpin2to1u1(.clkin(F2Hz),.clkout(f));
counter_6u2(.clk(F512Hz),.dout(d6));
counter10u3(.clk(f),.reset(reset),.cout(a1),.dout(b1));
counter6u4(.clk(a1),.reset(reset),.cout(c1),.dout(b2));
counter10u5(.clk(m),.reset(reset),.cout(a2),.dout(b3));
counter6u6(.clk(a2),.reset(reset),.cout(c2),.dout(b4));
counter24u7(.clk(s),.reset(reset),.dout1(b5),.dout2(b6));
select6to1u8(.sin(d6),.ain(b1),.bin(b2),.cin(b3),.din(b
4),.ein(b5),.fin(b6),.dout(dout1));
decoder7u9(.data_in(dout1),.data_out(dout2));
xiaoshupointu10(.f1hz(f),.d2(w[2]),.d4(w[4]),.out(point));
weixuanu11(.din(d6),.dout(w));
endmodule
2.2.3七段译码器
moduledecoder7(data_in,data_out);
input[3:
0]data_in;
output[7:
0]data_out;
reg[7:
always@(data_in)
begin
case(data_in)
4'
b0000:
data_out=8'
b00111111;
b0001:
b00000110;
b0010:
b01011011;
b0011:
b01001111;
b0100:
b01100110;
b0101:
b01101101;
b0110:
b01111101;
b0111:
b00000111;
b1000:
b01111111;
b1001:
b01101111;
default:
b00000000;
endcase
end
endmodule
2.2.4位选端控制器
moduleweixuan(din,dout);
input[2:
0]din;
0]dout;
reg[5:
always@(din)
case(din)
3'
d0:
dout<
=6'
b111110;
d1:
b111101;
d2:
b111011;
d3:
b110111;
d4:
b101111;
d5:
b011111;
2.2.5六选一选择器
moduleselect6to1(sin,ain,bin,cin,din,ein,fin,dout);
0]sin;
0]ain,bin,cin,din,ein,fin;
output[3:
reg[3:
always@(sin)
case(sin)
=ain;
=bin;
=cin;
=din;
=ein;
=fin;
2.2.6十进制计数器
modulecounter10(clk,reset,cout,dout);
inputclk,reset;
output[3:
0]dout;
outputcout;
reg[3:
regcout;
always@(posedgeclk,posedgereset)
if(reset)
=4'
b0;
cout<
=1'
else
if(dout<
9)
=dout+4'
b1;
2.2.7六进制计数器
modulecounter6(clk,reset,cout,dout);
output[2:
reg[2:
=3'
else
5)
modulecounter_6(clk,dout);
inputclk;
always@(posedgeclk)
=dout+3'
2.2.8二十四进制计数器
modulecounter24(clk,reset,dout1,dout2,cout);
0]dout1,dout2;
reg[7:
assigndout2=dout/10;
assigndout1=dout%10;
=8'
23)
=dout+8'
2.2.9小数点
modulexiaoshupoint(f1hz,d2,d4,out);
inputf1hz,d2,d4;
outputout;
wirec;
oru1(c,f1hz,d2);
nandu2(out,d4,c);
2.2.10二分频
modulefenpin2to1(clkin,clkout);
inputclkin;
outputclkout;
regclkout;
always@(posedgeclkin)
clkout<
=~clkout;
2.2.11消抖
modulexiaodou(clk,key,cout);
inputclk,key;
0]high,low;
regckey;
assigncout=ckey;
if(key==1'
b0)
low<
=low+1;
b1)
high<
=high+1;
if(high==4'
b1000)
ckey<
if(low==4'
ckey<
=ckey;
三数字钟软件设计及原理说明
3.1CPLD内部模块划分
根据硬件电路图所标注的CPLD的引脚及其所连接的输入输出,分析外界电路给CPLD以提供的信号以及这些信号通过CPLD模块后要输出的信号,CPLD的输入输出如下图所示:
图3-1-1CPLD引脚及输入输出分布
外界输入信号通过CPLD后输出七段码以及数码管显示控制信号,所以CPLD内部模块要分别实现时间调节功能,计时功能、数码管显示功能以及8421BCD码转化为七段码功能,因此CPLD内部模块划分如下:
图3-1-2CPLD功能及内部模块的划分
3.2时间调节模块的设计及原理分析
图3-2数字钟软件总体图
四总结
通过此次数字钟的设计和制作课程,我熟悉了电子焊接的技术和方法,锻炼了动手能力,也加深了对VerilogHDL语言的理解,也掌握了QuartusⅡ软件的基本使用方法,此外,我的几点感受和心得如下:
1、在整个制作过程中,尤其是焊接过程中,设计工作尤为重要。
有了清晰的制作思路和合理的规划,可以为制作和焊接节省大量的时间和精力,也可以避免不必要的失误和返工;
因此,在设计初期就应该多花时间进行论证,不能走一步看一步;
2、对于自己设计的程序和电路,应该有清醒和明确的逻辑认识,应该首先弄清各个模块的内部逻辑、功能和各个模块之间的联系,学会把握整体;
3、在学习和制作的过程中,应该学会与他人沟通和交流,互相检查错误,交换彼此的想法,开拓思路,共同进步。
参考文献
[1]张锁良.数字电子术技基础.北京:
北京邮电大学出版社,2011.8
[2]夏宇闻.Verilog数字系统设计教程.2版:
北京航空航天大学出版社,2008.6
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 河北大学 数字电路 课程设计