1前言20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。所以在此次设计中有以下几点要注意:(1)设计内容及设计方案论述时钟的具体设计方案及设计要求。(2)单元电路设计、原理及器件选择说明时钟的设计原理以及器件的选择。(3)主要从LED点阵屏驱动部分、时钟电路部分、温度传感器电路部分、单片机最小部分、扬声器几部分中进行说明。(4)绘制整机原理图,该系统的设计、安装、调试工作全部完成。2课程设计任务书1.课程设计题目电子钟的设计2.设计任务和内容设计一个电子钟,利用四个数码管,在其上显示分、秒;用4个小键盘分别进行分+1,分-1,秒+1,秒-1改变时间值。3.设计步骤和要求设计步骤:首先进行相关资料查阅和学习,理解电子钟制作的流程和要求。然后结合微机接口技术的理论和实验教材中实例的指导,完成设计任务。设计要求:1.撰写要求设计报告有设计报告目录和正文组成。其中正文要求最少包括以下部分:(1).课程设计题目名称;(2).设计要求完成的任务(3).系统设计文档(包括:系统结构,详细设计以及程序设计文档)(4).课程设计总结(包括收获和体会以及不足和存在的问题)(5).参考文献.2.装订顺序(1).封面(2).前言(3).目录(4).课程设计任务书(5).正文(6).小结(7).参考文献(8).附录,主要代码指导老师(签名)__________________________年月日3目录第一章概述1.1设计目的…………………………………………………………………………41.2设计内容…………………………………………………………………………41.3设计参考…………………………………………………………………………51.4电子时钟简介……………………………………………………………………51.5设计思路…………………………………………………………………………5第二章概要设计2.1设计内容…………………………………………………………………………62.2分析论证…………………………………………………………………………62.3设计思路…………………………………………………………………………72.4电路原理与主要芯片功能………………………………………………………72.4.18279主要功能…………………………………………………………….82.4.28259主要功能……………………………………………………………102.4.38253主要功能……………………………………………………………122.4.4系统设计框图………………………………………………………………12第三章详细设计3.18279键盘显示模块设计…………………………………………………………143.1.18279内部结构…………………………………………………………………143.1.28279方式字命令………………………………………………………………143.1.38279的初始化设置……………………………………………………………153.28259A中断控制模块……………………………………………………………153.2.18259A方式控制字……………………………………………………………153.2.28259A初始化设置……………………………………………………………163.3定时器/计数器的设计……………………………………………………………163.3.18253方式控制字………………………………………………………………163.3.28253工作方式…………………………………………………………………173.3.38253初始化设置………………………………………………………………173.4设计系统电路………………………………………………………………….18第四章接线与调试…………………………………………………………………………19小结………………………………………………………………………………………………20参考文献………………………………………………………………………………………21附录程序………………………………………………………………………………………224第一章概述1.1设计目的通过这学期对《微机原理及接口技术》的学习,可是掌握的知识还不够,知识局限于书本上和老师教的,这些还只是停留在理论的层面上。这是一门对于硬件及其原理要求熟悉掌握的实践性很强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机的结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。通过设计实践,培养学生查阅专业资料,工具书和参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。具体要求如下:1、掌握DMA工作原理,中断工作原理,定时计数原理,并行通信原理,A/D和D/A工作原理。2、熟悉编程及调试程序的方法。3、掌握8259中断控制器的工作原理和应用编程方法,练习编写中断程序的方法。4、掌握8279的各种工作方式及其应用编程。5、掌握8253定时/计数器的工作原理、工作方式及其应用编程。6、练习LED-KEYBOARDUNIT的使用方法和数码管的显示编程方法能运用所提到的芯片,设计系统并进行程序开发,满足用户需求。1.2设计内容设计的主要内容:设计一个电子钟,利用四个数码管,在其上显示分、秒;用4个小键盘分别进行分+1、分-1、秒+1、秒-1改变时间值。基本要求:(1)、设计实验电路(要求利用实验仪的硬件资源)(2)、分析实验原理5(3)、列出实验接线表(4)、采用汇编语言编写实验程序(5)、通过实验验证功能的实现(6)、编写课程设计说明书1.3设计参考本课程设计中的几个要点:A、设计一个1s时钟,作为时间的基准。可通过定时器来实现,由于定是限制,我们可以设定定时时钟为50ms中断一次,然后用一个计数器计数20次,即50ms*20=1000ms=1s。B、分与时都可采用软件计数器来实现,60秒为1分,60分为1小时。C、由于实际应用中要求显示为十进制,而在程序中处理的数据都为十六进制,因此在程序中要对显示缓冲区的数据进行十进制调整。1.4电子时钟简介电子时钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。传统的设计方法有两种:一是利用组合逻辑电路和时序电路等中小规模集成电路来设计,在大三的《数字电路》中已经实际并利用组合逻辑电路和时序电路芯片74L161、74LS190、74LS04和LED数码管设计12时制电子钟;一是利用单片机编程技术来设计。这两种设计在硬件方面都是比较复杂的,而且设计周期长。本学期通过对《现代微机原理与接口技术》的学习,利用目前所掌握的知识进行实践是必要的,以巩固基础知识,培养独立操作能力。1.5设计思路电子时钟主要由显示模块、对时模块和时钟运算模块三大部分组成。其中对时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。这样,才能循环记时。本次课程设计要实现的功能为:利用定时器从0开始进行计时,将计时的结果显示在数码管上。每隔1秒,秒钟计时一次,到60秒,分钟加1,到60分小时加1。根据需要,需选择的芯片有8254,8259,8255,系统时钟频率1.041667MHz。6第二章概要设计2.1设计内容本次课程设计的内容为电子时钟的设计与实现,利用定时器从0开始进行计时,将计时的结果显示在数码管上。每隔1秒,秒钟计时一次,到60秒,分钟加1,秒钟清零。根据需要,需选择的芯片有8253,8259,8279,系统时钟频率1.041667MHz。利用8253计时,计时从0秒到9秒,到9秒后又从0秒重新开始计时,同时将0秒~9秒的数字变动信息通过8279送数码管显示。由系统时钟频率1.041667MHz,同学们考虑如何利用8253计数器实现1秒的计时。2.2分析论证2.2.1显示模块利用数码管的显示功能来设计。数码管是由八个条形发光二极管组成的,这些发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在这八个发光二极管的阳极加+5V或0V的电压使不同的二极管发光,形成不同的字符和数字。电子时钟用到的是0到9十个数字,他们所对应的字符表依次是3FH、06H、5BH、4FH、66H、6DH、7DH、07H、7FH、6FH。该模块主要是将时钟运算模块和对时模块运算出来并存放在内存单元里的十六进制表示的时位和分位数据转化为十进制,并通过四个数码管显示出来。该模块实现的硬件是TND86/88的LED-KEYBOARDUNIT。2.2.2时钟运算模块该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模块和运算模块。秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现,可以选择TND86/88实验箱中的8253定时/计数器来提供,但又因为8253所能提供的信号的周期时毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。中断信号是8253的通道2工作方式为方式3时,产生一个50ms的脉冲信号。运算模块负责时、分、秒的计算,该模块主要通过8259A的IRQ7号中断来实现,首先将秒定时模块提供的中断信号为8259的IRQ7中断请求信号。但由于每50ms一次中断请求。所以在中断服务程序必须利用已申请内存单元count来统计中断请求的次数,只有当count的值为20时,才能让秒单元内的数值加1。另外,在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到760时,分必须加1、秒清零;当分加到60时,时加1、分清零。当时加到24啊,直接清零。2.2.3对时模块该模块主要功能是修改时、分内存单元的数值。在对时的时候,秒应停止不变,并且在对分进行调整的时,时单元内的数值不变。由以上分析可见,对时、分的调整用两个优先级高于IRQ7的中断来完成。因此,可以用8259的IRQ2中断来实现,两个中断源的中断请求信号只需直接接在两个按键即可起到对时作用。2.3设计思想本系统所要完成的是电子钟的计时等功能,其中最基本的就是实现计时功能,并把相应的数值送到数码管上显示出来。在本系统中,用到的8253的功能只是相当于一个定时计,我们给定时器输入30KHz频率的脉冲,这样每隔一秒就会在OUT0端产生0到1的跃变,作为中断IRQ的请求信号。当然,时钟的计数也有其特定的规则,那就是秒、分的个位逢十进一,十位逢六进一,所以,我们可以通过中断处理程序来控制其进位。这样我们便完成了计时功能。然而,如果仅仅将计时得到的相应数据送入数码管,我们会发现,四个数码管同时显示,无法完成其时钟的显示功能。但是,我们知道,四个数码管的亮灭与小键盘X1,X2,X3,X4各列是否为低电平是相对应的,于是,我们就可以将低电平输出到相应的键盘上,来实现对应数码管的显示。通过以上分析,我们可以用四位二进制码分别对应表示X4X3X2X1的逻辑值(1--高电平,0--低电平),这样要实现时钟的显示功能,便可以按照以下方法来进行:首