版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
装订线装订线数字电路课程设计题目:利用CPLD设计可调时数字钟学院电子信息工程学院专业电气工程及其自动化学号姓名教师基于CPLD数字钟设计摘要
数字钟作为人们日常生活中常用的计时工具,被广泛应用于家庭,学校,办公室等多个场所,为人们的学习,生活和工作带来了极大的方便。由于数字集成电路的发展和先进石英技术的采用,时候数字钟具有走时准确,性能稳定的的特点。数字钟主要由电源电路,振荡与分频电路,JTAG下载接口电路,显示电路以及CPLD电路组成。采用中小规模集成芯片进行硬件的焊接。数字中的实现可以有多种方法,各有特点,本次数字钟采用QuartusⅡ软件结合VerilogHDL语言编程实现,具有计时、清零和时、分位校准功能,可分为分频模块,时钟产生模块和数码管显示模块。在QuartusⅡ软件中输入目标程序,进行仿真无误后,下载到电路板上实现数字种计数功能关键词:数字钟振荡器CPLDQuartusⅡ目录一总体设计要求21.1总体设计要求21.2设计总框图21.2.1数字钟电路设计总框图21.2.2数字钟程序设计总框图3二各模块说明32.1各模块硬件电路说明32.1.1电源电路42.1.2振荡电路与分频电路42.1.3JTAG下载接口电路52.1.4显示电路52.1.5CPLD电路62.2各模块程序设计说明82.2.1程序总体设计框图82.2.2总程序82.2.3七段译码器92.2.4位选端控制器102.2.5六选一选择器102.2.6十进制计数器102.2.7六进制计数器112.2.8二十四进制计数器122.2.9小数点132.2.10二分频132.2.11消抖13三数字钟软件设计及原理说明143.1CPLD内部模块划分143.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(b4),.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));endmodule2.2.3七段译码器moduledecoder7(data_in,data_out);input[3:0]data_in;output[7:0]data_out;reg[7:0]data_out;always@(data_in)begincase(data_in)4'b0000:data_out=8'b00111111;4'b0001:data_out=8'b00000110;4'b0010:data_out=8'b01011011;4'b0011:data_out=8'b01001111;4'b0100:data_out=8'b01100110;4'b0101:data_out=8'b01101101;4'b0110:data_out=8'b01111101;4'b0111:data_out=8'b00000111;4'b1000:data_out=8'b01111111;4'b1001:data_out=8'b01101111;default:data_out=8'b00000000;endcaseendendmodule2.2.4位选端控制器moduleweixuan(din,dout);input[2:0]din;output[5:0]dout;reg[5:0]dout;always@(din)case(din) 3'd0:dout<=6'b111110; 3'd1:dout<=6'b111101; 3'd2:dout<=6'b111011; 3'd3:dout<=6'b110111; 3'd4:dout<=6'b101111; 3'd5:dout<=6'b011111;endcaseendmodule2.2.5六选一选择器moduleselect6to1(sin,ain,bin,cin,din,ein,fin,dout);input[2:0]sin;input[3:0]ain,bin,cin,din,ein,fin;output[3:0]dout;reg[3:0]dout;always@(sin)case(sin) 3'd0:dout<=ain; 3'd1:dout<=bin; 3'd2:dout<=cin; 3'd3:dout<=din; 3'd4:dout<=ein; 3'd5:dout<=fin;endcaseendmodule2.2.6十进制计数器modulecounter10(clk,reset,cout,dout);inputclk,reset;output[3:0]dout;outputcout;reg[3:0]dout;regcout;always@(posedgeclk,posedgereset)beginif(reset)begindout<=4'b0;cout<=1'b0;endelseif(dout<9)begindout<=dout+4'b1;cout<=1'b0;endelsebegindout<=4'b0;cout<=1'b1;endendendmodule2.2.7六进制计数器modulecounter6(clk,reset,cout,dout);inputclk,reset;output[2:0]dout;outputcout;reg[2:0]dout;regcout;always@(posedgeclk,posedgereset)beginif(reset)begindout<=3'b0;cout<=1'b0;endelseif(dout<5)begindout<=dout+4'b1;cout<=1'b0;endelsebegindout<=3'b0;cout<=1'b1;endendendmodulemodulecounter_6(clk,dout);inputclk;output[2:0]dout;reg[2:0]dout;always@(posedgeclk)if(dout<5)dout<=dout+3'b1;elsedout<=3'b0;endmodule2.2.8二十四进制计数器modulecounter24(clk,reset,dout1,dout2,cout);inputclk,reset;output[3:0]dout1,dout2;outputcout;reg[7:0]dout;regcout;assigndout2=dout/10;assigndout1=dout%10;always@(posedgeclk,posedgereset)beginif(reset)begindout<=8'b0;cout<=1'b0;endelseif(dout<23)begindout<=dout+8'b1;cout<=1'b0;endelsebegindout<=8'b0;cout<=1'b1;endendendmodule2.2.9小数点modulexiaoshupoint(f1hz,d2,d4,out);inputf1hz,d2,d4;outputout;wirec;oru1(c,f1hz,d2);nandu2(out,d4,c);endmodule2.2.10二分频modulefenpin2to1(clkin,clkout);inputclkin;outputclkout;regclkout;always@(posedgeclkin)beginclkout<=~clkout;endendmodule2.2.11消抖modulexiaodou(clk,key,cout);inputclk,key;outputcout;reg[3:0]high,low;regckey;assigncout=ckey;always@(posedgeclk)if(key==1'b0)low<=low+1;elselow<=4'b0;always@(posedgeclk)if(key==1'b1)high<=high+1;elsehigh<=4'b0;always@(posedgeclk)beginif(high==4'b1000)ckey<=1'b1;elseif(low==4'b1000)ckey<=1'b0;elseckey<=ckey;endendmodule三数字钟软件设计及原理说明3.1CPLD内部模块划分根据硬件电路图所标注的CPLD的引脚及其所连接的输入输出,分析外界电路给CPLD以提供的信号以及这些信号通过CPLD模块后要输出的信号,CPLD的输入输出如下图所示:图3-1-1CPLD引脚及输入输出分布外界输入信号通过CPLD后输出七段码以及数码管显示控制信号,所以CPLD内部模块要分别实现时间调节功能,计时功能、数码管显示功能以及8421BCD码转化为七段码功能,因此CPLD内部模块划分如下:外界信号输入七段码输出控制信号输出计时模块:通过该模块数字钟能正常计时,共需要六位计数器,分别记时分秒的个位和十位,要考虑到时间调节模块输入的控制信号,实现几个状态之间的转换数码管显示模块:时间信号通过该模块要实现六位时间信号在相应控制信号有效下依次轮流显示,以及产生小数点控制信号和调节位闪烁的控制信号时间调节模块:该模块要通过按键控制数字钟的时间状态,通过该模块的控制信号控制计数器实现正常计数以及调节时分秒的功能8421BCD码转化为七段码模块:通过该模块输入四位的bcd外界信号输入七段码输出控制信号输出计时模块:通过该模块数字钟能正常计时,共需要六位计数器,分别记时分秒的个位和十位,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 47522.1-2026自动化系统与集成生产自动化分级第1部分:框架与定义
- 酒店锅炉房防火制度培训
- 景区用电安全管理制度培训课件
- 煤矿安全隐患检查培训课件
- 机械设备安全使用和管理规定培训
- 2026阿里多线程面试题及答案
- 电厂汽机运行规程培训课件
- 机电设备维修处安全管理制度培训
- 2025年区块链驱动医疗数据共享的产学研合作模式
- 幼儿园医疗保健外包合同
- 2026石河子泽众水务有限公司部分岗位社会招聘37人笔试备考试题及答案解析
- 2026浙江省知识产权保护中心工作人员招聘6人备考题库及一套完整答案详解
- 2026年安全月:如何全面排查整治风险隐患专题培训
- 2026文言100个高考文言出错率达90%的实词速记+文言翻译的“8大规律”
- 2025上海崇明区区管企业核心岗位招聘笔试历年参考题库附带答案详解
- AQ3062-2025《精细化工企业安全管理规范》专项检查表
- 2026安全培训考试题及参考答案
- 2026年XX市XX检验科生医院生物安全风险评估报告
- 防中暑安全知识培训内容
- 大学英语四级700高频词汇(带音标修正版)
- 监考员考试参考答案
评论
0/150
提交评论