数字日历电路的设计..

合集下载

具有温度指示的数字万年历设计方案

具有温度指示的数字万年历设计方案

具有温度指示的数字万年历设计方案1 绪论随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。

由其是单片机技术的应用产品已经走进了千家万户。

其中电子万年历就是一个典型的例子。

而且在万年历的基础上还可以扩展其它的实用功能,比如温度计。

万年历是采用数字电路实现对.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。

因此,研究万年历及扩大其应用,有着非常现实的意义。

市场上有许多电子钟的专用芯片如:LM8363 、LM8365 等,但它们功能单一,电路连接复杂,不便于调试制作。

但是考虑到用单片机配合时钟芯片,可制成功能任意的电子钟,而且可以做到硬件简单、成本低廉。

所以本系统采用了以广泛使用的单片机AT89S52 技术为核心,配合时钟芯片DS1302 。

软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LCD 显示电路、键盘电路,使人机交互简便易行,此外结合音乐闹铃电路、看门狗和供电电路。

本方案设计出的数字钟可以显示时间、设置闹铃功能之外。

本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程, 其次,详细阐述了程序的各个模块和实现过程。

本设计以数字集成电路技术为基础,单片机技术为核心。

本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。

本设计中我重点研究实现了单片机+ 时钟芯片这种模式的万年历,从原理上对单片机和时钟芯片有了深一步的认识,这些基本功能完成后,在软件基础上实现时间显示。

电子万年历的电路原理与设计

电子万年历的电路原理与设计

湖南信息科学职业学院毕业论文(设计)电子万年历电路原理与设计学生姓名:刘文明学号:08120126年级专业:二00八级计算机控制技术专业指导老师:凌双明湖南·长沙提交日期:2011年5月目录摘要 (3)1前言 (3)2设计要求与方案论证 (3)2.1设计要求 (4)2.2系统基本方案选择和论证 (4)2.2.1 显示模块选择方案和论证 (4)2.2.2单片机串口通信的选择方案和论证 (4)3 系统的硬件设计与实现 (5)3.1 电路设计框图 (5)3.1.1万年历显示设计框图 (5)3.1.2液晶显示设计框图 (5)3.1.3单片机之间、电脑单片机联机设计图 (5)3.2 系统硬件概述 (6)3.3主要单元电路的设计 (6)3.3.1万年历单片机主控制模块的设计 (7)3.3.2光控开关模块的设计 (7)3.3.3万年历显示模块的设计 (7)3.3.4温度感应模块的设计 (8)3.3.5串口通信模块的设计 (9)4结束语 (9)参考文献 (10)附录 (10)附录1系统使用说明书 (11)附录2万年历实物图 (12)电子万年历的电路原理与设计作者:刘文明指导老师:凌双明(湖南信息科学职业学院电子信息系2008级计算机控制技术专业,长沙410128)摘要:随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中。

日历是人们不可或缺的日常用品。

但一般日历都为纸制用品,使用不便,寿命不长。

电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。

万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

关键词:单片机89C52,串口通信,控制模块,显示模块,发声模块, 12864LCD 液晶1.前言万年历可以显示年、月、日、时、分、秒、星期等,具有日期和时间校准、闰年补偿、温度显示、闹钟、光控开关,秒表等多种功能,万年历串口通信具有电脑一键校准时间,利用电脑联机,设置心情语悟,增加名片等功能。

《EDA技术及应用》数字日历电路的设计

《EDA技术及应用》数字日历电路的设计

《EDA技术及应用》数字日历电路的设计1 系统设计1.1 设计要求1.1.1 设计任务设计并制作一台数字日历。

1.1.2 性能指标要求①用EDA实训仪的I/O设备和PLD芯片实现数字日历的设计。

②数字日历能够显示年、月、日、时、分和秒。

③用EDA实训仪上的8只八段数码管分三屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年(如002022),一段时间段内月、日(如000101),然后在另一时间段内显示时、分、秒(如120000),两个时间段能自动倒换。

④数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时,依此类推。

1.2 设计思路及设计框图1.2.1设计思路通过EDA课程的学习,总体设计中包括显示部分、计时部分、控制部分、校时部分、年月日部分以及分频功能。

之后运用Verilog HDL语言编写60进制、24进制、年月日模块(nyr2022.)、控制模块(contr)、校时选择模块(mux_4)、显示选择模块(mux_16)和分频器的源程序,分别生成元件符号,然后将各个模块连接起来画成原理图再下载到实训箱上,调节开关及按钮来实现数字日历的功能。

