西安交通大学实验报告数字钟设计

合集下载

数字电子时钟实习报告

数字电子时钟实习报告

一、实习目的本次实习旨在通过设计和制作数字电子时钟,加深对数字电路基本原理、电子元器件性能及电路设计方法的理解。

通过实际操作,掌握数字电子钟的设计、制作、调试和故障排除等技能,提高动手能力和创新意识。

二、实习内容1. 数字电子钟电路设计(1)电路组成:数字电子钟主要由振荡器、分频器、计数器、译码显示、报时电路和校时电路等部分组成。

(2)电路设计:采用555定时器构成振荡器产生1Hz的脉冲信号,通过分频器得到1Hz的秒脉冲信号。

计数器采用异步十进制计数器74LS90,实现秒、分、时的计数。

译码显示采用共阳极LED数码管,显示当前时间。

报时电路由门电路和蜂鸣器构成,实现整点报时功能。

校时电路由按键和计数器构成,实现手动校时功能。

2. 元器件选型(1)振荡器:选用555定时器,其频率稳定,易于调整。

(2)分频器:选用CD4060,具有分频功能,可方便地实现秒、分、时的计数。

(3)计数器:选用74LS90,具有异步计数功能,可方便地实现秒、分、时的计数。

(4)译码显示:选用共阳极LED数码管,显示清晰,功耗低。

(5)报时电路:选用门电路和蜂鸣器,实现整点报时功能。

(6)校时电路:选用按键和计数器,实现手动校时功能。

3. 电路制作与调试(1)电路制作:根据电路原理图,焊接电路板,连接元器件。

(2)电路调试:首先检查电路连接是否正确,然后逐个模块进行调试。

调试过程中,注意观察数码管显示是否正常,报时是否准确,校时是否方便。

三、实习过程1. 设计电路原理图:根据数字电子钟的功能和性能要求,设计电路原理图。

2. 选择元器件:根据电路原理图,选择合适的元器件。

3. 制作电路板:根据电路原理图,制作电路板。

4. 焊接元器件:将元器件焊接在电路板上。

5. 电路调试:逐个模块进行调试,确保电路功能正常。

6. 故障排除:在调试过程中,若出现故障,分析原因,进行修复。

四、实习结果1. 成功设计并制作了数字电子钟,实现了秒、分、时的计数,整点报时和手动校时等功能。

西安交通大学数电实验报告

西安交通大学数电实验报告

数电实验实验名称:数字钟设计班级:姓名:学号:一、实验简介数字钟设计的关键在于产生秒脉冲、对秒脉冲计数并产生分和小时以及动态显示时、分、秒信息。

二、实验要求1)在开发板上运行有关程序2)设计一个完整的数字钟,小时和分钟用数码管显示,秒用发光二极管闪烁显示,每秒显示一次。

如有可能,请增加校时功能。

三、实验内容1.工程文件代码:module DigitalClock(input clk,input clr,input [1:0]en,input [5:0]data,output regsecled,output reg [6:0]atg,output reg [3:0]an);reg [3:0]led1,led2,led3,led4; reg [16:0]clkdiv;reg [3:0]hour1;reg [3:0]hour2;reg [3:0]min1;reg [3:0]min2;reg [26:0]q1;reg [3:0]digit;reg [7:0]sec;reg [1:0]s;integer i;initial beginhour2=1;hour1=2;min2=1;min1=2;sec=0;led4=hour2;led3=hour1;led2=min2;led1=min1;secled=0;clkdiv=0;endalways @(*)beginan=4'b1111;s<=clkdiv[16:15];an[s]=0;case(s)0: digit<=led4;1: digit<=led3;2: digit<=led2;3: digit<=led1;default: digit<=led4;endcasecase(digit)0: atg = 7'b0000001;//01: atg = 7'b1001111;//12: atg = 7'b0010010;//23: atg = 7'b0000110;//34: atg = 7'b1001100;//45: atg = 7'b0100100;//56: atg = 7'b0100000;//67: atg = 7'b0001111;//78: atg = 7'b0000000;//89: atg = 7'b0000100;//9'hA: atg = 7'b0000001;//10-10 to be revised'hB: atg = 7'b1001111;//11-10'hC: atg = 7'b0010010;//12-10'hD: atg = 7'b0000110;//13-10'hE: atg = 7'b1001100;//14-10'hF: atg = 7'b0100100;//15-10default: atg = 7'b0000001;endcaseendalways @(posedgeclk)beginclkdiv<= clkdiv+1;end(时钟程序)always @(posedgeclk or posedgeclr)beginif(clr == 1)beginsec<=0;q1<=0;hour1<=0;hour2<=0;min1<=0;min2<=0;led4=0;led3=0;led2=0;led1=0;end(分钟调节模块)else if(en==2'b00)beginif(q1 == 50000000)beginq1<=0;secled=1;led4=hour2;led3=hour1;led2=min2;led1=min1;sec<=sec+1;if(sec == 59)beginsec<=0;min1<=min1+1;if(min1 == 9)beginmin1<=0;min2<=min2+1;endif(min1==9&&min2==5)beginmin1<=0;min2<=0;hour1<=hour1+1;if(hour1==9)beginhour1<=0;hour2<=hour2+1;endif(hour2==2&&hour1==3)beginhour1<=0;hour2<=0;endendendendelse if(q1==25000000)beginsecled=0;q1<=q1+1;endelseq1<=q1+1;end(小时调节模块)else if(en==2'b01)//change minbeginif (data<60)beginfor(i=0;i<6;i=i+1)beginif(data-i*10<10)beginmin1<=data-10*i;min2<=i;i=6;endendled4=hour2;led3=hour1;led2=min2;led1=min1;endendelse if(en==2'b10)//change hourbeginif(data<24)beginfor(i=0;i<3;i=i+1)beginif(data-i*10<10)beginhour1<=data-10*i;hour2<=i;i=3;endendendled4=hour2;led3=hour1;led2=min2;led1=min1;endendendmodule2.约束文件代码:NET "atg[0]" LOC = M12;NET "atg[1]" LOC = L13;NET "atg[2]" LOC = P12;NET "atg[3]" LOC = N11;NET "atg[4]" LOC = N14;NET "atg[5]" LOC = H12;NET "atg[6]" LOC = L14;NET "an[0]" LOC = K14;NET "an[1]" LOC = M13;NET "an[2]" LOC = J12;NET "an[3]" LOC = F12;NET "clk" LOC = B8;NET "clr" LOC = G12;NET "secled" LOC = M5;NET "en[1]" LOC = N3;NET "en[0]" LOC = E2;NET "data[5]" LOC = F3;NET "data[4]" LOC = G3;NET "data[3]" LOC = B4;NET "data[2]" LOC = K3;NET "data[1]" LOC = L3;NET "data[0]" LOC = P11;四、实验心得体会相比之前的几次上机实验,这次的实验代码花的时间要多一些,不过这次实验同样成就感也要高一些,毕竟数字钟和生活关联比较大,这让我初步了解了Verilog语音和生活中我们所用的一些电子器件的联系。

西安交通大学数字电子技术实验报告

西安交通大学数字电子技术实验报告

西安交通大学数字电子技术实验报告实验三、ISE基础实验预习:(1)安装ISE13.4软件。

(2)按照视频文件“Verilog语言输入法D_Flip_Flop.exe”进行演练。

实验内容和步骤:下载开发板相关器件的Datasheet,了解其性能。

按照P249附录A“FPGA实验预习报告模板”中的内容和步骤,完成D触发器的设计、综合、实现、仿真和下载全过程,熟悉ISE编程环境和用Adept下载编程文件的方法。

1.在G盘用自己的学号建立文件夹,进入用自己学号建立的文件夹后,再建立本次实验的文件夹,及本次实验所建工程的文件夹,文件夹名可以起名为:D_Flip_Flop、My_FirstISE、或Experiment_1、或Test_1,等等。

2.建立工程文件。

3.输入D触发器的Verilog程序。

4.编写D触发器的约束文件。

5.综合、实现及生成编程文件。

