毕业设计论文基于单片机的数字钟的设计.doc
20072008学年第2学期毕业设计(论文)课题基于单片机的数字钟的设计姓名系部 机电工程系 专业 机电一体化技术班级 05机电(1)班 学号 指导教师 武汉交通职业学院教务处制武汉交通职业学院毕业论文(设计)原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。作者签名:2008年4 月10 日III目 录摘要I关键词I1前言11.1单片机简介11.1.1分类11.1.2发展状况11.1.3应用前景41.2LED数码管简介41.3译码器简介52系统设计方案62.1单片机的基本原理62.2单片机型号的选择72.3译码器原理72.4硬件电路图及其原理说明93程序详细设计113.1程序流程图113.2程序清单133.3硬件电路元件明细表193.4调试结果说明194小结20参考文献21致谢22I基于单片机的数字时钟设计摘要:单片机数字时钟是以单片机为核心,在它的基础上设计出来的数字时钟数字钟.,在日常生活中最常见,应用也最广泛。本论文的数字钟,以80C51单片机为核心,配备LED显示模块、时钟芯片、等功能模块。数字钟采用12/24小时制方式显示时间,定时信息等功能。文章的核心主要从硬件设计和软件编程两个大的方面。硬件电路设计主要包括中央处理单元电路、时钟电路、人机接口电路、信号处理电路、执行电路等几部分组成,为了用电池作电源,采用低功耗的CMOS芯片及LED显示器.软件用汇编语言来实现。其中本论文最大特点就是采用拉蜂鸣器来做提醒,使人不仅仅是通过视觉来感受单片机数字时钟带来的方便! 关键词: 单片机; LED显示器; 数字钟; 汇编语言;1 前 言1.1 单片机简介在单片机技术日趋成熟的今天,其灵活的硬件电路的设计和软件的设计,让单片机得到了广泛的应用,几乎是从小的电子产品,到大的工业控制,单片机都起到了举足轻重的作用。单片机小的系统结构几乎是所有具有可编程硬件的一个缩影,可谓是“麻雀虽小,肝胆俱全”,单片机的学习和研究是对微机系统学习和研究的简捷途径。1.1.1 分类从市场上看到的AVR系列和PIC系列单片机是怎么回事?以便让大家对单片机的发展有一个较全面的认识。在没有学习单片机之前,这是一个令很多初学者非常困惑的问题,这么多的单片机我该先学哪一种呢?AVR系列单片机也是ATMEL公司生产的一种8位单片机,它采用的是一种叫RISC(精简指令集单片机)的结构,所以它的技术和51系列有所不同,开发设备也和51系列是不通用的,它的一条指令的运行速度可以达到纳秒级(即每秒1000000000次),是8位单片机中的高端产品。由于它的出色性能,目前应用范围越来越广,大有取代51系列的趋势,所以学完了51系列的,看来必须学会AVR的才行,可叹知识爆炸,人生苦短。说完了AVR的,再来说说另一种-PIC系列单片机,它是美国MICROCHIP公司,唉,又是老美,叫微芯公司的生产的另一种8位单片机,它采用的也是RISC的指令集,它的指令系统和开发工具与51系列更是不同,但由于它的低价格和出色性能,目前国内使用的人越来越多,国内也有很多的公司在推广它,不过它的影响力远没有51系列的大,所以作为初学者,51系列当然(不,绝对)是首选。以上几种只是比较多见的系列,其实世界上还有许多的公司生产各种各样的单片机,比如:MOTOROLA的MC68H系列(老牌的单片机),TI的MSP430C系列(极低功耗的单片机),还有日本的TOSHIBA,日立的HITACH,德国的西门子SIEMENS等等,它们都有各自的结构体系,并不与51系列兼容。1.1.2 发展状况计算机系统的发展已明显地朝三个方向发展,这三个方向就是:巨型化,单片化,网络化。单片机用以解决复杂系统计算和高速数据处理的仍然是巨型机在起作用,故而,巨型机在目前在朝高速及处理能力的方向努力。单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器(embedded microcontroller)。单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。这一点是巨型机和网络不可能做到的。在本文,介绍单片机的最新技术进步,包括数字单片机的工艺及技术,模糊单片机的工艺及技术,单片机的可靠性技术,以及以单片机为核心的嵌入式系统。数字单片机的技术发展 数字单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。在这几方面,较为典型地说明了数字单片机的水平。在目前,用户对单片机的需要越来越多,但是,要求也越来越高。下面分别就这四个方面说明单片机的技术进步状况。 1、内部结构的进步 单片机在内部已集成了越来越多的部件,这些部件包括一般常用的电路,例如:定时器,比较器,A/D转换器,D /A转换器,串行通信接口,Watchdog电路,LCD控制器等。有的单片机为了构成控制网络或形成局部网,内部含有局部网络控制模块CAN。例如,Infineon公司的C 505C,C515C,C167CR,C167CS-32FM,81C90;Motorola公司的68HC08AZ 系列等。特别是在单片机C167CS-32FM中,内部还含有2个CAN。因此,这类单片机十分容易构成网络。特别是在控制,系统较为复杂时,构成一个控制网络十分有用。为了能在变频控制中方便使用单片机,形成最具经济效益的嵌入式控制系统。有的单片机内部设置了专门用于变频控制的脉宽调制控制电路,这些单片机有Fujitsu公司的MB89850系列、MB89860系列;Motorola 公司的MC68HC08MR16、MR24等。在这些单片机中,脉宽调制电路有6个通道输出,可产生三相脉宽调制交流电压,并内部含死区控制等功能。特别引人注目的是:现在有的单片机已采用所谓的三核(TrCore)结构。这是一种建立在系统级芯片(System on a chip)概念上的结构。这种单片机由三个核组成:一个是微控制器和DSP核,一个是数据和程序存储器核,最后一个是外围专用集成电路(ASIC)。这种单片机的最大特点在于把DSP和微控制器同时做在一个片上。虽然从结构定义上讲,DSP是单片机的一种类型,但其作用主要反映在高速计算和特殊处理如快速傅立叶变换等上面。把它和传统单片机结合集成大大提高了单片机的功能。这是目前单片机最大的进步之一。这种单片机最典型的有Infineon公司的TC10GP;Hitachi公司的SH7410,SH7612等。这些单片机都是高档单片机,MCU都是32位的,而DSP采用16或32位结构,工作频率一般在60MHz以上。 2、功耗、封装及电源电压的进步 现在新的单片机的功耗越来越小,特别是很多单片机都设置了多种工作方式,这些工作方式包括等待,暂停,睡眠,空闲,节电等工作方式。Philips公司的单片机P87LPC762是一个很典型的例子,在空闲时,其功耗为1.5 mA,而在节电方式中,其功耗只有0.5mA。而在功耗上最令人惊叹的是TI公司的单片机MSP430系列,它是一个 16位的系列,有超低功耗工作方式。它的低功耗方式有LPM1、LPM3、LPM4三种。当电源为3V时,如果工作于 LMP1方式,即使外围电路处于活动,由于CPU不活动,振荡器处于14MHz,这时功耗只有50?A。在LPM3 时,振荡器处于32kHz,这时功耗只有1.3?A。在LPM4时,CPU、外围及振荡器32kHz都不活动,则功耗只有0.1?A。 现在单片机的封装水平已大大提高,随着贴片工艺的出现,单片机也大量采用了各种合符贴片工艺的封装方式出现,以大量减少体积。在这种形势中,Microchip公司推出的8引脚的单片机特别引人注目。这是PIC12CXXX系列。它含有0.52K程序存储器,25128字节数据存储器,6个I/O端口以及一个定时器,有的还含4道A/D ,完全可以满足一些低档系统的应用。扩大电源电压范围以及在较低电压下仍然能工作是今天单片机发展的目标之一。目前,一般单片机都可以在3.35.5V的条件下工作。而一些厂家,则生产出可以在2.26V的条件下工作的单片机。这些单片机有Fujitsu公司的MB8919189195,MB89121125A,MB89130系列等,应该说该公司的F2MC-8L系列单片机绝大多数都满足2.26V的工作电压条件。而TI公司的MSP430X11X系列的工作电压也是低达2.2V的。 3、工艺上的进步 现在的单片机基本上采用CMOS技术,但已经大多数采用了0.6?m以上的光刻工艺,有个别的公司,如Motorola公司则已采用0.35?m甚至是0.25?m技术。这些技术的进步大大地提高了单片机的内部密度和可靠性。 以单片机为核心的嵌入式系统 单片机的另外一个名称就是嵌入式微控制器,原因在于它可以嵌入到任何微型或小型仪器或设备中。目前,把单片机嵌入式系统和Internet连接已是一种趋势。但是,Internet一向是一种采用肥服务器,瘦用户机的技术。这种技术在互联上存储及访问大量数据是合适的,但对于控制嵌入式器件就成了"杀鸡用牛刀"了。要实现嵌入式设备和Int ernet连接,就需要把传统的Internet理论和嵌入式设备的实践都颠倒过来。为了使复杂的或简单的嵌入式设备,例如单片机控制的机床、单片机控制的门锁,能切实可行地和Internet连接,就要求专门为嵌入式微控制器设备设计网络服务器,使嵌入式设备可以和Internet相连,并通过标准网络浏览器进行过程控制。 目前,为了把单片机为核心的嵌入式系统和Internet相连,已有多家公司在进行这方面的较多研究。这方面较为典型的有emWare公司和TASKING公司。 EmWare公司提出嵌入式系统入网的方案-EMIT技术。这个技术包括三个主要部分:即emMicro, emGateway和网络浏览器。其中,emMicro是嵌入设备中的一个只占内存容量1K字节的极小的网络服务器; emGateway作为一个功能较强的用户或服务器,它用于实现对多个嵌入式设备的管理,还有标准的Internet 通信接入以及网络浏览器的支持。网络浏览器使用emObjicts进行显示和嵌入式设备之间的数据传输。 如果嵌入式设备的资源足够,则emMicro和emGateway可以同时装入嵌入式设备中,实现Inter net的直接接入。否则,将要求emGateway和网络浏览器相互配合。EmWare的EMIT软件技术使用标准的 Internet协议对8位和16位嵌入式设备进行管理,但比传统上的开销小得多。 目前,单片机应用中提出了一个新的问题:这就是如何使8位、16位单片机控制的产品,也即嵌入式产品或设备能实现和互联网互连? TASKING公司目前正在为解决这个问题提供了途径。该公司已把emWare的EMIT软件包和有关的软件配套集成,形成一个集成开发环境,向用户提供开发方便。嵌入互联网联盟ETI(embed the Internet Consortium)正在紧密合作,共同开发嵌入式Internet的解决方案。在不久将会有成果公布。单片机应用的可靠性技术发展在单片机应用中,可靠性是首要因素为了扩大单片机的应用范围和领域,提高单片机自身的可靠性是一种有效方法。近年来,单片机的生产厂家在单片机设计上采用了各种提高可靠性的新技术,这些新技术表现在如下几点: 1、EFT(Ellectrical Fast Transient)技术 EFT技术是一种抗干扰技术,它是指在振荡电路的正弦信号受到外界干扰时,其波形上会迭加各种毛刺信号,如果使用施密特电路对其整形,则毛刺会成为触发信号干扰正常的时钟,在交替使用施密特电路和RC滤波电路时,就可以消除这些毛否则令其作用失效,从而保证系统的时钟信号正常工作。这样,就提高了单片机工作的可靠性。Motorola公司的 MC68HC08系列单片机就采用了这种技术。 2、低噪声布线技术及驱动技术 在传统的单片机中,电源及地线是在集成电路外壳的对称引脚上,一般是在左上、右下或右上、左下的两对对称点上。这样,就使电源噪声穿过整块芯片,对单片机的内部电路造成干扰。现在,很多单片机都把地和电源引脚安排在两条相邻的引脚上。这样,不仅降低了穿过整个芯片的电流,另外还在印制电路板上容易布置去耦电容,从而降低系统的噪声。 现在为了适应各种应用的需要,很多单片机的输出能力都有了很大提高,Motorola公司的单片机I/O口的灌拉电流可达8mA以上,而Microchip公司的单片机可达25mA。其它公司:AMD,Fujitsu,NEC ,Infineon,Hitachi,Ateml,Tosbiba等基本上可达820mA的水平。这些电流较大的驱动电路集成到芯片内部在工作时带来了各种噪声,为了减少这种影响,现在单片机采用多个小管子并联等效一个大管子的方法,并在每个小管子的输出端串上不同等效阻值的电阻,以降低di/dt,这也就是所谓"跳变沿软化技术",从而消除大电流瞬变时产生的噪声。 3、采用低频时钟 高频外时钟是噪声源之一,不仅能对单片机应用系统产生干扰,还会对外界电路产生干扰,令电磁兼容性不能满足要求。对于要求可靠性较高的系统,低频外时钟有利于降低系统的噪声。在一些单片机中采用内部琐相环技术,则在外部时钟较低时,也能产生较高的内部总线速度,从而保证了速度又降低了噪声。Motorola公司的MC68HC08系列及其1 6/32位单片机就采用了这种技术以提高可靠性。 结束语: 单片机在目前的发展形势下,表现出几大趋势: ·可靠性及应用越来越水平高和互联网连接已是一种明显的走向。 ·所集成的部件越来越多;NS(美国国家半导体)公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了;如果从功能上讲它可以讲是万用机。原因是其内部已集成上各种应用电路。 ·功耗越来越低和模拟电路结合越来越多。 随着半导体工艺技术的发展及系统设计水平的提高,单片机还会不断产生新的变化和进步,最终人们可能发现:单片机与微机系统之间的距离越来越小,甚至难以辨认。1.1.3 应用前景观察之前几年以来各家厂商的销售地区比重,可以发现中国大陆市场比重逐渐提升,台湾与北美市场则逐渐衰退, 主要原因在于多项产品制造基地转移至大陆,MCU在大陆的需求也随之提升。销货至大陆的MCU产品,多应用于 电话、Caller ID、玩具与LCD等产品,预计在未来,销货至大陆的比重仍将持续增加。在中国产品应用领域可分 为五大项目,包括电脑周边(高速Modem、DSC、NB中的电源管理等)、通讯产业、消费性产品(家电、冷气等)、 车用市场(定速器、控制器、防盗器)及工业上的应用。有部份场家将特别瞄准消费性产品市场跨入,如Audio方式 将朝多媒、MP3解决方案前进,另外在PC连结应用上,包括无线、网路及标准应用产品,都会有一系列产品推出。 另外在电源系统应用方面,在UPS(不断电系统)、Server Power(伺服器电源)、Charger(充电器)等应用上;以及 在周边应用领域方面,针对Game Device、记忆卡、读卡机、及Pen Drive(随身碟)等应用上。逻辑IC包括 微处理器(MPU)、微控制器(MCU)、特殊应用IC(ASIC)、可程式逻辑元件(PLD)以及一般的标准应用IC(ASSP)等, 不同的逻辑IC有其发展方向,而MCU产品则朝向整合型产业发展。1.2 LED数码管简介数码管由7个发光二极管组成,行成一个日字形,它门可以共阴极,也可以共阳极.通过解码电路得到的数码接通相应的发光二极而形成相应的字,这就是它的工作原理.基本的半导体数码管是由7个条状的发光二极管(LED)按图1所示排列而成的,可实现数字"09"及少量字符的显示。另外为了显示小数点,增加了1个点状的发光二极管,因此数码管就由8个LED组成,我们分别把这些发光二极管命名为 "a,b,c,d,e,f,g,dp",排列顺序如下图(1):图(1)数码管的分类:数码管按各发光二极管电极的连接方式分为共阳数码管和共阴数码管两种。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。共阴数码管内部连接。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阳数码管内部连接。数码管的显示方式:数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。1.3 译码器简介译码器是组合逻辑电路的一个重要的器件,其可以分为:变量译码和显示译码两类。变量译码一般是一种较少输入变为较多输出的器件,一般分为2n译码和8421BCD码译码两类。显示译码主要解决二进制数显示成对应的十、或十六进制数的转换功能,一般其可分为驱动LED和驱动LCD两类。译码是编码的逆过程,在编码时,每一种二进制代码,都赋予了特定的含义,即都表示了一个确定的信号或者对象。把代码状态的特定含义“翻译”出来的过程叫做译码,实现译码操作的电路称为译码器。或者说,译码器是可以将输入二进制代码的状态翻译成输出信号,以表示其原来含义的电路。根据需要,输出信号可以是脉冲,也可以是高电平或者低电平。CD4511 是一片 CMOS BCD锁存/7 段译码/驱动器,。其中a b c d 为 BCD 码输入,a为最低位。LT为灯测试端,加高电平时,显示器正常显示,加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。ag是 7 段输出,可驱动共阴LED数码管。另外,CD4511显示数“6”时,a段消隐;显示数“9”时,d段消隐。 2 系统设计方案2.1 单片机的基本原理单片机的基本结构 :运算器:用于实现算术和逻辑运算。计算机的运算和处理都在这里进行; 控制器:是计算机的控制指挥部件,使计算机各部份能自动协调的工作; 存储器:用于存放程序和数据(又分为内存储器和外存储器,内存储器就如我们电脑的硬盘,外存储器就如我们的U盘) ;输入设备:用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪); 输出设备:输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存(例如我们的打印机)。 注:通常把运算器和控制器合在一起称为中央处理器(Central Processing Unit),简称CPU。 通常把外存储器、输入设备和输出设备合在一起称之为计算机的外部设备。1 中央处理器(CPU): MCS-51的CPU能处理8位二进制数或代码; 2 内部数据存储器(RAM): 8051芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00HFFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。 3 内部程序存储器(ROM): 在前面也已讲过,8051内部有4KB的ROM,用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000HFFFFH(64KB)。 4 定时器/计数器 8051共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。 5 并行I/O口 MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。具体功能在后面章节中将会详细论述。 6 串行口 MCS-51有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。RXD( P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。 7 中断控制系统 MCS-51单片机的中断功能较强,以满足不同控制应用的需要。共有5个中断源,即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别。 8 时钟电路 MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率为12MHZ 。51单片机执行指令的过程单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-分析指令-执行指令。 取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。 分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。 一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。 下面我们将举个实例来说明指令的执行过程: 开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取 出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。 例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器, 0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是: 1 程序计数器的内容(这时是0000H)送到地址寄存器; 2 程序计数器的内容自动加1(变为0001H);3 地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中; 4 CPU使读控制线有效; 5 在读命令控制下被选中存储器单元的内容(此时应为74H)送到内部数据总线上,因为是取指阶段,所以该内容通过数据总线被送到指令寄存器。至此,取指阶段完成,进入译码分析和执行指令阶段。由于本次进入指令寄存器中的内容是74H(操作码),以译码器译码后单片机就会知道该指令是要将一个数送到A累加器,而该数是在这个代码的下一个存储单元。所以,执行该指令还必须把数据(E0H)从存储器中取出送到CPU,即还要在存储器中取第二个字节。其过程与取指阶段很相似,只是此时PC已为0001H。指令译码器结合时序部件,产生74H操作码的微操作系列,使数字E0H从0001H单元取出。因为指令是要求把取得的数送到A累加器,所以取出的数字经内部数据总线进入A累加器,而不是进入指令寄存器。至此,一条指令的执行完毕。单片机中PC=0002H,PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能。2.2 单片机型号的选择1、型号: MCS 51系列2、51系列的有很多厂家的,AT公司的、STC公司的等只有几块钱到几十块钱,当然C8051F的从十块钱左右至几百块钱,也就是说C8051F的稍微贵一点。3、由于本次设计要求不是很高所以选用中等价位的比较合适。2.3 译码器原理显示译码器CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码七段码译码器,特点如下:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。用CD4511实现LED与单片机的并行接口方法如下图(2)图(2)CD4511 引 脚其功能介绍如下: BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示字。图 (3)CD4511引脚 LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。 LE:锁定控制端,当LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。 A1、A2、A3、A4、为8421BCD码输入端。 a、b、c、d、e、f、g:为译码输出端,输出为高电平1有效。 CD4511的内部有上拉电阻,在输入端与数码管笔段端接上限流电阻就可工作。1. CD4511的引脚CD4511具有锁存、译码、消隐功能,通常以反相器作输出级,通常用以驱动LED。其引脚图如3所示。各引脚的名称:其中7、1、2、6分别表示A、B、C、D;5、4、3分别表示LE、BI、LT;13、12、11、10、9、15、14分别表示 a、b、c、d、e、f、g。左边的引脚表示输入,右边表示输出,还有两个引脚8、16分别表示的是VDD、VSS。2. CD4511的工作原理 (1)锁存功能 译码器的锁存电路由传输门和反相器组成,传输门的导通或截止由控制端LE的电平状态。 当LE为“0”电平导通,TG2截止;当LE为“1”电平时,TG1截止,TG2导通,此时有锁存作用。(2)译码CD4511译码用两级或非门担任,为了简化线路,先用二输入端与非门对输入数据B、C进行组合,得出、四项,然后将输入的数据A、D一起用或非门译码。(3)消隐BI为消隐功能端,该端施加某一电平后,迫使B端输出为低电平,字形消隐。消隐控制电路如图3-4所示。消隐输出J的电平为J= =(C+B)D+BI 如不考虑消隐BI项,便得J=(B+C)D 据上式,当输入BCD代码从1010-1111时,J端都为“1”电平,从而使显示器中的字形消隐。 8421 BCD 码对应的显示见下图(4):图(4)选用共阴极数码管,对于 CD4511 ,它与数码管的基本连接方式如下图(5) :图(5) 2.4 硬件电路图及其原理说明 1. 显示原理 电路原理见下图6。由6 个共阴极的数码管组成时、分、秒的显示。P0 口的8 条数据线P0.0 至P0.7 分别与两个CD4511 译码的ABCD 口相接,P2 口的 P2.0 至P2.2 分别通过电阻R10 至R13 与VT1 至VT3 的基极相连接。这样通过P0 口送出一个存储单元的高位、低位BCD 显示代码,通过P2 口送出扫描选通代码轮流点亮LED1 至LED6,就会将要显示的数据在数码管中显示出来。从P0 口输出的代码是BCD 码,从P2 口输出的就是位选码。这是扫描显示原理。 2. 数码管结构及代码显示共阴LED 数码管由8 只发光二极管VD1 至VD8 共阴连接并按. 8. 字形结构排列而成。这样,我们将这些二极管的正极接高低不同的电位,把所有的负极接地,当正极为高电位时相应的二极管就会导通而发光,从而使数码管呈现不同的字符。而只有P2 相应呈现高电位, VT 个管导通,LED1 的GND 与地相接,LED 位被选中才具备发光的使能条件;可见,在利用P2 口送出位选码,使各位轮流得到发光使能条件的同时,通过P0 口分别送出不同的段选码, 就会在LED1 至LED4 中显示出不同的数字来。 3. 键盘及读数原理 键盘是人与微机打交道的主要设备,按键的读取容易引起误动作。可采用软件去抖动的方法处理,软件的触点在闭合和断开的时候会产生抖动,这时触点的逻辑电平是不稳定的,如不采取妥善处理的话,将引起按键命令错误或重复执行,在这里采用软件延时的方法来避开抖动,延时时间20ms. 4. 连击功能的实现 按下某键时,对应的功能键解释程序得到执行,如操作者没有释放按键,则对应的功能会反复执行,好象连续执行,在这里我们采用软件延时250ms,当按键没释放则执行下一条对应程序。利用连击功能,能实现快速调时操作。 图(6) 电路原理图3 程序详细设计3.1 程序流程图图(7):实验主程序流程图 图(8):定时中断流程图流程图(9)调整功能流程图3.2 程序清单ORG 0000H ;程序执行开始地址LJMPSTART ;跳到标号START执行 ORG 0003H ;外中断0中断程序入口RETI ;外中断0中断返回ORG 000BH ;定时器T0中断程序入口LJMPINTT0 ;跳至INTTO执行 ORG 0013H ;外中断1中断程序入口 RETI ;外中断1中断返回 ORG 001BH ;定时器T1中断程序入口 LJMPINTT1 ;跳至INTT1执行 ORG 0023H ;串行中断程序入口地址 RETI ;串行中断程序返回; 主 程 序 : START: MOVR0,#70H ;清70H-7AH共11个内存单元 MOVR7,#0BH ; CLEARDISP: MOVR0,#00H ; INCR0 ; DJNZ R7,CLEARDISP; MOV20H,#00H ;清20H(标志用) MOV7AH,#0AH ;放入"熄灭符"数据 MOV TMOD,#11H;设T0、T1为16位定时器 MOVTL0,#0B0H ;50MS定时初值(T0计时用) MOVTH0,#3CH ;50MS定时初值 MOVTL1,#0B0H ;50MS定时初值(T1闪烁定时用) MOVTH1,#3CH ;50MS定时初值 SETB EA ;总中断开放 SETB ET0;允许T0中断 SETB TR0;开启T0定时器 MOVR4,#14H ;1秒定时用初值(50MS×20) START1: LCALL DISPLAY ;调用显示子程序 JNB P3.7,SETMM1 ;P3.7口为0时转时间调整程序 SJMP START1;P3.7口为1时跳回START1SETMM1:LJMP SETMM ;转到时间调整程序SETMM 1秒计时程序 : T0中断服务程序:INTT0: PUSH ACC ;累加器入栈保护 PUSH PSW ;状态字入栈保护 CLRET0 ;关T0中断允许 CLRTR0 ;关闭定时器T0 MOVA,#0B7H ;中断响应时间同步修正 ADDA,TL0;低8位初值修正 MOVTL0,A;重装初值(低8位修正值) MOVA,#3CH ;高8位初值修正 ADDC A,TH0; MOVTH0,A;重装初值(高8位修正值) SETB TR0 ;开启定时器T0 DJNZ R4, OUTT0;20次中断未到中断退出 ADDSS: MOV R4,#14H ;20次中断到(1秒)重赋初值 MOV R0,#71H ;指向秒计时单元(71H-72H) ACALL ADD1 ;调用加1程序(加1秒操作) MOVA,R3 ;秒数据放入A(R3为2位十进制数组合) CLR C ;清进位标志CJNE A,#60H,ADDMM; ADDMM: JCOUTT0 ;小于60秒时中断退出 ACALL CLR0 ;大于或等于60秒时对秒计时单元清0 MOV R0,#77H ;指向分计时单元(76H-77H) ACALL ADD1 ;分计时单元加1分钟 MOV A,R3 ;分数据放入A CLRC ;清进位标志 CJNE A,#60H,ADDHH;ADDHH: JC OUTT0 ;小于60分时中断退出 ACALL CLR0 ;大于或等于60分时分计时单元清0 MOV R0,#79H ;指向小时计时单元(78H-79H) ACALL ADD1 ;小时计时单元加1小时 MOVA,R3 ;时数据放入A CLRC ;清进位标志 CJNE A,#24H,HOUR ; HOUR: JC OUTT0 ;小于24小时中断退出 ACALL CLR0 ;大于或等于24小时小时计时单元清0OUTT0: MOV72H,76H ;中断退出时将分、时计时单元数据移 MOV73H,77H ;入对应显示单元 MOV74H,78H ; MOV75H,79H ; POP PSW;恢复状态字(出栈) POP