1.2.2总体设计框图2 各个模块程序的设计1.1 年月日模块clrn是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;jn、jy和jr分别是校年、校月、校日输入端;qn[15..0]、qy[7..0]、qr[7..0]分别是年、月、日的输出端。

1.2 控制模块控制模块上的clk给的是1s时钟脉冲,k是一个两位的控制输出端,所以k可以有4个值,它与显示模块共同控制年月日,时分秒,月日显示的切换。

1.3 校时选择模块①当k=0时,开关j1,j2,j3校秒时分然后将信号分别送到jsq模块的jm(校秒)、jf(校分)、js(校时)。

②当k=1时,开关j1,j2,j3校年月日然后将信号分别送到nyr模块的jr(校日)、jy(校月)、jn(校年)。

数电课程设计数字日历电路

数电课程设计数字日历电路

题目:数字日历电路班级:姓名:数字日历电路一、设计任务及要求:1、用5个数码管分别显示月、日、星期;2、月、日的计数器显示均从1开始,每月按30天算;3、对星期的计数显示从1到6再到日(日用8代替)。

二、方案设计与论证:日历是一种日常使用的出版物,用于记载日期等相关信息。

每页显示一日信息的叫日历,每页显示一个月信息的叫月历,每页显示全年信息的叫年历。

有多种形式,如挂历、座台历、年历卡等,如今又有电子日历。

逢年过节,往往会送亲友日历已显亲情友情可日历在现代社会中是很重要的。

而纸制日历对森林保护不利,因此设计电子日历意义重大。

在设计日历倒计时器时,采用了模块化的思想,将日历分为三个部分:日期、月份及年份,使得设计简单、易懂。

本设计能进行月、日、星期的的计数,在社会生活中具有实际的应用价值。

下面就是我们组设计电子日历的主要思路:本数字日历电路计数显示电路和控制电路组成,计数显示电路主要由同步十进制计数器74LS160构成日期、月份和星期计数器,然后通过译码器数码管显示出来控制调节电路则用了组合控制逻辑电路去控制日期计数器及月计数器的置数端和使能端,从而实现日期和月份的调节功能。

星期显示在脉冲作用下,从星期一到星期日循环计数,从而形成星期随着日期循环显示。

综上,该方案是具体可行的。

三、设计原理及框图:本数字日历电路主要由五个加计数器160、五个48译码器、显示器、控制开关构成。

它们的工作原理是:用两片十进制计数器74LS160同步预置数(高位置入0000,低位置入0001)构成日期计数器,使其每次从一开始计数,从日期计数器的输出三十这个信号使其同时给月计数器的CP端信号使其计数,最后给日计数器的低位以信号源使其计数,同时在脉冲的作用下,使星期循环计数,随着日期的变化而变化。

74LS48译码器将信号传给显示器显示数据。

四、各单元电路设计与分析:1、日期计数显示电路:日期计数器采用两片十进制计数器74LS160同步预置数构成,控制置数端使其每次从1开始计数(对应每月第一天)。

数字日历电路的设计-EDA实训

数字日历电路的设计-EDA实训

成绩批阅教师日期桂林电子科技大学实训报告2016-2017学年第1学期学院海洋信息工程学院课程 EDA综合实训姓名钟朝林学号 1416030218 指导老师覃琴日期 2016/12/29实训题目:数字日历电路的设计1 概述1.1 设计要求1.1.1 设计任务设计并制作一台数字日历。

1.1.2 性能指标要求①用EDA实训仪的I/O设备和PLD芯片实现数字日历的设计。

②数字日历能够显示年、月、日、时、分和秒。

③用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日(如20080101),然后在另一时间段内显示时、分、秒(如00123625),两个时间段能自动倒换。

④数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时,依此类推。

1.2 总体设计基本原理及框图1.2.1 基本原理日历主要由年月日模块、时分秒模块、控制模块、显示模块、校时模块组成。

采用3个公用按钮j1、j2、和j3完成时分秒或年月日的校时,用8只七段数码管分时完成时分秒或年月日的显示。