6.基于ISim的行为仿真。

7.采用Adept软件下载*.bit 程序到开发板。

8.测试D触发器的逻辑功能。

通过D触发器设计熟悉ISE软件后,自己设计一个门电路,例如与非门,重复以上ISE 软件的使用步骤。

验收:1.按照老师布置的逻辑门电路设计Verilog语言程序、约束文件、下载、仿真。

要能说明任一时刻输入输出的逻辑关系。

2.能够用开发板演示所设计的逻辑功能。

实验程序1.VERILOG工程文件module D_Flip_Flop(input clk,input set,input D,input clr,output reg q //注意:always模块中的输出必须是寄存器型变量);always @(posedge clk or posedge clr or posedge set)beginif(clr) q<=0;else if(set) q<=1;else q<=D;endendmodule2.约束文件NET "clk" LOC ="B8"; //时钟NET "D" LOC ="N3"; //SW7NET "set" LOC ="L3"; //SW1NET "clr" LOC ="P11"; //SW0NET "q" LOC ="G1"; //LD73.仿真文件module test_D_Flip_Flop;// Inputsreg clk;reg set;reg D;reg clr;// Outputswire q;// Instantiate the Unit Under Test (UUT) D_Flip_Flop uut (.clk(clk),.set(set),.D(D),.clr(clr),.q(q));initial begin// Initialize Inputsclk=0;set=1;D=0;clr=0;// Wait 100 ns for global reset to finish #100;// Add stimulus hereEndalways#10clk=~clk;always#12D=~D;always#33clk=~clk;always#42set=~set;endmodule仿真结果:实验四、组合逻辑电路实验Ⅰ(2学时)组合逻辑Ⅰ:(1)使用VERILOG设计一个新的逻辑功能(比如四输入或门、或非门、与或非门等等),并在开发板上验证,比如:进实验室前编写好VERILOG源文件、约束文件和仿真文件(见4.1.2,P101(2))。

大学数字钟实训报告

大学数字钟实训报告

一、摘要本次实训旨在通过设计和制作一个数字时钟,加深对数字电子技术理论知识的理解,提高动手实践能力。

在实训过程中,我们学习了数字钟的原理、电路设计、元件选择、焊接调试等技能。

最终,我们成功制作出了一个具有时、分、秒显示功能的数字时钟,并通过实际运行验证了其功能。

二、实训目的1. 掌握数字电子钟的原理和设计方法。

2. 熟悉常用数字电路元件的功能和特性。

3. 提高动手实践能力,培养创新意识。

4. 增强团队协作精神,提高沟通能力。

三、实训内容1. 数字钟原理数字钟是一种将时间信息转换为数字信号,并通过数码管显示的电子计时设备。

其基本原理是利用石英晶体振荡器产生稳定的时钟信号,通过计数器进行计数,并通过译码器和数码管显示时间。

2. 电路设计本次实训采用以下电路设计:(1)时钟信号产生:利用555定时器产生1Hz的时钟信号。

(2)秒计数器:采用CD4060计数器,实现秒的计数。

(3)分计数器:采用CD4518计数器,实现分的计数。

(4)时计数器:采用CD4518计数器,实现时的计数。

(5)译码器:采用CD4511译码器,将计数器的输出信号转换为数码管所需的信号。

(6)数码管显示:采用共阴极七段数码管,显示时、分、秒。

3. 元件选择本次实训选用的元件如下:(1)时钟信号产生:555定时器、电阻、电容。

(2)计数器:CD4060、CD4518。

(3)译码器:CD4511。

(4)数码管显示:共阴极七段数码管。

(5)其他元件:电阻、电容、电位器、晶体管、开关等。

4. 焊接调试(1)按照电路图进行元件焊接。

(2)检查电路连接是否正确,并进行初步调试。

(3)调整电位器,使数码管显示正确的时间。

(4)测试电路功能,确保时、分、秒显示准确。

四、实训总结1. 通过本次实训,我们掌握了数字电子钟的原理和设计方法,熟悉了常用数字电路元件的功能和特性。

2. 在实训过程中,我们提高了动手实践能力,培养了创新意识。

3. 团队协作精神得到了加强,沟通能力得到提高。

最新西安交通大学电子系统设计c51单片机数字钟实验

最新西安交通大学电子系统设计c51单片机数字钟实验

n单片机数字钟实验报告姓名:高航班级:信息43学号:2140502058PART 1 实验目的在单片机c51实验板上编程实现2017年日历和实时时钟:1.时-分-秒(2位-2位-2位)显示;2.可通过按键置入时间值(参照电子表设置时间工作模式);3.可通过按键控制在LED上从右向左滚动显示年_月_ 日3次,如:2013_01_20空空2013_01_20 ;4.实现每日闹铃提醒功能,闹铃时间可用按键设置。

闹铃采用提示音表示;5.实现秒表功能;6.实现定时器功能(预置定时时间,按键启动,倒计时,计到0响提示音;7.设计实现音乐提示音;8.能够在短时间按要求修改。

PART 2 实验流程图1.总流程图2.设置时间/日期/闹钟模块dis()3.音乐模块music()PART 3 实验代码代码使用资源:Program Size: data=102.0 xdata=0 code=2420 #include<reg51.h>#include<absacc.h>#define uint unsigned int#define uchar unsigned charuchar t0h,t0l,timeaaa;uchar code FREQH[] = {0x01, //0的时候没有音符0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音12345670xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//1,2,3,4,5,6,7,i0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFE, //高音2345670xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFF}; //超高音1234567 uchar code FREQL[] = {0x01, //0的时候没有音符0x42, 0xC1, 0x17, 0xB6, 0xD0, 0xD1, 0xB6, //低音12345670x21, 0xE1, 0x8C, 0xD8, 0x68, 0xE9, 0x5B, 0x8F, //1,2,3,4,5,6,7,i0xEE, 0x44, 0x6B, 0xB4, 0xF4, 0x2D, //高音2345670x47, 0x77, 0xA2, 0xB6, 0xDA, 0xFA, 0x16}; //超高音1234567 uchar code tiger[]={3,2,2, 6,2,2, 7,2,2, 5,2,2,3,2,2, 6,2,2, 7,2,2, 5,2,2,7,2,2, 1,3,2, 2,3,4,7,2,2, 1,3,2, 2,3,4,2,3,1, 3,3,1, 2,3,1, 1,3,1, 7,2,2, 5,2,2,2,3,1, 3,3,1, 2,3,1, 1,3,1, 7,2,2, 5,2,2,6,2,2, 2,2,2, 5,2,4, 6,2,2, 2,2,2, 5,2,4,0,0,0};sbit aa=P1^6;unsigned char time[]={0,0,0x08,0,0,0x08,0,0} ; //时间显示数组unsigned char timeZ[]={0,0,0x08,0,0,0x08,0,0} ;//闹钟显示数组unsigned char timeD[]={0,0,0x08,0,0,0x08,0,0} ;//倒计时显示数组unsigned char timeN[]={0,0,0x08,0,0,0x08,0,0} ;//秒表显示数组unsigned char dateset[]={0,0,0x08,0,0,0x08,0,0} ;//riqishezhi显示数组unsigned char code num[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};//数字unsigned char date[]={0,0,0,0,0,0,0,0,0,0,0,0,0x08,0,0,0x08,0,0,0,0,0,0,0,0};//日期显示unsigned char sec=0,min=0,hour=0,day=24,mon=10,j,t,a,p;int year=2017;unsigned char secZ=0,minZ=1,hourZ=0;unsigned char secD,minD,hourD;unsigned char tsec,secN,minN,tsecm;*****************************LED显示延时函数********************************void delay(unsigned char p){unsigned char i,j;for(;p>0;p--)for(i=5;i>0;i--)for(j=120;j>0;j--);}*******************************获取按键函数***********************************unsigned char getkeycode(void){unsigned char line=0x00; /*行码*/unsigned char col=0x00; /*列码*/unsigned char scancode=0x01; /*行扫描码*/unsigned char keycode; /*键号*/XBYTE[0x8000]=0xff;col=XBYTE[0x8000]&0x0f; /*从列端口读入四位列码*/if (col==0x00)keycode=0x00;else{while((scancode&0x0f)!=0) /*取scancode的低四位,没变为全0,循环*/{line=scancode; /*行号*/XBYTE[0x8000]=scancode; /*给行赋扫描码,第一行为0x01*/if((XBYTE[0x8000]&0x0f)==col) /*检测按键所在的行跳出循环*/break;scancode=scancode<<1; /*行扫描码左移一位,转下一行*/}col=col<<4; /*把列码移到高四位*/keycode=col|line;}return keycode;}*******************************时间显示函数***********************************void timedis(){XBYTE[0X9000]=0;for (j=0;j<8;j++){time[0]=num[sec%10];time[1]=num[sec/10];time[3]=num[min%10];time[4]=num[min/10];time[6]=num[hour%10];time[7]=num[hour/10];delay(1);XBYTE[0X8000] =0x01<<j;XBYTE[0X9000] =time[j];}} //time show*******************************闹钟显示函数***********************************void timedisZ(){XBYTE[0X9000]=0;for (j=0;j<8;j++){timeZ[0]=num[secZ%10];timeZ[1]=num[secZ/10];timeZ[3]=num[minZ%10];timeZ[4]=num[minZ/10];timeZ[6]=num[hourZ%10];timeZ[7]=num[hourZ/10];delay(1);XBYTE[0X8000] =0x01<<j;XBYTE[0X9000] =timeZ[j];}}*******************************秒表显示函数***********************************void timedisN(){while(1){for(;tsec==20;){tsec=0;secN++;if(secN==60){minN++;secN=0;}}if(getkeycode()==0x84)break;XBYTE[0X9000]=0;for (j=0;j<8;j++){timeN[0]=num[tsec%10];timeN[1]=num[tsec/10];timeN[3]=num[secN%10];timeN[4]=num[secN/10];timeN[6]=num[minN%10];timeN[7]=num[minN/10];delay(1);XBYTE[0X8000] =0x01<<j;XBYTE[0X9000] =timeN[j];//if(getkeycode()==0x84)break;}} } //秒表*****************************倒计时显示函数***********************************void timedisD(){while(1){if(minD==0&&secD==0)break;XBYTE[0X9000]=0;for (j=0;j<8;j++){timeD[0]=num[secD%10];timeD[1]=num[secD/10];timeD[3]=num[minD%10];timeD[4]=num[minD/10];timeD[6]=num[hourD%10];timeD[7]=num[hourD/10];delay(1);XBYTE[0X8000] =0x01<<j;XBYTE[0X9000] =timeD[j];}}}*******************************日期显示函数***********************************void datedis(){unsigned char i,j,k;for (i=0;i<17;i++){ for(k=0;k<20;k++)for (j=0;j<8;j++){ date[13]=num[day/10];date[14]=num[day%10];date[16]=num[mon/10];date[17]=num[mon%10];date[11]=num[year%10];date[10]=num[(year%100)/10];date[9]=num[(year%1000)/100];date[8]=num[year/1000];XBYTE[0X8000] = 0x80>>j;XBYTE[0X9000] = date[i+j];delay(1);}}} //date show//downto zero bibii****************************年月日设置显示函数*******************************void datedis1(){XBYTE[0X9000]=0;for (j=0;j<8;j++){dateset[6]=num[year%10];dateset[7]=num[(year%100)/10];dateset[3]=num[mon%10];dateset[4]=num[mon/10];dateset[0]=num[day%10];dateset[1]=num[day/10];delay(1);XBYTE[0X8000] =0x01<<j;XBYTE[0X9000] =dateset[j];}}*******************************时间设置函数***********************************void set(){unsigned char i=0;{for(i=0;i<3;){timedis();if (getkeycode()==0x11){ delay(100);i++;}if (getkeycode()==0x21){ delay(100);switch (i){case 0: sec++;if(sec==60){sec=0;}break;case 1: min++;if(min==60){min=0;}break;case 2: hour++;if(hour==24){hour=0;}break;default: break;} }} }} //时间设置//timeset*******************************闹钟设置函数***********************************void setZ(){unsigned char i=0;{for(i=0;i<3;){timedisZ();if (getkeycode()==0x11){ delay(100);i++;}if (getkeycode()==0x21){ delay(100);switch (i){case 0: secZ++;if(secZ==60){secZ=0;}break;case 1: minZ++;if(minZ==60){minZ=0;}break;case 2: hourZ++;if(hourZ==24){hourZ=0;}break;default: break;} }} }} //alarm set*******************************日期设置函数***********************************void setdate(){unsigned char i=0;{for(i=0;i<3;){datedis1();if (getkeycode()==0x11){ delay(100);i++;}if (getkeycode()==0x21){ delay(100);switch (i){case 0: day++;if(day==32){day=0;}break;case 1: mon++;if(mon==13){mon=0;}break;case 2: year++;break;default: break;} }} }}*****************************定时器0中断函数*********************************void timer() interrupt 1{t++; //计数溢出后t++if(getkeycode()==0x82){tsec=0;secN=0;minN=0;}if(getkeycode()!=0x22){tsec++;}if (t==20)//1s{if (getkeycode()==0x48){ while(1){set();break;}}//进入时间设置if (getkeycode()==0x14){ while(1){setdate();break;}}//日期设置sec++; t=0;secD--;if(secD==(-1)){secD=59;minD--;}if(minD==(-1)){minD=59;}if(sec==60){sec=0;min++;}if(min==60){min=0;hour++;}if(hour==24){hour=0;day++;}if((day==32)&&(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12)){d ay=1;mon++;}if((day==31)&&(mon==4||mon==6||mon==9||mon==11)){day=1;mon++;}if(year%4==0&&year%400!=0&&mon==2&&day>=30){day=1;mon++;}if(year%4!=0&&mon==2&&day>=29) {day=1;mon++;}}}void reset (void){t=0;TMOD=0x01; //模式选择TL0=0xb0;TH0=0x3c; // TH1=(65536-9216)/256; TL1=(65536-9216)%256;PT0=0; //定时器优先ET0=1; // 定时器中断允许TR0=1;//开始定时EA=1; //cpu允许stop} //time go on*****************************定时器1中断函数*********************************void t0int() interrupt 3 {TR1 = 0; //先关闭T0aa = ~aa; //输出方波, 发音TH1 = t0h; //下次的中断时间, 这个时间, 控制音调高低TL1 = t0l;TR1 = 1; //启动T0}void delayaaa(uchar t) {uchar a;while(t--) //四重循环, 共延时t个1/4拍{/* for(c=193;c>0;c--)for(b=114;b>0;b--) //114*/for(a=10;a>0;a--){timedis();}}//延时期间, 可进入T0中断去发音//timedis(); 没用TR1 = 0; //关闭T0, 停止发音}void singachar() {TR1=0;TH1 = t0h; //控制音调TL1 = t0l;TR1 = 1; //启动T0, 由T0输出方波去发音delayaaa(timeaaa);//控制时间长度即节拍}void song(uchar *str){uchar k,i;i = 0;timeaaa=1;while(timeaaa){k = str[i] + 7 * (str[i + 1]);//第i个是音符, 第i+1个是第几个八度t0h = FREQH[k]; //从数据表中读出频率数值t0l = FREQL[k]; //实际上, 是定时的时间长度timeaaa = str[i + 2]; //读出时间长度数值节拍时间i+= 3;singachar();if(getkeycode()==0x22)break;//stop noise}}void music(void){TMOD = 0x01; //置T0定时工作方式1ET1= 1; //开T0中断EA = 1; //开CPU中断while(1){song(tiger);aa=1;if(getkeycode()==0x22)break;delayaaa(20);//timedis();}}*********************************MAIN函数************************************ void main(){reset();while(1){timedis();if(getkeycode()==0x88){setZ();} //闹钟设置if(getkeycode()==0x28){for(p=0;p<3;p++){datedis();}} //日期if(getkeycode()==0x18){secD=20;minD=0;timedisD();if(minD==0&&secD==0){music();}}//倒计时if(getkeycode()==0x44){minN=0;tsec=0;secN=0;timedisN();}//秒表if(secZ==sec&&minZ==min&&hourZ==hour) {music();}}}************************************OVER**************************************PART 4 实验心得实验虽然已经验收完毕,但收获却是弥足珍贵。

数字钟 实验报告

数字钟 实验报告

数字钟实验报告数字钟实验报告1. 引言数字钟是一种以数字形式显示时间的装置,广泛应用于日常生活中。

本实验旨在通过搭建数字钟电路并进行实际测试,了解数字钟的工作原理和实现方式。

2. 实验材料和方法实验材料:电路板、电子元件(集成电路、电阻、电容等)、数字显示屏、电源、万用表等。

实验方法:按照电路图连接电子元件,将数字显示屏连接到电路板上,接通电源后进行测试。

3. 实验步骤3.1 搭建电路根据提供的电路图,将电子元件按照正确的连接方式搭建在电路板上。

确保连接的准确性和稳定性。

3.2 连接数字显示屏将数字显示屏连接到电路板上的指定位置,注意极性的正确性。

3.3 接通电源将电路板连接到电源上,确保电源的稳定输出。

3.4 进行测试打开电源,观察数字显示屏上的显示情况。

通过调整电路中的元件,如电容和电阻的数值,观察数字显示屏上的时间变化。

4. 实验结果在实验过程中,我们成功搭建了数字钟电路,并进行了多次测试。

通过调整电路中的元件数值,我们观察到数字显示屏上的时间变化。

数字钟准确地显示了当前的时间,并且实时更新。

5. 讨论与分析通过本次实验,我们了解到数字钟的工作原理是通过电路中的集成电路和元件来控制数字显示屏的显示。

数字钟的精确性和稳定性取决于电路的设计和元件的质量。

在实际应用中,数字钟通常会采用更加精确的时钟芯片来保证时间的准确性。

6. 实验总结本次实验通过搭建数字钟电路并进行测试,使我们更加深入地了解了数字钟的工作原理和实现方式。

通过调整电路中的元件,我们观察到数字显示屏上的时间变化,验证了数字钟的准确性和实时性。

在今后的学习和工作中,我们将更加注重电路设计和元件的选择,以提高数字钟的精确性和稳定性。

7. 参考文献[1] 电子技术基础教程,XXX,XXX出版社,2010年。

[2] 数字电路设计与实验,XXX,XXX出版社,2015年。

8. 致谢感谢实验室的老师和同学们对本次实验的支持和帮助。

他们的耐心指导和积极讨论使本次实验取得了圆满成功。

数字钟实验报告5篇范文

数字钟实验报告5篇范文

数字钟实验报告5篇范文第一篇:数字钟实验报告数字钟实验报告班级:电气信息i类112班实验时间:实验地点:指导老师:目录一、实验目的-----------------3二、实验任务及要求--------3三、实验设计内容-----------3(一)、设计原理及思路3(二)、数字钟电路的设计--------------------------4(1)电路组成---------4(2)方案分析---------10(3)元器件清单------11四、电路制版与焊接---------11五、电路调试------------------12六、实验总结及心得体会---13七、组员分工安排------------19一、实验目的:1.学习了解数码管,译码器,及一些中规模器件的逻辑功能和使用方法。

2.学习和掌握数字钟的设计方法及工作原理。

熟悉集成电路的引脚安排,掌握各芯片的逻辑功能及使用方法了解面包板结构及其接线方法。

3.了解pcb板的制作流程及提高自己的动手能力。

4.学习使用protel软件进行电子电路的原理图设计、印制电路板设计。

5.初步学习手工焊接的方法以及电路的调试等。

使学生在学完了《数字电路》课程的基本理论,基本知识后,能够综合运用所学理论知识、拓宽知识面,系统地进行电子电路的工程实践训练,学会检查电路的故障与排除故障的一般方法锻炼动手能力,培养工程师的基本技能,提高分析问题和解决问题的能力。

二、实验任务及要求1.设计一个二十四小时制的数字钟,时、分、秒分别由二十四进制、六十进制、六十进制计数器来完成计时功能。

2.能够准确校时,可以分别对时、分进行单独校时,使其到达标准时间。

3.能够准确计时,以数字形式显示时、分,发光二极管显示秒。

4.根据经济原则选择元器件及参数;5..小组进行电路焊接、调试、测试电路性能,撰写整理设计说明书。

三、实验设计内容1、设计原理及思路 3.1数字钟的构成数字钟一般由振荡器、分频器、计数器、译码器、显示器、较时电路、报时电路等部分组成,这些都是数字电路中应用最广的基本电路3.2原理分析数字钟实际上是一个对标准频率(1hz)进行计数的计数电路。

数电数字钟实验报告

数电数字钟实验报告

数电数字钟实验报告篇一:西安交大数电数字钟实验报告西安交通大学数字电子技术实验报告数字钟设计姓名:**学院:**学院班级:**22学号:212******5一、实验名称基于Verilog HDL设计的多功能数字钟二、试验任务及要求实验要求以Verilog HDL语言为手段,设计多功能数字钟。

多功能数字钟应该具有的功能有:显示时—分—秒、整点报时、小时和分钟可调等基本功能。

整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。

在实验中为了显示与编写方便,该设计采用一个位24位二进制码[23:0]cnt记录时间,每四位记录一个数,从高到低分别为时针十位、时针个位、分针十位、分针个位、秒针十位、秒针个位。

实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz信号,必须对输入的系统时钟50Mhz进行分频。

关于调整时间功能,该设计采用四个按钮调整对应位的数值,从而调整时间。

三、实验条件该实验以Verilog HDL语言为手段,以Xilinx ISE Design Suite 13.4_1软件实现源程序的综合与仿真,并用BASYS2开发板作为目标器件。

四、设计过程1. 列写多功能数字钟设计--层次结构图2.拟定数字钟的组成框图,在Xilinx ISE Design Suite 13.4_1软件中,使用Verilog语言输入,采用分层次分模块的方法设计电路;3.设计各单元电路并进行仿真;4.对数字钟的整体逻辑电路图,选择器件,分配引脚,进行逻辑综合;5.下载到Basys2实验平台上,实际测试数字钟的逻辑功能。

五、 Verilog代码module clock(input clk,input en,input key1,input key2,input key3,input key4,output sec,output wire[7:0] seg,output wire[3:0] digit);wire[3:0] num0,mum1,num2,num3;disp u0(clk,num0,mum1,num2,num3,seg,digit);clk_gen u1(clk,en,key1,key2,key3,key4,sec,num0,mum1,num2,nu m3);endmodule//////////////////////////////////// module disp(input clk,input [3:0] num0,input [3:0] num1,input [3:0] num2,input [3:0] num3,output reg[7:0] sm_seg,output reg[3:0] an);reg[1:0] s;reg[3:0] digit;reg[16:0] clkdiv;always@(*)beginan=4'b1111;s an[s]=0;case(s)0:digit1:digit2:digit3:digit default:digit endcasecase(digit)4'h0 : sm_seg = 8'hc0;// "0" 4'h1 : sm_seg = 8'hf9;// "1" 4'h2 : sm_seg = 8'ha4;// "2" 4'h3 : sm_seg = 8'hb0;// "3" 4'h4 : sm_seg = 8'h99;// "4" 4'h5 : sm_seg = 8'h92;// "5" 4'h6 : sm_seg = 8'h82;// "6" 4'h7 : sm_seg = 8'hf8;// "7" 4'h8 : sm_seg = 8'h80;// "8" 4'h9 : sm_seg = 8'h90;// "9" default : sm_seg = 8'hff;// "x" endcase endalways@(posedge clk)clkdiv Endmodule/////////////////////////////////////////// module clk_gen(input clk,input en,input bt0,input bt1,input bt2,input bt3,output reg sec,output [3:0] num0,output [3:0] num1,output [3:0] num2,output [3:0] num3);reg[25:0] ctr;reg[3:0] mytime[3:0];reg[7:0] s;assign num0=mytime[0];assign num1=mytime[1];assign num2=mytime[2];assign num3=mytime[3];always@(posedge clk)beginctr if(ctr==-1)beginctr sec endend//wire sen;//assign sen=(sec)|(bt0)|(bt1)|(bt2)|(bt3);always@(negedge sec)if(!en)beginif(bt0)beginmytime[0] if(mytime[0]==9) mytime[0] else if(bt1)beginmytime[1] if(mytime[1]==5) mytime[1] else if(bt2)beginmytime[2] if(mytime[2]==9) mytime[2] else if(bt3)beginmytime[3] if(mytime[3]==2) mytime[3] end elsebegins if(s==59)篇二:数电课程实验报告——数字钟的设计《数字电子技术》课程设设计题目:班级学号:学生姓名:指导教师:时间:计报告数字钟的设计 XX年12月27日~XX年1月2日《数字电子技术》课程设计任务书一、设计题目:数字钟的设计二、设计任务与要求:1.时钟显示功能,能够以十进制显示“时”、“分”、“秒”。

数字时钟的设计实习报告

数字时钟的设计实习报告

数字时钟的设计实习报告一、实习目的本次实习旨在通过设计一个数字时钟,使学生掌握数字电路的设计方法,熟悉集成电路的使用,提高对单片机的学习和应用能力,培养学生的软硬件开发能力。

二、实习内容1. 设计一个数字时钟,能够显示时分秒。

2. 掌握数字时钟的设计方法。

3. 熟悉集成电路的使用方法。

4. 培养学习、设计、开发软、硬的能力。

三、实习过程1. 首先,我们对数字时钟的设计进行了需求分析,明确了数字时钟的功能和要求。

数字时钟应能够显示时分秒,采用24小时标准计时制。

2. 接下来,我们进行了数字时钟的设计方案制定。

数字时钟主要由单片机、LED数码管、按键等部分构成。

单片机负责控制整个系统,LED数码管用于显示时间,按键用于调整时间。

3. 然后,我们进行了数字时钟的硬件设计。

我们选择了AT89C52单片机作为核心控制器,6个共阳极的高亮度LED数码管用于显示时间,还选择了两个按键用于调整时间。

4. 在硬件设计的基础上,我们进行了数字时钟的软件设计。

我们编写了程序,使单片机能够控制LED数码管显示时间,并能够通过按键调整时间。

5. 最后,我们对数字时钟进行了测试和调试,确保其功能的正确性和稳定性。

四、实习心得通过本次实习,我们掌握了数字时钟的设计方法,熟悉了集成电路的使用方法,提高了对单片机的学习和应用能力。

我们在设计过程中,学会了如何分析需求、制定方案、设计硬件和软件,并通过测试和调试,确保设计的正确性和稳定性。

此外,我们还学会了如何协作和沟通,提高了团队协作能力。

在设计过程中,我们遇到了很多问题,但通过互相讨论和请教老师,我们逐一解决了问题,取得了实习的成功。

五、实习成果本次实习,我们成功设计了一个数字时钟,能够显示时分秒,并具有时间调整功能。

数字时钟的硬件电路稳定运行,软件程序正确无误。

六、实习展望在今后的学习和工作中,我们将继续深入学习数字电路和单片机的相关知识,提高自己的设计能力和开发水平。

我们还将把在实习中学到的知识和技能应用到实际项目中,为我国电子行业的发展做出贡献。

数字时钟毕业设计:具有整点报时及校时功能的数字钟系统设计

数字时钟毕业设计:具有整点报时及校时功能的数字钟系统设计

本科毕业设计论文题目:具有整点报时及校时功能的数字钟系统设计系别: 电气与信息工程系专业:电气工程及其自动化班级:学号学生姓名:指导教师:2015 年 6 月2摘要摘要现代社会的快节奏生活让人们对时间观念越来越重视,对时间的精确性要求也越来越高,这就催生了数字电子时钟的飞速发展。

数字钟就是采用数字电路来实现对“时”、“分”、“秒”数字显示的计时装置。

数字钟的精度、稳定度都优于老式机械钟。

本次设计利用中规模器件实现数字时钟系统,由555定时器构成多谐振荡电路产生振荡脉冲由计数器计数再经译码器译码后产生驱动数码显示器的信号,使数码显示器呈现出“时”“分”“秒”对应的计时数字;电路还增加了校正电路和整点报时电路,对时钟进行校时和校分,使其准确的工作,在整点的时候发出警报。

数字钟及扩大其应用,有着非常现实的意义。

在此次设计中,应用Protel99se软件进行相关电气原理图的绘制和PCB的制作,采用了74LS系列的芯片实现数字钟的计时、译码各部分功能,辅助以必要的电路,实现高效、准确、使用简便的数字电子时钟系统。

本次对数字时钟的研究,使我对数字电子技术有了更深刻的了解和掌握,更促进了我对理论知识和实践相结合的认识,为以后在专业上的发展奠定了基础。

关键词:数字时钟,数字电路,中规模器件I西安交通大学城市学院本科生毕业设计(论文)IIABSTRACTABSTRACTThe fast rhythm of social life now let people take more and more attention to the concept of time, the accuracy of time requirements also more and more high, this has given rise to the rapid development of digital clock. Digital clock is a digital circuit is used to realize the ‘‘hour” ‘‘minute” ‘‘second” digital display timer. The digital clock precision, stability is superior to the old mechanical clock.This design using MSI devices to achieve a digital clock system, is composed of 555 timer composition multivibrator circuit oscillation pulse is counted by the counter and decoder produces driving digital display signal, the digital display shows "hour", " minute", "second" corresponding to the digital timing; circuit also increases the correction circuit and the whole point timekeeping circuit, the clock, school and school, make its accurate work, when the whole point of alerts.In the design, application Protel99se software related electrical schematic drawing and PCB production. Using a series of 74 chips implementation of digital electronic clock timing, decoding function of each part, auxiliary to the necessary circuit, efficient, accurate and easy to use digital electronic clock system. The study of the digital clock, so I have a more profound understanding and grasp of digital electronic technology, but also to promote the understanding I of theoretical knowledge and practical combination of, laid the foundation for the future development of the professional.KEY WORDS: Gigital clock, Gigital circuit, Medium scale componentsIII西安交通大学城市学院本科生毕业设计(论文)IV目录目录摘要 (I)ABSTRACT.......................................................... I II 1绪论.. (1)1.1课题背景 (1)1.2选题的目的和意义 (1)1.3主要工作 (2)2数字时钟系统的工作原理 (3)2.1数字时钟设计的基本要求 (3)2.2数字时钟的工作原理 (3)3数字时钟系统的设计 (5)3.1振荡电路的设计 (5)3.2分频电路的设计 (7)3.3时分秒计时电路的设计 (10)3.4译码显示电路的设计 (14)3.5校时校分电路的设计 (17)3.6整点报时电路的设计 (18)4数字时钟系统的绘制、制作和调试 (20)4.1数字时钟的绘制过程 (20)4.2数字时钟的制作过程 (21)4.3数字时钟的调试过程和问题总结 (22)5总结与展望 (24)5.1设计的结论与感想 (24)5.2设计的不足与展望 (24)致谢 (26)参考文献 (28)外文翻译 (35)V西安交通大学城市学院本科生毕业设计(论文)VI绪论1绪论数字钟是一种用数字集成电路或专用芯片做成的计时器,即利用数字电路技术来实现对时、分、秒计时和控制的电子装置,与传统的机械时钟相比而言,数字钟具有更高的精确性和直观性,由于数字集成电路的发展和的相关芯片的广泛使用,并且数字钟无机械装置,也具有更长的使用寿命,这些优点使得数字钟的使用范围远远的超过了老式钟表,而且极大的扩展了钟表原先的具有报时功能,如定时自动警报功能、按时响铃、对程序的自动控制、定时广播、定时通断动力设备、甚至用于各种电气设备的定时自动启用等。

数字钟实习报告材料

数字钟实习报告材料

实习报告:数字钟设计一、实习目的本次实习的主要目的是通过设计和实现一个数字钟,加深对数字电路设计和编程的理解,提高实际操作能力,培养解决实际问题的能力。

同时,通过本次实习,要求掌握 Quartus II 软件的使用,熟悉数字逻辑电路的设计过程,以及时序逻辑电路在实际应用中的实现。

二、实习内容本次实习的任务是设计并实现一个数字钟,具体功能如下:1. 正常计时:能够设置当前时间,并以秒、分、小时为单位进行计数,采用60进制计数器实现秒和分的计数,24进制计数器实现小时的计数。

2. 数码管实时显示:计时的小时、分、秒通过数码管实时显示,以便观察当前时间。

三、实习过程1. 设计思路:首先,根据功能要求,设计系统的总体结构,包括时计数器、分计时器和秒计时器等子模块。

然后,对每个子模块进行详细设计,包括逻辑框图和输入输出描述。

最后,根据设计好的逻辑框图,使用 Quartus II 软件进行编程,生成对应的数字逻辑电路。

2. 模块设计:(1)时计数器:负责驱动时计时器,以秒为单位进行计数。

主要信号有Clktohour(时钟信号)、Reset(复位信号)和 SCALESEL(小时的高位显示和低位显示)。

(2)分计时器:负责驱动分计时器,以分为单位进行计数。

主要信号有clktominute(时钟信号)、reset(复位信号)和 sethour(使能输入信号)。

(3)秒计时器:负责驱动秒计时器,以秒为单位进行计数。

主要信号有clktosecond(时钟信号)、reset(复位信号)和 setmin(使能输入信号)。

3. 编程与仿真:根据设计的逻辑框图,使用 Verilog 语言进行编程,并在Quartus II 软件中进行功能仿真和时序仿真,确保设计的正确性。

4. 硬件测试:将生成的数字逻辑电路下载到实验板上的 FPGA 芯片上,进行硬件测试,验证数字钟的功能是否满足要求。

四、实习心得通过本次实习,我对数字电路的设计和编程有了更深入的理解,掌握了 Quartus II 软件的使用,提高了实际操作能力。

数字时钟的简单制作实验报告

数字时钟的简单制作实验报告

数字钟设计实验报告一、数字钟原理与设计思路由振荡器输出稳定的高频脉冲信号作为时间基准,经分频器输出标准的秒脉冲;秒计数器按“60进制”向分计数器进位;分计数器按“60进制”向时计数器进位;小时计数器按“24进制”规律计数;星期计数器按“7进制”规律计数;计数器经译码器送到显示器。

出现误差可用校准电路进行小时和分钟的校准,并具有可整点报时功能。

软件本身提供任意频率的时钟,因此振荡器、分频器不需设计;也带有内置译码驱动的数码管,故此译码器和显示器也不需设计。

这样,基本数字钟的设计实际上就是设计如下图的级联计数器。

二、数字钟构成1、振荡器、分频器:1Hz的CLK时钟信号(秒脉冲)秒计数器:60进制计数器(两片74160——0-59)2、计数器分计数器:60进制计数器(两片74160——0-59)时计数器:24进制计数器(两片74160——0-23)星期计数器:7进制计数器(一片74160——1-7)3、译码器、显示器:软件带有内置译码驱动的数码管(7个数码管)4、调时电路、整点报时电路三、数字电路模块细节构成1、秒计数器:60进制计数器(两片74160——0-59)用秒脉冲(1Hz)2、分计数器:60进制计数器(两片74160——0-59)设计:分计数器个位ENT接(看下图)(Ps:分的个位是59秒才开始计数1次)分计数器十位ENT接(看下图)(Ps:分的十位是9分59秒才开始计数1次)设计:时计数器个位ENT接(看下图)(Ps:是59分59秒才开始计数1次)时计数器十位ENT接(看下图)(Ps:是9时59分59秒才开始计数1次)时计数器整体电路图(看下图)4、星期计数器:7进制计数器(一片74160——1-7)(从1开始)ENT接(看下图)(Ps:是23时59分59秒才开始计数1次)星期计数器整体电路图(看下图)5、整点报时电路当时间在59分50秒到59分59秒期间时,报时电路报时控制信号。

当时间在59分50秒到59分59秒期间时,分十位、分个位和秒十位均保持不变,分别为5、9和5。

数字钟课程设计实习报告

数字钟课程设计实习报告

数字钟课程设计实习报告一、实习目的与要求本次数字钟课程设计实习旨在让同学们熟悉数字电路的设计与实践,掌握集成电路的引脚安排、各芯片的逻辑功能及使用方法,了解面包板结构及其接线方法,培养同学们动手实践能力和问题解决能力。

实习要求设计并制作一个数字电子钟,具体要求如下:1. 显示时、分、秒,时间以24小时为一个周期;2. 具有校时功能,可以分别对时、分进行单独校正;3. 计时过程具有报时功能,当时间到达整点前5秒进行蜂鸣报时;4. 保证计时的稳定及准确,须由晶体振荡器提供表针时间基准信号。

二、实习过程1. 设计原理及其框图数字钟的构成实际上是一个对标准频率(1HZ)进行计数的计数电路。

由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。

通常使用石英晶体振荡器电路构成数字钟,其一般构成框图如下:图1 数字钟的组成框图2. 电路设计本次实习采用32768HZ晶振产生振荡脉冲,然后经过CD4060分频后得到2HZ脉冲,再经过74LS74(D触发器)2分频得到1HZ脉冲,由74HC161计数器计数再经CD4511译码器译码后产生驱动数码显示器的信号,使数码显示器呈现出时、分、秒对应的计时数字。

电路还增加了校正电路和整点报时电路,时、分、秒都可手动按键校正,使其准确的工作,在整点的时候发出警报,在每个整点前鸣叫五次低音(500Hz),整点时再鸣叫一次高音(1000Hz)。

3. 元器件及参数选择本次实习所需元器件及参数如下:(1)石英晶体振荡器:32768HZ;(2)CD4060:分频系数为1024;(3)74LS74:D触发器;(4)74HC161:十进制计数器;(5)CD4511:BCD至七段译码器;(6)数码显示器:7段LED;(7)晶体管:放大报警声音;(8)蜂鸣器:报警声音输出。

4. 电路仿真与调试在电路设计完成后,使用Multisim软件进行电路仿真,验证电路功能的正确性。

数字时钟设计的实习报告

数字时钟设计的实习报告

一、实习背景随着科技的不断发展,数字电子技术在各个领域得到了广泛应用。

数字时钟作为一种常见的电子设备,其设计和制作已成为电子技术专业学生的必备技能。

本实习报告旨在通过设计、制作和调试数字时钟,使学生掌握数字电路的基本原理和实际操作技能。

二、实习目的1. 熟悉数字电路的基本原理和组成;2. 掌握数字时钟的设计方法;3. 学会使用数字电路实验设备;4. 培养学生的动手能力和团队协作精神。

三、实习内容1. 设计要求(1)功能要求:数字时钟应能显示时、分、秒,具有计时、校时和报时功能。

(2)性能要求:计时精度高,显示清晰,操作简便。

(3)硬件要求:使用CMOS或TTL系列中小规模集成电路,如计数器、译码器、显示器等。

2. 设计方案(1)设计逻辑框图:数字时钟主要由晶体振荡器、分频器、计数器、译码器、显示器和校时电路等组成。

(2)硬件电路设计:① 晶体振荡器:采用12MHz石英晶体振荡器,输出1Hz标准信号。

② 分频器:将1Hz信号分频为1s、1min、1h信号。

③ 计数器:分别对1s、1min、1h信号进行计数,实现时、分、秒的计时。

④ 译码器:将计数器的输出信号转换为显示器所需的信号。

⑤ 显示器:采用七段数码显示器,显示时、分、秒。

⑥ 校时电路:通过按键输入校时信号,实现时、分的校准。

(3)软件设计:编写程序,实现数字时钟的功能。

3. 制作与调试(1)制作:根据设计方案,选用合适的元器件,进行电路板焊接和元器件安装。

(2)调试:对电路进行测试,确保各部分功能正常。

调试过程中,注意观察电路状态,及时发现问题并解决。

四、实习成果1. 成功制作了一台具有计时、校时和报时功能的数字时钟。

2. 掌握了数字电路的基本原理和设计方法。

3. 学会了使用数字电路实验设备,提高了动手能力。

4. 培养了团队协作精神。

五、实习心得1. 在设计过程中,要充分了解各个元器件的功能和特性,合理选择元器件。

2. 电路设计要遵循一定的规范,如电路布局、走线等。

(完整word版)FPGA专题实验实验报告-西安交通大学

(完整word版)FPGA专题实验实验报告-西安交通大学

实验1:状态机问题一:你觉得上面这段代码中,q 到底在怎样变化?答:首先语句中缺少begin,q <= q也不合理;如果有异步复位信号,q=0;否则,如果有上升沿且a不等于1,q=q;如果有上升沿且a=1,q直接等于b;问题二:本页中,q 到底在怎样变化?答:复位时,q=0;否则q=d。

问题三:sync电路图:仿真:该电路使输入信号与时钟同步,并产生稳定脉冲信号,进行节拍分配。

四、红路灯电路系统框图:问题分析:东西南北都有车时,状态转换时,东西绿灯时间长于60s;三秒后,南北通行,绿灯时间少于40s。

计数器不能使用同一个,但可以减少触发器数目实验2:数字钟环节二仿真时注意问题:1.仿真1小时需要多少时间?答:取决于输入信号clk的频率。

2.现在的时钟是秒时钟,实际系统的时钟是50MHz.那用50MHz的时钟的情况下,仿真1小时要多少时间?如何解决该问题?答:1/50000000*60*60=0.000072 s;可以将输入信号分频。

环节三1,复位如何输入的?按键防抖如何制作的?修改按键防抖的间隔会导致什么问题?答:复位信号由clock顶层文件输入,按键防抖思路是使按键信号通过触发器进行延迟,持续输入十个上升沿才认为按键一次,避免了抖动。

增加时间会导致按键时间边长,短按可能误认为是抖动。

2,数码管的显示使用组合逻辑输出好还是时序逻辑输出好?答:组合逻辑好环节四:闰年:y1和y2分别为输入的年高两位和年低两位,y为年份,当cout=1时为闰年,cou=0时为平年。

如果y2=0则y1能被4整除时为闰年:当y2!=0时y2能被4整除则为闰年。

后面通过将y1循环加100次再加上y2得到年份y。

process(y1,y2)variable i:integer;beginif y2=0 thenif (y1 rem 4)=0 thencout<='1';else cout<='0';end if;elsif y1 rem 4=0 thencout<='1';else cout<='0';end if;i:=y1;for n in 0 to 99 loopi:=i+i;end loop;y<=i+y2;end process;实验3:SRAM环节二、两种仿真的比较lab/lab3/step1/memtest.vhd用功能仿真和时序仿真两种方法,比较一下SS的状态数值的变化。

数字钟设计实验报告

数字钟设计实验报告

数字钟设计实验报告数字钟设计实验报告摘要:本实验旨在设计一款数字钟,通过数字显示来展示当前的时间。

通过对电路的搭建和编程的学习,我们成功地实现了数字钟的设计,并对其进行了测试和分析。

本实验不仅提高了我们的电路设计和编程能力,还加深了我们对数字时钟原理的理解。

引言:数字钟是一种常见的时间显示设备,广泛应用于生活中的各个领域。

它不仅具备准确显示时间的功能,还可以提供多种功能,如闹钟、定时器等。

本实验旨在通过设计一款数字钟,提高我们的电路设计和编程能力,并深入理解数字时钟的原理。

材料与方法:1. Arduino开发板2. 数码管3. 连接线4. 电阻5. 电容6. 蜂鸣器7. 按钮8. 电源实验步骤:1. 搭建电路:根据电路图连接Arduino开发板、数码管、蜂鸣器、按钮等元件,并接通电源。

2. 编写程序:使用Arduino开发环境,编写程序实现数字时钟的功能,包括时间的获取、显示和功能的切换。

3. 上传程序:将编写好的程序上传到Arduino开发板中,使其能够执行我们设计的功能。

4. 测试与分析:通过按下按钮,观察数码管的显示和蜂鸣器的声音,验证数字钟的功能是否正常。

实验结果:经过实验,我们成功地设计出了一款数字钟,并实现了以下功能:1. 显示当前的时间:数码管能够准确地显示当前的时间,包括小时和分钟。

2. 闹钟功能:通过设置闹钟时间和闹铃声音,实现了闹钟功能,当时间到达设定的闹钟时间时,蜂鸣器会发出声音提醒。

3. 定时器功能:可以设置定时器时间,当时间到达设定的时间时,蜂鸣器会发出声音提醒。

4. 亮度调节:通过调节电阻,可以实现数码管的亮度调节。

讨论与分析:在设计过程中,我们遇到了一些问题,如电路连接错误、程序逻辑错误等。

通过仔细检查和调试,我们逐步解决了这些问题,并最终成功地完成了数字钟的设计。

通过这个实验,我们不仅提高了对数字时钟原理的理解,还加深了对电路设计和编程的掌握。

结论:通过本实验,我们成功地设计了一款功能齐全的数字钟,并实现了时间显示、闹钟和定时器等功能。

数字钟电路实习报告

数字钟电路实习报告

一、实习目的通过本次实习,使学生掌握数字钟电路的设计与制作方法,熟悉数字电路的组成及工作原理,了解集成电路的引脚安排,掌握各芯片的逻辑功能及使用方法,提高动手能力和实际操作技能。

二、实习内容1. 数字钟电路原理及设计(1)数字钟电路原理数字钟电路主要由晶振、计数器、译码显示器、控制电路等组成。

晶振产生标准频率信号,经过计数器计数,然后由译码显示器显示时间。

控制电路负责对整个电路进行控制,如校时、报时等功能。

(2)数字钟电路设计本次实习采用74LS160、74LS90等集成电路进行设计。

具体电路如下:①晶振电路:选用32768Hz石英晶体振荡器,产生标准频率信号。

②计数器电路:采用74LS160计数器,构成24进制计数器,用于计时。

③译码显示器电路:采用共阴极LED显示器,显示时、分、秒。

④控制电路:采用74LS20与非门构成控制电路,实现校时、报时等功能。

2. 数字钟电路制作与调试(1)电路制作按照电路原理图,将元器件焊接在面包板上,注意焊接质量。

(2)电路调试①检查电路连接是否正确,无误后接通电源。

②观察LED显示器是否显示正常,若显示异常,检查电路连接。

③进行校时操作,调整时、分、秒,确保显示时间准确。

④进行报时功能测试,当时间到达整点前5秒,蜂鸣器发出蜂鸣声。

三、实习总结1. 通过本次实习,掌握了数字钟电路的设计与制作方法,了解了集成电路的引脚安排及逻辑功能。

2. 提高了动手能力和实际操作技能,培养了团队协作精神。

3. 了解了数字电路在实际应用中的重要性,为今后从事相关工作奠定了基础。

4. 发现了在制作过程中遇到的问题,如焊接质量、电路连接等,通过分析原因,找到了解决办法。

四、实习心得体会1. 在实习过程中,充分体会到理论知识与实践操作相结合的重要性。

只有将所学知识应用于实际,才能真正提高自己的动手能力。

2. 在遇到问题时,要善于分析原因,查找问题所在,积极寻求解决办法。

这样,不仅可以提高自己的解决问题的能力,还可以培养自己的耐心和毅力。

数字钟实习报告

数字钟实习报告

实习报告:数字钟设计与实现一、实习目的本次实习的主要目的是通过设计和实现一个数字钟,深入理解数字电路的基本原理和应用,提高自己的实际操作能力和解决问题的能力。

同时,通过实习过程,了解电子钟表的工作原理,掌握数字电路的设计方法和流程。

二、实习内容1. 数字钟的设计:以单片机为核心,设计一个具有小时、分钟、秒数显示功能的数字钟。

2. 数字电路的实现:使用数字电路元件,如电阻、电容、二极管、三极管等,搭建数字钟的电路。

3. 程序编写:编写程序代码,实现数字钟的功能。

4. 系统调试:对数字钟进行调试,确保其正常运行。

三、实习过程1. 设计阶段:在老师的指导下,学习数字电路的基本原理,了解数字钟的设计方法。

通过查阅资料,确定数字钟的显示方式、时钟源等参数。

2. 实现阶段:根据设计方案,购买所需元件,搭建数字钟的电路。

在搭建过程中,遇到一些问题,如电路连接错误、元件损坏等,通过请教老师和同学,逐步解决问题。

3. 编程阶段:学习单片机的编程语言,如C语言,编写数字钟的程序代码。

在编程过程中,遇到一些难题,如时序问题、数据处理等,通过查阅资料、请教老师和同学,克服困难,完成编程。

4. 调试阶段:对数字钟进行调试,发现一些问题,如显示不稳定、时间误差等,分析原因,修改程序和电路,直至数字钟正常运行。

四、实习收获1. 理论知识:通过实习,掌握了数字电路的基本原理和单片机编程技术,为今后的学习和工作奠定了基础。

2. 实际操作能力:在实习过程中,学会了使用电子工具,如万用表、示波器等,提高了自己的实际操作能力。

3. 团队协作能力:在实习过程中,与同学们共同解决问题,分工合作,培养了团队协作能力。

4. 解决问题能力:在实习过程中,遇到许多问题,如电路连接错误、编程难题等,通过请教老师、查阅资料和与同学讨论,逐步解决问题,提高了自己的解决问题的能力。

五、实习总结通过本次实习,我对数字电路和单片机编程有了更深入的了解,提高了自己的实际操作能力和解决问题的能力。

数字时钟设计实验报告

数字时钟设计实验报告

数字时钟设计实验报告一、实验目的本次数字时钟设计实验的主要目的是通过运用数字电路的知识和技能,设计并实现一个能够准确显示时、分、秒的数字时钟。

通过这个实验,加深对数字电路中计数器、译码器、显示器等基本组件的理解和运用,提高电路设计和调试的能力。

二、实验原理数字时钟的基本原理是通过对时钟信号进行计数和分频,将时间信息转换为数字信号,并通过译码器和显示器进行显示。

1、时钟信号产生通常使用石英晶体振荡器产生稳定的高频时钟信号,然后通过分频电路将其分频为适合计数的低频信号,如 1Hz 信号用于秒的计数。

2、计数器使用二进制计数器对时钟信号进行计数,分别实现秒、分、时的计数。

秒计数器满60 向分计数器进位,分计数器满60 向时计数器进位。

3、译码器将计数器输出的二进制编码转换为能够驱动显示器的信号,如七段数码管译码器。

4、显示器使用七段数码管或液晶显示器来显示时、分、秒的数字信息。

三、实验器材1、数字电路实验箱2、集成电路芯片:计数器芯片(如 74LS160)、译码器芯片(如74LS47)、与非门芯片(如 74LS00)等3、七段数码管4、电阻、电容、导线等四、实验步骤1、设计电路原理图根据实验原理,使用数字电路设计软件(如 Protel)或手绘的方式设计出数字时钟的电路原理图。

在设计过程中,要合理安排芯片的布局和连线,确保电路的正确性和稳定性。

2、芯片选择与引脚连接根据电路原理图,选择合适的集成电路芯片,并按照芯片的引脚功能进行正确的连接。

在连接过程中,要注意引脚的极性和连接的可靠性,避免虚焊和短路。

3、电路搭建与调试将连接好的芯片和元器件安装在数字电路实验箱上,按照电路原理图进行布线。

接通电源后,使用示波器和逻辑分析仪等工具对电路的各个节点进行测试和调试,观察时钟信号、计数器输出、译码器输出等是否正常。

4、故障排除如果电路出现故障,如数码管不显示、显示错误、计数不准确等,要根据故障现象进行分析和排查。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安交通大学实验报告
数字钟设计
一、设计内容与要求
1、在basys2开发板上运行有关程序。

2、设计一个完整的数字钟,小时和分钟用数码管显示,秒用发光二极管闪烁显示,每秒闪烁一次。

3、增加清零和校时功能。

二、总体设计思路
1、采用421BCD计数,并在一个模块中实现时钟功能的Verilog程序。

2、由主时钟(50MHZ)分频得到秒信号,记秒到60时分加1,秒清零,几时到60时,时加1,分清零,记时到24时,时清零。

3、由四个数码管显示小时和分钟,LED M5作为秒信号显示。

4、通过数码管下方对应的两个的两个开关进行校时,按下时对应分或时加一。

5、通过开关P11实现清零,高电平时时钟清零。

三、源代码
module Clock(
input wire clk,
input wire clr,
input wire set1,
input wire set2,
output Second_Flash,
output reg [6:0] a_to_g,
output reg [3:0] an
);
//中间变量定义
//reg [3:0] LED0_num,LED1_num,LED2_num,LED3_num;
reg [1:0] s;
reg [3:0] digit;
reg [16:0] clkdiv; //(1FFFF)*20ns=2.6ms
reg [26:0] q1; //设一足够长的计数器
reg sec;
reg [3:0] Second_L;
reg [3:0] Second_H;
reg [3:0] Minute_L;
reg [3:0] Minute_H;
reg [3:0] Hour_L;
reg [2:0] Hour_H;
//动态数码管扫描显示
always @ ( * )
begin
an = 4'b1111; //禁止所有数码管显示
s <= clkdiv[16:15]; //间隔2.6ms使能An
an[s] = 0; //根据s使能数码管其中之一
case (s) //根据s取对应的数码管上要显示的数据
0: digit <= Hour_H[2:0];
1: digit <= Hour_L[3:0];
2: digit <= Minute_H[3:0];
3: digit <= Minute_L[3:0];
default: digit <= Hour_H[2:0];
endcase
case (digit) // 7段译码表
0: a_to_g = 7'b0000001;
1: a_to_g = 7'b1001111;
2: a_to_g = 7'b0010010;
3: a_to_g = 7'b0000110;
4: a_to_g = 7'b1001100;
5: a_to_g = 7'b0100100;
6: a_to_g = 7'b0100000;
7: a_to_g = 7'b0001111;
8: a_to_g = 7'b0000000;
9: a_to_g = 7'b0000100;
'hA: a_to_g = 7'b0001000;
'hB: a_to_g = 7'b1100000;
'hC: a_to_g = 7'b0110001;
'hD: a_to_g = 7'b1000010;
'hE: a_to_g = 7'b0110000;
'hF: a_to_g = 7'b0111000;
default: a_to_g = 7'b0000001; // 0
endcase
end
// 主时钟计数: 50MHz的时钟,周期为20ns,计数到1ffffh时的时长2621420ns,约2.6ms
always @ (posedge clk)
begin
clkdiv <= clkdiv + 1;
end
// 时钟程序:计数到50000000为1s,计秒得分always @ (posedge clk or posedge clr )
begin
if (clr )
q1 <= 0;
else if (Second_L>=10)
begin
Second_L<=0;
Second_H<=Second_H+1;
end
else if(Second_H>=6)
begin
Second_L<=0;
Second_H<=0;
Minute_L<=Minute_L+1;
end
else if (Minute_L>=10)
begin
Minute_L<=0;
Minute_H<=Minute_H+1;
end
else if(Minute_H>=6)
begin
Minute_L<=0;
Minute_H<=0;
Hour_L<=Hour_L+1; end
else if(Hour_L>=10)
begin
Hour_L<=0;
Hour_H<=Hour_H+1;
end
else if(Hour_L>=4&&Hour_H>=2)
begin
Hour_L<=0;
Hour_H<=0;
end
else if(set1&&q1==10000000)
begin
q1<=0;
Hour_L<=Hour_L+1;
end
else if(set2&&q1==10000000)。

相关文档
最新文档