河北大学数字电路课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电路课程设计
题目:利用CPLD 设计可调时数字钟
学 院 电子信息工程学院
专 业 电气工程及其自动化
学 号 **********
姓 名 韩思聪
教 师 刘 鑫
2014年 6 月23日
装
订
线
基于CPLD数字钟设计
摘要
数字钟作为人们日常生活中常用的计时工具,被广泛应用于家庭,学校,办公室等多个场所,为人们的学习,生活和工作带来了极大的方便。由于数字集成电路的发展和先进石英技术的采用,时候数字钟具有走时准确,性能稳定的的特点。数字钟主要由电源电路,振荡与分频电路,JTAG下载接口电路,显示电路以及CPLD电路组成。采用中小规模集成芯片进行硬件的焊接。
数字中的实现可以有多种方法,各有特点,本次数字钟采用QuartusⅡ软件结合Verilog HDL语言编程实现,具有计时、清零和时、分位校准功能,可分为分频模块,时钟产生模块和数码管显示模块。在QuartusⅡ软件中输入目标程序,进行仿真无误后,下载到电路板上实现数字种计数功能
关键词:数字钟振荡器 CPLD QuartusⅡ
目录
一总体设计要求 (2)
1.1总体设计要求 (2)
1.2设计总框图 (2)
1.2.1数字钟电路设计总框图 (2)
1.2.2数字钟程序设计总框图 (3)
二各模块说明 (3)
2.1 各模块硬件电路说明 (3)
2.1.1 电源电路 (4)
2.1.2振荡电路与分频电路 (4)
2.1.3 JTAG下载接口电路 (5)
2.1.4 显示电路 (5)
2.1.5 CPLD电路 (6)
2.2 各模块程序设计说明 (8)
2.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.1 CPLD内部模块划分 (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.3 JTAG下载接口电路
JTAG下载接口电路用于把由Quartus设计好的程序下载到CPLD器件中,其中LED1为绿色发光二极管,作为下载时的指示灯,下载时LED1灯亮,下载成功后,LED1灯灭。
图2.1.3 JTAG下载接口电路
2.1.4 显示电路
数码管共有六个,分别用于显示时分秒,由于计数器是以8421BCD码的形式累加计数的,因此要选用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑,这样才能使七段译码管上能显示正常十进制数字。电路中六个数码管下方分别有一个非门,它们是7407的组成部分,起到缓冲作用,能够输出更大电流的作用,更稳定的点亮数码管。
2.1.5 CPLD电路
CPLD为复杂可编程逻辑器件,我们用Quartus II软件设计的程序将生成相应的目标文件,通过下载电缆将代码传送到CPLD中,进而实现设计的数字系统。CPLD控制着信号的输入、输出、转换及编制,是整个设计中的核心部件。
设计中要用到3个开关,其中K1产生复位清零信号Reset,K2为调时按键,K3为调分按键。
图2.1.5 CPLD电路原理图2.2 各模块程序设计说明
2.2.1程序总体设计框图
图2.2.1 总体框图
2.2.2 总程序
module shuzizhong(reset,Hour_Add,Min_Add,F64Hz,F2Hz,F512Hz,dout2, point w);
input reset,Hour_Add,Min_Add,F64Hz,F2Hz,F512Hz;
output [6:0]dout2;
output [5:0]w;
output point;
wire yu1,yu2,c1,c2,m,s,f,a1,a2;
wire [5:0]d6;
wire [3:0]b1,b2,b3,b4,b5,b6,dout1;
xiaodou u12(.clk(F64Hz),.key(Min_Add),.cout(yu1));
xiaodou u13(.clk(F64Hz),.key(Hour_Add),.cout(yu2));
or and3(m,c1,yu1);
or and4(s,c2,yu2);
fenpin2to1 u1(.clkin(F2Hz),.clkout(f));
counter_6 u2(.clk(F512Hz),.dout(d6));
counter10 u3(.clk(f),.reset(reset),.cout(a1),.dout(b1));
counter6 u4(.clk(a1),.reset(reset),.cout(c1),.dout(b2));
counter10 u5(.clk(m),.reset(reset),.cout(a2),.dout(b3));
counter6 u6(.clk(a2),.reset(reset),.cout(c2),.dout(b4));
counter24 u7(.clk(s),.reset(reset),.dout1(b5),.dout2(b6));
select6to1 u8(.sin(d6),.ain(b1),.bin(b2),.cin(b3),.din(b
4),.ein(b5),.fin(b6),.dout(dout1));
decoder7 u9(.data_in(dout1),.data_out(dout2));
xiaoshupoint u10(.f1hz(f),.d2(w[2]),.d4(w[4]),.out(point));
weixuan u11(.din(d6),.dout(w));
endmodule
2.2.3 七段译码器
module decoder7(data_in,data_out );
input [3:0] data_in ;
output [7:0] data_out ;
reg [7:0] data_out ;
always @(data_in)
begin
case (data_in )
4'b0000: data_out = 8'b00111111;