设计电路的计时器模块(jsq24)用于完成一天的24小时计时;年月日模块接收计时器模块送来的“天”脉冲进行计数,得到日月年的显示结果,控制模块产生控制信号k,控制数码显示器显示年月日,还是时分秒,或者自动轮流显示;校时选择模块在k信号的控制下,选择将j1、j2和j3这3个校时按钮产生的信号是送到计时器模块的校秒、校分和校时输入端,还是送到年月日模块的校天、校月、校年输入端;显示选择模块在k信号的控制下,选择是将计时器模块的时、分、秒状态信号,还是将年月日模块的年、月、日状态信号送到数码管显示器显示。

1.2.2 总体框图2 系统软件设计分析2.1年月日模块module r(clrn,clk,jn,jy,jr,qn,qy,qr); //年月日模块input clrn,clk,jn,jy,jr;output reg[15:0] qn;reg [15:0] qn1;output reg[7:0] qy,qr;reg clkn,clky;reg[7:0] date;reg clkn1,clkn2,clkn3;initial begin clkn1=1;clkn2=1;clkn3=1;endinitial begin qn='h2011;qn1=2011;qy=1;qr=1;endalways @(posedge (clk^jr) or negedge clrn)// 日计时模块beginif(~clrn)qr=1;else beginif(qr==date)begin qr=1; clky=1;endelse begin qr=qr+1;clky=0;endif(qr[3:0]=='ha)beginqr[3:0]=0;qr[7:4]=qr[7:4]+1;endendendalways @(posedge (clky^jy) or negedge clrn)//月计时模块beginif(~clrn) qy=1;else beginif(qy=='h12) begin qy=1;clkn=1;endelse begin qy=qy+1;clkn=0;endif(qy[3:0]=='ha)beginqy[3:0]=0;qy[7:4]=qy[7:4]+1;endendendalwayscase(qy)'h01:date='h31;'h02:beginif((qn1%4==0)&(qn1%100 != 0)|(qn1%400==0))date='h29;else date='h28;end'h03:date='h31;'h04:date='h30;'h05:date='h31;'h06:date='h30;'h07:date='h31;'h08:date='h31;'h09:date='h30;'h10:date='h31;'h11:date='h30;'h12:date='h31;default: date='h30;endcaseendalways @( posedge (clkn^jn) or negedge clrn) //年计时模块 beginif(~clrn)begin qn[3:0]=1;qn1=2011;endelse begin if(qn[3:0]==9)qn[3:0]=0;else begin qn[3:0]=qn[3:0]+1;qn1=qn1+1;endif(qn[3:0]==9)clkn1=0;else clkn1=1;endendalways @(posedge clkn1 or negedge clrn)beginif(~clrn)qn[7:4]=1;else begin if(qn[7:4]==9) qn[7:4]=0;else qn[7:4]=qn[7:4]+1;if(qn[7:4]==9) clkn2=0;else clkn2=1;endendalways @(posedge clkn2 or negedge clrn)beginif(~clrn)qn[11:8]=0;else begin if(qn[11:8]==9) qn[11:8]=0;else qn[11:8]=qn[7:4]+1;if(qn[11:8]==9) clkn3=0;else clkn3=1;endendalways @(posedge clkn3 or negedge clrn)if(~clrn)qn[15:12]=2;else if(qn[15:12]==9) qn[15:12]=0;else qn[15:12]=qn[15:12]+1;endendmodule2.2时分秒模块module cnt60(clk,clrn,j,q,cout);//分和秒计时input clk,clrn,j;output reg[7:0] q;output reg cout;always @(posedge clk^j or negedge clrn )beginif (~clrn) q=0;else beginif (q=='h59) begin q=0;cout=1;endelse begin q=q+1;cout=0;endif (q[3:0]=='ha) beginq[3:0]=0;q[7:4]=q[7:4]+1;endendendendmodulemodule cnt24(clk,clrn,j,q,cout);//小时计时input clk,clrn,j;output reg[7:0] q;output reg cout;always @(posedge clk^j or negedge clrn )beginif (~clrn) q=0;else beginif (q=='h23) begin q=0;cout=1;endelse begin q=q+1;cout=0;endif (q[3:0]=='ha) beginq[3:0]=0;q[7:4]=q[7:4]+1;endendendendmodule2.3控制模块module contr(clk,k1,k2,k);input clk,k1,k2;output reg k;reg [3:0] qc;reg rc;always @(posedge clk)begin qc=qc+1;if (qc<8) rc=0;else rc=1;case ({k1,k2})0:k=rc; //八秒显示年月日八秒显示时分秒的自由转换 1:k=0;//显示并且校准时分秒2:k=1; //显示并且校准年月日3:k=rc;endcaseendendmodule2.4显示模块module mux_16(k,qm,qf,qs,qr,qy,qn,q);input k;input [7:0]qm,qf,qs,qr,qy;input [15:0] qn;output reg [31:0]q;alwaysbeginif (k==0) beginq[31:24]=0;q[23:0]={qs,qf,qm};endelse q={qn,qy,qr};endendmodule2.5校时模块module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3); input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;alwaysbeginif (k==0) {jm,jf,js}={j1,j2,j3};else {jr,jy,jn}={j1,j2,j3};endendmodule2.6闹钟模块module naozhong(qs,qf,led,zt);input zt;input[7:0] qs,qf;output led;reg led;alwaysbeginif (qs=='h06&&qf=='h01) //6:01闹钟开始闪烁led=1;elseled=0;if(zt==1) led=0; // 在任意时刻都可以关掉闹钟endendmodule2.7分频器模块module FENP(clk,newclk);input clk;output reg newclk;reg[24:0] cnter;always @(posedge clk)beginif(cnter<20000000) cnter=cnter+1;else cnter=0;if (cnter<10000000) newclk=1;elsenewclk=0;endendmodule3 系统测试(调试)3.1 测试仪器与设备计算机,EDA实训仪。

