《《计算机组成原理》课程设计报告基于VHDL的数字电子钟的设计与实现 .doc》由会员分享,可在线阅读,更多相关《《计算机组成原理》课程设计报告基于VHDL的数字电子钟的设计与实现 .doc(28页珍藏版)》请在三一办公上搜索。
1、 长沙理工大学计算机组成原理课程设计报告 学 院 计算机与通信工程 专 业 网络工程 班 级 网络工程 08-02 学 号 * 学生姓名 * 指导教师 * 课程成绩 完成日期 2010年12月31日 课程设计任务书计算机与通信工程学院 计算机科学与技术专业 课程名称计算机组成原理课程设计时间20102011学年第一学期1718周学生姓名 指导老师题 目基于VHDL的数字电子钟的设计与实现主要内容: (1)了解,并掌握基本VHDL语言编程; (2)设计并实现数字电子钟; (3)学习电路仿真技术,利用电路仿真优化已有电路; (4)撰写课程设计报告。要求:(1)通过对相应文献的收集、分析以及总结,给
2、出相应课题的背景、意义及现状研究分析。(2)通过课题设计,掌握计算机组成原理的分析方法和设计方法。(3)学按要求编写课程设计报告书,能正确阐述设计和实验结果。(4)学生应抱着严谨认真的态度积极投入到课程设计过程中,认真查阅相应文献以及实现,给出个人分析、设计以及实现。应当提交的文件:(1)课程设计报告。(2)课程设计附件(主要是源程序)。课程设计成绩评定学 院 计算机通信工程 专 业 网络工程 班 级 网络08-02 班 学 号 200858080220 学生姓名 * 指导教师 * 课程成绩 完成日期 2010年12月28日指导教师对学生在课程设计中的评价评分项目优良中及格不及格课程设计中的创
3、造性成果学生掌握课程内容的程度课程设计完成情况课程设计动手能力文字表达学习态度规范要求课程设计论文的质量指导教师对课程设计的评定意见综合成绩 指导教师签字 年 月 日基于VHDL的数字电子钟的设计与实现学生:* 指导老师: 摘要:本课程设计完成了数字电子钟的设计,数字电子钟是一种用数字显示秒、分、时的计时装置,由于数字集成电路技术的发展和采用了先进的石英技术,它使数字钟具有走时准确、性能稳定、携带方便等优点。数字钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及办公室等公共场所,给人们的生活带来极大的方便。在这里我们将已学过的比较零散的数字电路的知识有机的、系统的联系起来用于实际,来
4、培养我们的综合分析和设计电路的能力。关键词:电子钟;门电路及单次按键;琴键开关Abstract: This course is designed for digital electric clock design.Digital electric clock is a kind of timing device that using digital display second,points and hour.As tigital integrated circuit technology development and the use of advanced quartz technolog
5、y,it makes a digital clock has keep good time,stable performance,easy to carry,etc. A digital clock has become necessary in Peoples Daily life necessities, widely used in individual homes and offices in public places.It brings great convenience to the life of people.Here we will be use what we has s
6、tudied the comparative scattered of digital circuit, systematic knowledge organic link for practical, to develop our comprehensive analysis and circuit design ability.Keywords: electric clock, electrocircuit gate ,sweetch of lyra key目录1 引言-61.1 背景和目的- 61.2 课程设计的内容- 62 EDA与VHDL简介- 72.1 EDA的介绍- 72.2 V
7、HDL的介绍- 82.2.1 VHDL的用途与优点- 82.2.2 VHDL的主要特点- 92.2.3 用VHDL语言开发的流程- 103 数字电子钟的设计方案- 103.1设计规划- 103.2秒脉冲发生器- 133.3可调时钟模块- 143.4闹铃功能- 193.5日历系统- 194 系统仿真- 234.1仿真图- 234.2调试优化- 25 5 结束语- 26参考文献- 271 引 言随着科学技术的不断发展,人们对时间计量的精度要求越来越高。数字电子钟走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用秒脉冲发生器的精度稳定保证了数字钟的质量,用74LS290输入脉冲显示周期,
8、这种表具有时、分、秒的显示功能,还可以进行时和分的校对。1.1 背景和目的20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。 通过数字电子钟的设
9、计,巩固计算机组成原理课程,理论联系实际,提高分析、解决计算机技术的实际问题的独立工作能力;掌握用VHDL语言编制简单的小型模块,学会数字钟的设计方法,熟悉集成电路的使用方法,初步掌握电子钟的设计方法并实现时间的显示和校对,以及报时的功能,并能对数字电子钟进行扩展。数字钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。通过数字钟的实现进一步的了解各种在制作中用到的中小规模集成电路的作用及实用方法.且由于数字钟包括组合逻辑电路和时叙电路.通过它可以进一步学习与掌握各种组合逻辑电路与时序电路的原理与使用方法。1.2 课程设计的内容本次设计以数字电子为主,实现对时、分、秒、星期数字
10、显示的计时装置,周期为24小时,显示满刻度为23时59分59秒,并具有校时功能和报时功能的数字电子钟。电路主要采用中规模CMOS集成电路.本系统的设计电路由脉冲逻辑电路模块、时钟脉冲模块、电源模块、时钟译码显示电路模块、整点报时模块、校时模块、星期模块等几部分组成。采用电池作电源,采用低功耗的CMOS芯片及液晶显示器,发生器使用晶体振荡、计数振荡器CD4060及双JK触发器CD4027,将标准秒信号送入“秒计数器”;计数器采用“可予制四位二进制异步清除”计数器来实现,分别组成两个六十进制(秒、分)、一个二十四进制(时)的计数器;整电报时电路以门电路、触发器及扬声器构成,要求在离整点差5秒时,每
11、1秒钟鸣叫一次,共响5次,前四次为低音512Hz,最后一声为高音1024Hz;星期计数器是用四个D触发器组成;校时电路是由与非门构成的双稳态触发器,用来对“星期”、“时”、“分”、“秒”显示数字进行调整的;译码显示电路选用BCD-7段锁存译码驱动器CC4511构成,再经过设计一个电子钟,具有时、分、秒显示功能,在计时过程中具有报时功能,同时能对时、分进行校对,在使用74LS290输入脉冲时能够显示一周的星期,具有一分钟闹铃功能.实验仪器: 74LS161(7片),74LS48(BCD_7段译码器), 74LS29(4片),门电路及单次按键,琴键开关。2 EDA和VHDL简介2.1 EDA的介绍
12、EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程在计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA 技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性
13、分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。EDA 设计可分为系统级、电路级和物理实现级。在教学方面,几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本概念和基本原理、掌握用HDL语言编写规范、掌握逻辑综合的理论和算法、使用EDA工具进行电子电路课程的实验并从事简单系统的设计。一般学习电路仿真工具(如EWB、PSPICE)和PLD开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下基础。2.2 VHDL的介绍VHDL语言超高速集成电路硬件描述语(VHSIC Hardwa
14、re Deseription Language,简称VHDL),是IEEE的一项标准设计语言。它源于美国国防部提出的超高速集成电路(Very High Speed Integrated Circuit,简称VHSIC)计划,是ASIC设计和PLD设计的一种主要输入工具。 1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IE
15、EE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。2.2.1 VHDL的用途与优点 VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点
16、是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的: (1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2)VHDL丰富的仿真语句和库函数,
17、使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。 (5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.2.2 VHDL的主要特点(1)作为硬件描述语言的第一个国际标准,VHDL具有
18、很强的可移植性。(2)具有丰富的模拟仿真语句和库函数,随时可对设计进行仿真模拟,因而能将设计中逻辑上的错误消灭在组装之前,在大系统的设计早期就能查验设计系统功能的可行性。(3)设计层次较高,用于较复杂的计算时,能尽早发现存在的问题,从而缩短设计周期。(4)VHDL的设计不依赖于特定的器件,方便了工艺的转换。(5)支持大规模设计的分解和已有设计的再利用。(6)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动地把VHDL描述设计转变成门级网表。(7)VHDL用源代码描述来进行复杂控制逻辑的设计,灵活又方便,同时也便于设计结果的交流、保存和重用。2.2.3 用VHDL
19、语言开发的流程(1)文本编辑:用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。通常VHDL文件保存为.vhd文件。 (2)功能仿真:将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只在布线完成以后,进行时序仿真)。 (3)逻辑综合:将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式和信号的连接关系。逻辑综合软件会生成.edf(edif)的EDA工业标准文件。 (4)布局布线:将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内。 (5)编程下载:确认仿真无误后,将文件下载到芯片中。
20、3 数字电子钟的设计方案3.1 设计规划系统的工作原理:振荡器产生稳定的分频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60分向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数器的输出分别由译码器送显示器显示。计时出现误差时,可以用校时电路校时、校分。数字电子钟的电路组成方框图片如下:图3.1数字电子钟的电路组成方框图硬件电路的设计: 如图3.1所示,以74LS161作为控制部件。47LS161被接成十进制计数器,其置数输入端A、B、C、D(3脚4脚5脚6脚)接低电平,LD、EP、ET(9脚10脚7脚)接高电平,秒脉冲由CP(
21、2脚)端输入。计数器的输出端QA、QB、QC、QD(14脚13脚12脚11脚)接译码电路CD4511的输入端D、C、B、A。用74LS290做一个七进制的加法计数器,将时的十位的进位脉冲接到显示星期的74LS290的输入脉冲就可以了。硬件电路图如下:74LS48时钟基准74LS290晶体振荡器LED数码管74LS161图3.2硬件电路图软件电路的设计:考虑到实用性,在该电子钟的设计中修改定时或调整时间时采用了闪烁。在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一组固定单元用来存储计数的秒,分,时等。在显示程序段中主要进行了闪烁的处理,采用定时器中断置标志
22、位,再与位选相互结合的方法来控制调时或定时中的闪烁。时、分、秒的显示则是用了软件译码 (查表 )的方式,再用了一段固定的程序段进行进制转化。初始化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数。为了避免响铃影响显示定时,选时或调时程序段。对当前时间或定时时间修改后又返回到最初的显示程序段,如此循环下去。程序流程图如图所示:响铃结束显示初始化TF读键有无闹钟?是否为调时、定时?开始TT定时FF调时TF调时?是否修改?图3.3程序流程图3.2 秒脉冲发生器秒脉冲发生器是数字钟的重要部分,它的精度稳定度决定了数字钟的质量,通常
23、用晶体振荡器发生的脉冲经过整形、分频获得1Hz的秒脉冲。如晶振为32768Hz,通过15次二分频后可获得1Hz的脉冲输出。(本实验中实验箱上已经有1hz脉冲)。按键由琴键或拨码开关发出脉冲或电平信号,控制整个系统工作。原理图如下:图3.3秒脉冲原理图其程序代码如下:ORG 0000H AJMP MAIN ORG 000BH AJMP TIME ORG 0300H MAIN: mov 20h,#00h MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV IP,#02H ;IP,IE初始化 MOV IE,#82H MOV TMOD,#01H ;设定定时器工作方式?
24、 MOV TL0,#0B0H MOV TH0,#3CH SETB TR0 ;启动定时? MOV SP,#40H ;重设堆栈指针 NEXT: LCALL DISP ;调用显示子程序? LCALL KEY ;调用按键检测子程序 JZ NEXT ; LCALL ANKEY ;调用按键处理子程序 SJMP NEXT ;重新循环 NOP NOP NOP 3.3 可调时钟模块有了时间标准“秒”信号后,就可以根据60秒为1分、60分为1小时、24小时为1天的计数周期,分别组成两个六十进制(秒、分)、一个二十四进制(时)的计数器。将这些计数器适当连接,就可以构成秒、分、时的计数,实现计时功能。其程序流程图如下
25、:图3.4可调时钟模块流程 74LS161构成秒、分的六十进制计数器: 数字钟的“秒”、“分”信号产生电路都是由六十进制计数器构成,“时”信号产生电路为二十四进制计数器。它们都可以用两个“可予制四位二进制异步清除”计数器来实现。利用74LS161芯片的预置数功能,也可以构成不同进制的计数器。因为一片74LS161内含有一个四位二进制异步清除计数器,因此需用两片74LS161就可以构成六十进制计数器了。集成电路74LS161芯片的电路其中(如图3)CP为时钟脉冲输入端,P0、P1、P2、P3为预置数输入端, 为置数控制端, 为异步复位端,二者均为低电平有效;Q0、Q1、Q2、Q3为计数器的输出端
26、。该计数器能同步并行预置数据,具有清零置数,计数和保持功能,具有进位输出端,可以串接计数器使用。4位二进制同步计数器74LS161引脚图它的管脚排列如图所示:图3.5 74LS161管脚排列图a:计数功能:当 = =CTP=CTT=1,CP=CP时,实现计数功能。 b:同步并行置数功能:当 =1时,预置控制端 =0,并且 CP=CP时,Q3Q2Q1Q0= P3P2P1P0,实现同步预置数功能。 c:保持功能:当 = =1且CTPCTT=0时,输出Q3Q2Q1Q0保持不变。 d:异步清零功能:当复位端 =0时,输出Q3Q2Q1Q0全为零,实现异步清零功能(又称复位功能)。秒个位计数器: 74LS
27、161被接成十进制计数器,其置数输入端A、B、C、D(3脚4脚5脚6脚)接低电平,LD、EP、ET(9脚10脚7脚)接高电平,秒脉冲由CP(2脚)端输入。计数器的输出端QA、QB、QC、QD(14脚13脚12脚11脚)接译码电路CD4511的输入端D、C、B、A。当秒脉冲输入时,电路状态按二进制自然序列依次递增1,QA、QB、QC、QD输出为0000、0001、0010、0011、0100、0101、0110、0111、1000、1001,当输出为1010也就是10时,QA、QC输出都为1,经过一个与非门后一路经反相后送入或非门的一个输入端,输出送往计数器的清零端RD使秒计数器清零,另一路经反
28、相后作为进位脉冲送入秒十位计数器的脉冲输入端。秒十位计数器: 在这里74LS161被接成六进制计数器,接法与秒个位计数器相同,秒个位计数器送来的进位脉冲送入秒使位计数器的脉冲输入端,使其按二进制自然序依次递增1,QA、QB、QC、QD端输出为0000、0001、0010、0011、0100、0101,当输出为0110也就是6时,QB、QC输出为1,QA、QD输出为0,QB、QC经过一个与非门后一路先送往秒十位计数器的清零端,然后取反接或非门的另一个输入端后送入秒个位计数器的清零端,将整个秒计数器清零,另一路经反相后作为进位脉冲送入分个位计数器的脉冲输入端分计数器的连接方法与秒计数器相同,分计数
29、器向时计数器送进位脉冲。秒、分的六十进制计数器的构成如图所示:图3.6计数及显示实验电路图其程序代码如下:;定时中断处理程序: TIME: PUSH ACC ;保护现场 PUSH PSW MOV TL0,#0B4H ;赋定时初值 MOV TH0,#3CH INC 20H ; MOV A,20H CJNE A,#20,RETI1 MOV 20H,#00H ;一秒钟时间到 MOV A,21H ADD A,#01H DA A MOV 21H,A CJNE A,#60H,RETI1 MOV 21H,#00H ;一分钟时间到 MOV A,22H ADD A,#01H DA A MOV 22H,A CJN
30、E A,#60H,RETI1 MOV 22H,#00H ;一小时时间到 74LS161构成二十四进制计数器:二十四进制计数器,也是用两个74LS161集成块来实现的,方法与二十四进制计数器大同小异,但其要求个位是十进制,状态变化在00001001间循环,十位是二进制,状态变化在00000010间循环,显示为023时。 原理:由分计数器送来的进位脉冲送入时个位计数器,电路在分进位脉冲的作用下按二进制自然序依次递增1,当计数到24,这时小时个位输出0100(也就是4),小时十位输出0010(也就是2),小时十位计数器只有QC端有输出,小时个位计数器只有QB端有输出,将QC、QB端接一个二输入与非门
31、,与非门输出一路先送入十位计数器的清零端然后取反送入或非门的另一个输入端,输出接小时个位计数器的清零端,其每10小时清零并向小时十位计数器送进位脉冲,当十位输出为二,小时个位输出为四时,将整个电路清零,另一路取反后作为星期进位脉冲送入星期显示电路的脉冲输入端,完成24小时的显示及向星期电路送星期进位脉冲的功能。二十四进制计数器的构成如图所示:图3.73.4 闹铃功能(一分钟整点报时)其电路图如下:图3.8 闹铃功能电3.5 日历系统(星期显示)74LS48的内部逻辑入图所示:图3.9为显示星期,本实验只用到前面的七中状态,只要满足 ,则可以正显示从星期一到星期日。用74LS290做一 个七进制
32、的加法计数器,将时的十位的进位脉冲接到显示星期的74LS290的输入脉冲就可以了。电路图如下:图4.0数字钟总电框图如下图所示:图4.1根据实验原理,将所需要的各部分做好,在将起接在一起就得到了所需的电路图。如下图所示: 图4.2 总电路图其程序代码如下:MOV A,23HCJNE A,#24H,RETI1 MOV 23H,#00H ;到时间达到24小时,清零. RETI1: POP PSW ;恢复现场 RETI ;中断返回? NOP ;显示子程序 DISP: ANL 2FH,#10H ;处理小数点 MOV A,21H ;处理秒21H-2DH,2EH MOV A,22H ;处理分钟22H-2C
33、H,2DH MOV A,23H ;处理小时23H-2AH,2BH MOV R0,#2FH ;显示偏移量 MOV P0,a ;送显示 MOV R2,#80H ;延时 DJNZ R3,LOOP1 ;循环显示 TABLE: db 28h,7eh,0a2h,62h,74h,61h,21h ;不带小数点 DB 7ah,20h,60h,00,00,00,00,00,00 DB 8H,5eH,82H,42H,54H,41H,1H,5aH ;带小数点 DB 00H,40H,00,00,00,00,00,00 ;按键判断程序 JZ RETX ;无键按下则返回 JZ RETX ;键盘去抖动。 MOV R6,A ;
34、将键值存入R6。 JNZ LOOP2 ;等待键释放 ANKEY: CLR EA ;关中断 LX: MOV A,R6 JB ACC.2,L1 ;是功能键转L1 JB ACC.3,L2 ;是确认键转L2 JB ACC.4,L3 ;是减1键转L3 JNB ACC.5,L12 ;不是增1键,转L12 JB 2BH.4,L6 ;判断使哪一位(时、分、秒)的值加1 LCALL KEY ;判断有无键按下。 L2: MOV 25H,#00H ;确认键处理程序 L3: JB 2BH.4,L61 ;增一键处理程序 L1: MOV A,25H ;功能键处理程序 LB1: MOV 25H,#01H ;25H单元是标志
35、位,(25H)=01H调节时单元的值 LB3: MOV 25H,#04H ;25H单元是标志位,(25H)=01H调节秒单元的值LB2: MOV 25H,#02H ;25H单元是标志位,(25H)=01H调节分单元的值 L6: MOV A,23H ;时加一 L8:MOV A,22H ;分加一 L9: MOV A,21H ;秒加一 ADD A,#01H DA A 4 系统仿真该电子钟对源程序进行编译,自动地把VHDL描述转变成门级电路,进而完成各种测试工作。软件平台自动对设计结果进行编译,检查连接,给出错误报告并进行逻辑综合,同时将产生编程文件和用于时序仿真用的输出文件,最后给出实现此项目最适合
36、的器件。经过编译, EDA软件平台报告电路连接没有错误。4.1 仿真图图4.3 顶层设计仿真图由图可知,当遇到上升沿时发一个信号,在高电位时有效,而在低电位时无效。在遇到上升沿时计数器进位加一,当计数器不为零时不发信号,只有当计数器为零时才发一个信号。单片机时间基准振荡电路中振荡晶体频率的选择必须要和程序中的时间基准相一致,也就是说要采用振荡频率为12M的振荡晶体,否则若采用了11.59M的振荡晶体就会使得单个振荡周期变长,故而使单个时间间隔变长,最终会导致实际上的电子钟走时变“慢”。由于单片机处理数据过程中要响应中断等原因,而中断服务程序所花费的时间必须在中断返回后在计时单元中扣除掉,否则实
37、际上制作出来的电子钟会变“慢”。在本次程序设计中将中断服务程序所花费的时间直接从定时间隔 (50ms) 中扣除,也就是说将定时间隔设置得比50ms小一些,必须不断地通过软件调试该时间间隔,这样才能使得电子钟的走时误差达到最小。在调试每个数码管的发光时间时,必须反复修改程序中的给定的时间,直到整体上的显示效果较好,不会有闪烁的现象产生。图4.4 数字钟计数器仿真图本设计中,由定时器T0每50ms一次中断产生时钟基准,中断服务程序中校正了中断产生的误差。主程序中循环调用显示程序完成显示。显示初始为:120000。没有功能键。显示部分采用7片74LS161级联控制,由单片机的p2.0-p2.2向显示
38、器发出数据。显示格式为:XXXXXX,分别代表小时,分钟,秒,为24小时制。仿真效果如上图4.3.。4.2 调试优化(1)单片机时间基准振荡电路中振荡晶体频率的选择必须要和程序中的时间基准相一致,也就是说要采用振荡频率为12M的振荡晶体,否则若采用了11.59M的振荡晶体就会使得单个振荡周期变长,故而使单个时间间隔变长,最终会导致实际上的电子钟走时变“慢”。在本次程序设计中将中断服务程序所花费的时间直接从定时间隔 (50ms) 中扣除,也就是说将定时间隔设置得比50ms小一些,必须不断地通过软件调试该时间间隔,这样才能使得电子钟的走时误差达到最小。(2)在调试每个数码管的发光时间时,必须反复修
39、改程序中的给定的时间,直到整体上的显示效果较好,不会有闪烁的现象产生。5 结束语此次基于数字式电子钟的设计与制作的独特之处在于采用了动态显示的形式,将6个数码管串联起来,这一点与一般的电子钟采用静态显示的方法不同,这样的设计使得单片机的管脚得到了充分的利用,也使得本设计中的电路显得小巧,省去了相应的芯片,节约了成本。本系统基本的实现了时钟计时、显示、闹钟及温度和电压测量及过欠压频率的测量。实际运行效果良好,并可进行进一步的扩展。通过为期两周的课程设计,我顺利完成了计算机组成原理课中基于流水技术构成的模型机的设计与实验的课程设计。在这次课程设计中,非常感谢课程设计老师蔡老师的指导,在蔡老师的身上
40、学到的不仅仅是知识的层面,更重要的是他追求知识的热情,还重要的是他对学生的尊重和关爱,却又不失老师本身工作的严谨的态度,他的工作作风以及对生活的态度让我受益匪浅。最后,感谢蔡老师给予我们很多方面的指导和帮助,谢谢同学的相互帮助,感谢有了这些,我才能很好的顺利的完成我的这次课程设计。参考文献1 孙裕晶,沙玲,赵红霞.实用控制系统设计教程M.长春:吉林大学出版社,2000.2 张振荣,晋明武等.MCS-51单片机原理及实用技术M.北京:人民邮电出版社,2000.3 周兴华.手把手教你学单片机M.北京:北京航空航天大学出版社,2005.4褚振勇,翁木云.FPGA设计及应用M.西安:西安电子科技大学出版社,2002。5潘松,王国栋.VHDL实用教程M.成都:电子科技大学出版社,2000。6 王新梅,肖国镇纠错码原理与方法(修订版) M西安电子科技大学出版社,2001。