电路课程设计数字日历

电路课程设计数字日历

电路课程设计数字日历一、教学目标本章课程的设计目标是使学生掌握数字日历的电路设计与实现。

在知识目标上,期望学生能够理解数字电路的基本组成原理,掌握常用的逻辑门电路及其功能,了解时序逻辑电路的构成及工作原理。

技能目标方面,学生应能够运用基本的逻辑门电路设计简单的数字电路,并利用时序逻辑电路实现数字日历的功能。

情感态度价值观目标上,通过课程的学习,培养学生对电子技术的兴趣,提高学生解决实际问题的能力,并培养学生的创新思维和团队协作精神。

二、教学内容本章的教学内容主要包括数字电路的基本概念、逻辑门电路、时序逻辑电路以及数字日历的设计与实现。

具体到教材的章节,包括第3章的数字电路基础,第4章的逻辑门电路,第5章的时序逻辑电路,以及第6章的数字日历设计。

三、教学方法为了实现教学目标,将采用多种教学方法相结合的方式进行教学。

首先,通过讲授法向学生传授数字电路的基本知识和设计原理。

其次,利用讨论法引导学生深入理解逻辑门电路和时序逻辑电路的工作原理,并通过案例分析法分析数字日历的实际设计案例。

此外,还将运用实验法,让学生亲自动手设计并实现数字日历电路,从而加深对理论知识的理解和应用。

四、教学资源教学资源的选择和准备将围绕教学目标和内容进行。

教材方面,选用《数字电路与逻辑设计》作为主教材,辅助以《数字电路实验指导书》进行实践操作。

参考书目包括《数字电路与应用》和《数字电路设计原理》。

多媒体资料方面,准备相关的教学PPT和视频教程,以便学生课后自学。

实验设备方面,确保每个学生都能在实验室中使用数字电路实验板进行实践操作。

五、教学评估教学评估是检验教学效果的重要手段。

本课程的评估方式包括平时表现、作业、考试等多个方面。

平时表现主要评估学生的课堂参与度、提问回答、小组讨论等,旨在培养学生的主动思考和沟通能力。

作业方面,将布置与课程内容相关的设计项目和电路实验,要求学生在规定时间内完成,以此检验学生对知识的理解和应用能力。

毕业设计---基于单片机的多功能电子万年历的设计

毕业设计---基于单片机的多功能电子万年历的设计

基于单片机的多功能电子万年历的设计摘要随着科技的快速发展,自从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。

本文主要介绍了基于单片机的智能电子万年历的研制,该万年历能够实时显示公历年、月、日、时、分、秒,以及对应的农历日期、24节气、天干地支、闹铃功能,同时还能够实时测取环境温度。

本系统的硬件部分主要由A VR单片机、时钟芯片、温度传感器等部件组成,文中给出了详细的硬件设计实现及相关电路图;软件部分主要包含公历转农历的算法设计模块、显示模块、时间的读取、温度的检测模块,按键的扫描输入模块等,文中给出了系统的软件程序流程图及各功能模块的软件程序清单,最后介绍了整体系统的设计实现、仿真及调试过程,给出了下一步的改进方案等。

关键词:单片机;液晶技术;万年历;时钟芯片Design of Multifunctional digital Perpetual Calendar Based on MCUAbstractWith the development of technology,Since the concept of the sun, Baizhong, andnow the electronic bell,human beings continue to study and constant innovation record。

This paper-based Microcontroller Development of Intelligent electronic calendar, The calendar can display real-time in the calendar year, month, day, hours, minutes and seconds,a nd the correspond ing date of the Lunar New Year, 24 Solar Terms,at the same time also to real-time measurement from the ambient temperature,In addition to the user through the keyboard input years of history,for the correspond ing period of the Lunar.The system hardware from some of the major A VR microcontroller, a number of digital control, decoder, the clock chip,temperature sensors and other components,the paper gives a detailed design and implementation of hardware and related circuit;Software contains some of the major Lunar calendar to the algorithm design module,dynamic digital display modules,time to read,temperature detection module,Press enter the scanning module.In this paper, the system software modules and flow chart of the list of software programs,Finally, the realization of the overall system design, simulation and debugging process, the next step is the improvement programmes.Keywords:MCU;crystal technology;Calendar;Clock chip目录引言 (1)第1章绪论 (2)1.1课题的背景与意义 (2)1.2 数字万年历的现状与发展 (2)1.3 论文的主要工作及章节安排 (3)1.4 本章小结 (3)第2章方案论证比较.............................................................................. (4)2.1 多功能数字万年历系统概述 (4)2.2计时方案 (4)2.3温度检测方案 (5)2.4显示方案 (5)2.5本章小结 (5)第3章系统硬件设计 (6)3.1 主控制器ATmega16 单片机介绍 (6)3.2 时钟电路DS1302 (6)3.3 温度检测DS18B20 (7)3.4 动态显示 (8)3.5 键盘接口 (8)3.6 语音闹铃模块 (8)3.7 电源设计 (9)3.8本章小结 (11)第4章系统软件设计 (12)4.1 公历计算显示程序设计 (13)4.1.1 DS1302 内部寄存器 (13)4.1.2 时间读取程序设计 (15)4.2 农历转换程序设计 (16)4.2.1 公历转农历算法研究 (16)4.2.2 干支纪年简介 (18)4.2.3 公历转农历程序 (18)4.3 温度测量程序设计 (20)4.3.1 DS18B20 的测温原理 (20)4.3.2 温度程序 (21)4.4 二十四节气算法研究 (23)4.5系统仿真 (24)4.6本章小结 (25)结论与展望 (26)致谢 (27)参考文献 (28)附录 A 电子万年历原理图 (29)附录 B 外文文献与译文 (30)英文原文: (30)中文译文: (33)附录 C 参考文献题录及摘要 (35)附录 D 电子万年历源程序 (37)插图清单图2-1 数字万年历系统框图 (4)图3-1 DS1302与ATmega16连接图 (7)图3-2 DS18B20与AtMEGA16连接图 (8)图3-3 报时电路 (9)图3-4 稳压电源原理图 (10)图3-5 电源电路 (10)图4-1 系统程序流程图 (13)图4-2 公历程序流程图 (14)图4-3 DS18B20测温原理 (21)表格清单表3-1 LCD12864显示内容 (8)表4-1 DS1302的寄存器及其控制字 (14)表4-2 RS位配置 (15)引言人类的日常生活离不开时间,任何具有周期性变化的自然现象都可以用来测量时间。

电子信息工程之数字万年历课程设计方案

电子信息工程之数字万年历课程设计方案

电子信息工程之数字万年历课程设计方案目录1、系统概述 (5)2、系统硬件设计 (5)2.1单片机控制系统原理 (5)2.2 硬件的设计总框图 (6)2.3 各种功能模块硬件设计及实现 (6)2.3.1 、AT89S52单片机 (7)2.3.2、DS1302实时时钟芯片 (10)2.3.3、温度模块 (13)2.3.4、1602液晶显示器 (15)3、系统程序设计 (18)3.1主程序流程图 (18)3.2中断服务流程图 (19)3.3程序 (21)设计总结 (41)参考文献 (42)附录 (43)1、系统概述本设计主要分为硬件电路设计和软件实现两大部分。

硬件电路设计采用模块设计:中央处理电路、时钟电路、温度测量电路三大部分;软件采用C语言编程实现,设计采用按功能模块划分,包括:主程序、显示程序、温度测量程序、时钟程序等。

在中央处理器上我们采用MCS-51单片机,该单片机是集CPU ,RAM ,ROM ,计数和多种接口于一体的微控制器。

自20世纪70年代问世以来,以其极高的性能价格比,受到人们的重视和关注。

它体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、开发较为容易,广泛应用于智能生产和工业自动化上。

在时间功能上主要依靠实时时钟芯片DS1302来完成大部分功能,DS1302是具有涓细电流充电能力的低功耗实时时钟电路,它以其接口简单、价格低廉、使用方便,被广泛地采用。

它的主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。

采用普通32.768kHz晶振。

所以用此款芯片来实现时间功能是完全能满足电路的要求。

温度方面工作由数字式温度传感器DS18B20来完成,这款温度传感器是具有线路简单,体积小,方便易用等特点,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。

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

桂林电子科技大学信息科技学院《EDA技术与应用》实训报告学号姓名指导教师:2012 年 6 月22 日题目:数字日历电路的设计1.系统设计1.1设计要求1.1.1设计任务用EDA的方法设计一个数字日历1.1.2性能指标①用EDA实训仪的I/O设备和PLD芯片实现数字日历的设计。

②数字日历能够显示年、月、日、时、分、秒。

③数字日历有复位的功能,有校年、月、日和校时、分、秒的功能,通过一个开关来转换时校年、月、日还是校时、分、秒。

④此数字日历具有闹钟的功能,在6:01将开启闹钟,用一个LED灯表示,可以在任意时刻关闭闹钟。

1.2设计思路及框图1.2.1设计思路日历主要由年月日模块和时分秒模块组成,由分频器提供脉冲,再加上一个控制模块实现控制选择校准时分秒还是校准年月日。

也可以实现时分秒和年月日的八秒自由转换。

再加上一个闹钟,在6:01的时候闹钟开启,并由一个开关控制,在任意时间都可以关掉闹钟。

1.2.2总体设计框图2各模块程序设计2.1时分秒计时器模块:module cnt60(clrn,clk,q,j,cont); //秒和分计时input clrn,clk,j;output reg [7:0] q;output reg cont;always @(posedge clk^j or negedge clrn)beginif(~clrn) q=0;else beginif(q=='h59) q=0;else q=q+1;if(q[3:0]=='ha) begin q[3:0]=0;q[7:4]=q[7:4]+1;end if(q=='h59) cont=1;else cont=0;endendendmodulemodule cnt24(clrn,clk,q,j,cont); //小时计时input clrn,clk,j;output reg [7:0] q;output reg cont;always @(posedge clk^j or negedge clrn)beginif(~clrn) q=0;else beginif(q=='h23) q=0;else q=q+1;if(q[3:0]=='ha) begin q[3:0]=0;q[7:4]=q[7:4]+1;endif(q=='h23) cont=1;else cont=0;endendendmodule2.2年月日模块module nyr2009(clrn,clk,jn,jy,jr,qn,qy,qr); //年月日模块input clrn,clk,jn,jy,jr;output [15:0] qn;output [7:0] qy,qr;reg [15:0] qn;reg [7:0] qy,qr;reg clkn,clky;reg [7:0] date;reg clkn1,clkn2,clkn3;initial begin clkn1=1;clkn2=1;clkn3=1;endinitial begin qn='h2000;qy=1;qr=1;endalways @(posedge (clk^jr) or negedge clrn) // 日计时模块beginif (~clrn) qr=1;else beginif (qr==date) qr=1;else qr=qr+1;if (qr[3:0]=='ha) beginqr[3:0]=0; qr[7:4]=qr[7:4]+1;endif (qr==date) c lky = 1;else clky = 0;endendalways @(posedge clky^jy or negedge clrn) //月计时模块beginif (~clrn) qy=1;else beginif (qy=='h12) qy=1;else qy=qy+1;if (qy[3:0]=='ha) beginqy[3:0]=0;qy[7:4]=qy[7:4]+1;endif (qy=='h12) clkn = 1;else clkn = 0;endendalwaysbegincase (qy)'h01: date='h31;'h02: b eginif ((qn%4==0)&(qn%100 != 0)|(qn%400==0)) date='h29;else date='h28; end'h03: date='h31;'h04: date='h30;'h05: date='h31;'h06: date='h30;'h07: date='h31;'h08: date='h31;'h09: date='h30;'h10: date='h31;'h11: date='h30;'h12: date='h31;default :date='h30;endcaseendalways @(posedge (clkn^jn) or negedge clrn ) //年计时模块beginif (~clrn) qn[3:0]=0;else begin if(qn[3:0]==9) qn[3:0]=0;else qn[3:0]=qn[3:0]+1;if (qn[3:0]==9) clkn1=0;else clkn1=1;endendalways @(posedge clkn1 or negedge clrn )beginif (~clrn) qn[7:4]=0;else begin if(qn[7:4]==9) qn[7:4]=0;else qn[7:4]=qn[7:4]+1;if (qn[7:4]==9) clkn2=0;else clkn2=1;endendalways @(posedge clkn2 or negedge clrn )beginif (~clrn) qn[11:8]=0;else begin if(qn[11:8]==9) qn[11:8]=0;else qn[11:8]=qn[11:8]+1;if (qn[11:8]==9) clkn3=0;else clkn3=1;endendalways @(posedge clkn3 or negedge clrn )beginif (~clrn) qn[15:12]=2;else if(qn[15:12]==9) qn[15:12]=0;else qn[15:12]=qn[15:12]+1;endendmodule2.3校时模块module mux_4(k,jm,jf,js,jr,jy,jn,j1,j2,j3); input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;alwaysbeginif (k==0) {jm,jf,js}={j1,j2,j3};else {jr,jy,jn}={j1,j2,j3};endendmodule2.4分频器模块同时给时分秒和闹钟送入脉冲module FENP(clk,newclk);input clk;output reg newclk;reg[24:0] cnter;always @(posedge clk)beginif(cnter<20000000) cnter=cnter+1;else cnter=0;if (cnter<10000000) newclk=1;elsenewclk=0;endendmodule2.5控制器模块显示年月日和显示时分秒直接的转换控制module contr(clk,k1,k2,k);input clk,k1,k2;output reg k;reg [3:0] qc;reg rc;always @(posedge clk)begin qc=qc+1;if (qc<8) rc=0;else rc=1;case ({k1,k2})0:k=rc; //八秒显示年月日八秒显示时分秒的自由转换1:k=0; //显示并且校准时分秒2:k=1; //显示并且校准年月日3:k=rc;endcaseendendmodule2.6闹钟模块module naozhong(qs,qf,led,zt);input zt;input[7:0] qs,qf;output led;reg led;alwaysbeginif (qs=='h06&&qf=='h01) //6:01闹钟开始闪烁led=1;elseled=0;if(zt==1) led=0; // 在任意时刻都可以关掉闹钟endendmodule2.7数码管显示模块module mux_16(k,qm,qf,qs,qr,qy,qn,q);input k;input[7:0] qm,qf,qs,qr,qy;input[15:0] qn;output reg [31:0] q;alwaysbeginif (k==0) beginq[31:24]=0;q[23:0]={qs,qf,qm};endelse q={qn,qy,qr};endendmodule3.调试过程在调试过程中出现很多问题,在时分秒里加入分频器可以实现计时,但是闹钟就不能实现1秒钟闪烁一次的功能,当给闹钟加上一个分频器的时候,时分秒模块也不能自动计时。

首先认识到必须只能有一个分频器,而且还能同时给两个提供脉冲。

所以就删除了时分秒里的分频器,在总的图中加入一个分频器,同时给两个提供脉冲,这样两个功能都可以同时实现。

4.功能测试4.1 测试仪器与设备电脑,EDA实训仪。

4.2 性能指标测试S0、S1控制手动切换和自动切换,当S0、S1都往上拨或都往下拨都是自动切换,SO 上拨S1下拨是显示并可以校准时分秒的,反之是显示和校准年月日的。

K8、K7、K6分别是校准年月日或时分秒的。

K0是复位功能5 实训心得体会通过这次EDA实训,把课堂上学习的知识又巩固了一遍,也更加熟悉了对quartusII 软件的使用。

这次我们小组选作数字日历这个题目,创新点在于闹钟模块,可以实现闹钟的功能。

通过小组的分工合作,把大家的思路整合在一起,在一起分析程序的使用,互相学习,更加理解了程序的用法。

EDA的功能很强大,去除了传统算法的复杂,是程序简单化,几个语句就可以实现想要的功能。

在我们所做的日历中,分别用到计数,分频,选择器这些最基本的功能,然后加以改善和创新,实现了日历的功能。

相关文档
最新文档