基于单片机的电子时钟设计.doc_第1页
基于单片机的电子时钟设计.doc_第2页
基于单片机的电子时钟设计.doc_第3页
免费预览已结束,剩余25页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高等职业技术学院毕业设计(论文)题 目:基于单片机的电子时钟设计 学 院:南昌航空大学高职学院专业名称:电气自动化技术班级学号:06903110学生姓名:XXXX指导教师:XXXX二OXXX 年 六 月 目录摘要 第一章 单片机知识介绍 1.1单片机的组成及特点 1.2单片机的分类1.3单片机的应用1.4单片机发展简史1.5单片机的中断系统 第二章 设计说明及硬件方案2.1 设计思路2.2 原理电路图2.3 主要元件功能说明2.4 硬件工作原理阐述第三章 软件方案3.1 分析论证3.2 程序流程图3.3 程序清单总结摘要单片计算机即单片微型计算机。(Single-Chip Microcomputer ),是 集 CPU ,RAM ,ROM ,定时,计数和多种接口于一体的微控制器。他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。而 51 单片机是各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。时钟,自从它发明的那天起,就成为人类的朋友,但随着时间的推移,科学技术的不断发展,人们对时间计量的精度要求越来越高,应用越来越广。怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。单片机在这种情况下诞生了。截止今日,单片机应用技术飞速发展,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。关键词:电子 时钟 单片机 第一章 单片机知识介绍1.1单片机的组成及特点 单片机是微型机的一个主要分支,在结构上的最大特点是把CPU、存储器、定时器和多种输入/输出接口电路集成在一块超大规模集成电路芯片上。就其组成和功能而言,一块单片机芯片就是一台计算机。 1.单片机的组成 它通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总线、数据总线和控制总线。其中,地址总线的作用是在进行数据交换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;/数据总线的作用是在CPU与存储器或I/O接口之间,或存储器与外设之间交换数据;控制总线包括CPU发出的控制信号线和外部送入CPU的应答信号线等。单片机中的CPU、存储器等部件将在后面章节陆续介绍。2. 单片机的特点 由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展。单片机主要发如下特点: (1)有优异的性能价格比。 (2)集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。 (3)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。 (4)低功耗、低电压,便于生产便携式产品。 (5)外部总线增加了I C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。 (6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。 1.2单片机的分类 单片机作为计算机发展的一个重要领域,应用一个较科学的分类方法。根据目前发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。 1. 通用型/专用型 这是按单片机适用范围来区分的。例如,80C51是通用型单片机,它不是为某种专用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。 2. 总线型/非总线型 这是按单片机是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总、线数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。 3. 控制型/家电型 这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。 1.3单片机的应用 由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。它的应用遍及各个领域,主要表现在以下几个方面: 1. 单片机在智能仪表中的应用 单片机广泛地用于各种仪器仪表,使仪器仪表智能化,并可以提高测量的自动化程度和精度,简化仪器仪表的硬件结构,提高其性能价格比。 2. 单片机在机电一体化中的应用 机电一体化是械工业发展的方向。机电一体化产品是指集成机械技术、微电子技术、计算机技术于一体,具有智能化特征的机电产品,例如微机控制的车床、钻床等。单片机作为产品中的控制器,能充分发挥它的体积小、可靠性高、功能强等优点,可大大提高机器的自动化、智能化程度。 3. 单片机在实时控制中的应用 单片机广泛地用于各种实时控制系统中。例如,在工业测控、航空航天、尖端武器、机器人等各种实时控制系统中,都可以用单片机作为控制器。单片机的实时数据处理能力和控制功能,可使系统保持在最佳工作状态,提高系统的工作效率和产品质量。 4. 单片机在分布式多机系统中的应用 在比较复杂的系统中,常采用分布式多机系统。多机系统一般由若干台功能各异的单片机组成,各自完成特定的任务,它们通过串行通信相互联系、协调工作。单片机在这种系统中往往作为一个终端机,安装在系统的某些节点上,对现场信息进行实时的测量和控制。单片机的高可靠性和强抗干扰能力,使它可以置于恶劣环境的前端工作。 5. 单片机在人类生活中的应用 自从单片机诞生以后,它就步入了人类生活,如洗衣机、电冰箱、电子玩具、收录机等家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。单片机将使人类生活更加方便、舒适、丰富多彩。 综合所述,单片机已成为计算机发展和应用的一个重要方面。另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。1.4单片机发展简史如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段:(1)第一阶段(1976-1978):单片机的控索阶段。以Intel公司的MCS 48为代表。MCS 48的推出是在工控领域的控索,参与这一控索的公司还有Motorola 、Zilog等,都取得了满意的效果。这就是SCM的诞生年代,“单机片”一词即由此而来。 (2)第二阶段(1978-1982)单片机的完善阶段。Intel公司在MCS 48 基础上推出了完善的、典型的单片机系列MCS 51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。 完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有很多机通信功能的串行通信接口。 CPU外围功能单元的集中管理模式。 体现工控特性的位地址空间及位操作方式。 指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。 (3)第三阶段(1982-1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS 96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着MCS 51系列的广应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。 (4)第四阶段(1990):微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。 单片机的发展趋势 目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。 CMOS化 近年,由于CHMOS技术的进小,大大地促进了单片机的CMOS化。CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态。这也是今后以80C51取代8051为标准MCU芯片的原因。因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。CMOS电路的特点是低功耗、高密度、低速度、低价格。采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大。随着技术和工艺水平的提高,又出现了HMOS(高密度、高速度MOS)和CHMOS工艺。CHMOS和HMOS工艺的结合。目前生产的CHMOS电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路。因而,在单片机领域CMOS正在逐渐取代TTL电路。 低功耗化 单片机的功耗已从Ma级,甚至1uA以下;使用电压在36V之间,完全适应电池工作。低功耗化的效应不仅是功耗低,而且带来了产品的高可靠性、高抗干扰能力以及产品的便携化。 低电压化 几乎所有的单片机都有WAIT、STOP等省电运行方式。允许使用的电压范围越来越宽,一般在36V范围内工作。低电压供电的单片机电源下限已可达12V。目前0.8V供电的单片机已经问世。 低噪声与高可靠性 为提高单片机的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,各单片厂家在单片机内部电路中都采用了新的技术措施。 大容量化 以往单片机内的ROM为1KB4KB,RAM为64128B。但在需要复杂控制的场合,该存储容量是不够的,必须进行外接扩充。为了适应这种领域的要求,须运用新的工艺,使片内存储器大容量化。目前,单片机内ROM最大可达64KB,RAM最大为2KB。 高性能化 主要是指进一步改进CPU的性能,加快指令运算的速度和提高系统控制的可靠性。采用精简指令集(RISC)结构和流水线技术,可以大幅度提高运行速度。现指令速度最高者已达100MIPS(Million Instruction Per Seconds,即兆指令每秒),并加强了位处理功能、中断和定时控制功能。这类单片机的运算速度比标准的单片机高出10倍以上。由于这类单片机有极高的指令速度,就可以用软件模拟其I/O功能,由此引入了虚拟外设的新概念。 小容量、低价格化 与上述相反,以4位、8位机为中心的小容量、低价格化也是发展动向之一。这类单片机的用途是把以往用数字逻辑集成电路组成的控制电路单片化,可广泛用于家电产品。 外围电路内装化 这也是单片机发展的主要方向。随着集成度的不断提高,有可能把众多的各种处围功能器件集成在片内。除了一般必须具有的CPU、ROM、RAM、定时器/计数器等以外,片内集成的部件还有模/数转换器、DMA控制器、声音发生器、监视定时器、液晶显示驱动器、彩色电视机和录像机用的锁相电路等。 串行扩展技术 在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。随着低价位OTP(One Time Programble)及各种类型片内程序存储器的发展,加之处围接口不断进入片内,推动了单片机“单片”应用结构的发展。特别是I C、SPI等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。 随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强。在单片机家族中,80C51系列是其中的佼佼者,加之Intel公司将其MCS 51系列中的80C51内核使用权以专利互换或出售形式转让给全世界许多著名IC制造厂商,如Philips、 NEC、Atmel、AMD、华邦等,这些公司都在保持与80C51单片机兼容的基础上改善了80C51的许多特性。这样,80C51就变成有众多制造厂商支持的、发展出上百品种的大家族,现统称为80C51系列。80C51单片机已成为单片机发展的主流。专家认为,虽然世界上的MCU品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80C51可能最终形成事实上的标准MCU芯片。1.5单片机的中断系统 1、 中断源51单片机有5个中断源:两个外部中断、两个计数/定时器中断和一个串行口中断。2、 中断响应步骤:(1) 保护断点,即保存下一将要执行的指令的地址,就是把这个地址送入堆栈。(2) 寻找中断入口,根据5个不同的中断源所产生的中断,查找5个不同的入口地址。(3) 执行中断服务程序,用中断服务程序处理需要改变的变量或者事件。(4) 中断返回,执行完中断服务程序后,从中断断点处返回主程序,继续执行主程序。3、中断的实现寄存器IE、IP、TCON和SCON来控制中断申请、中断的开关和各种中断源的优先级确定。(1)中断方式和标志位 单片机的中断标志位和方式的选择是通过TCON达到低4位控制字实现的。TCON中的低4位用于外部中断的控制,高4位是T0、T1控制字。控制字如下: TCON中的控制字TCON.7TCON.6TCON.5TCON.4TCON.3TCON.2TCON.1TCON.0TF1TR1TF0TR0IE1IT1IE0IT0 外部中断请求源 IT0-INT0触发方式控制位,可由软件进行置位和复位.IT0=0,INT0为低电平触发方式;IT0=1,INT0为负跳变触发方式. IE0-INT0中断请求标志位.当有外部的中断请求时,这位就会置1(这由软件来完成),在CPU响应中断后,由硬件将IE0清0. 内部中断请求源 TF0-定时器T0的溢出中断标记,当T0计数产生溢出时,由硬件置位TF0.当CPU响应中断后,再由硬件TF0清0. TR0-定时器T0的中断允许.(2)中断允许寄存器IEIE.7IE.6IE.5IE.4IE.3IE.2IE.1IE.0EAXXESET1EX1ET0EX0其中: EA:总开关,如果它等于0,则所有中断都不允许。 ES:串行口中断允许。 ET1:定时器1中断允许。 EX1:外中断1中断允许。 ET0:定时器0中断允许。 EX0:外中断0中断允许。 (3)5个中断源的优先级单片机的中断服务入口地址如下,它们的自然优先级由高到低排列。外中断0:0003H定时器0:000BH外中断1:0013H定时器1:001BH串口:0023H开机时,每个中断都处于低优先级,我们可以用指令对优先级进行设置,中断优先级由中断优先级寄存器IP来设置,IP中某位设为1,相应的中断就是高优先级,否则就是低优先级。-IP.4IP.3IP.2IP.1IP.0EAXXPSPT1PX1PT0PX04、中断服务函数的完整语法 返回值 函数名称(参数)模式重入 interrupt n using n 其中,interrupt n对应的是中断源的编号,而using n决定了使用寄存器的组号。51系统中有4个寄存器组,具体的位置取决于PSW(程序状态字)的两位RS0、RS1的设置。当运行一个中断任务时,采用不同的寄存器组。在C51中,寄存器组的选择就取决于using 后的变量的指定,变量为一个03的整数。 第二章 硬件方案2.1 设计思路 电子时钟主要由显示模块、校时模块和时钟运算模块三大部分组成。其中校时模块和时钟运算模块要对时、分、秒的数值进行操作,并且秒计算到60时,要自己清零并向分进1;分计算到60时,要自己清零并向时进1;时计算到24时,要清零。这样,才能循环记时。2.1.1 电源电路部分 在各种电子设备中,直流稳压电源是必不可少的组成部分,它是电子设备唯一能量来源,它的设计思路是根据我们以前学过的模电电子技术,要想得到我们所要的+6V输出电压,就需将交流220V的电压经过变压器、整流电路、滤波电路和稳压电路四个部分。2.1.2显示部分显示部分是整个电子时钟最为重要的部分,它分为时间的显示和温度的显示两部分,共需要8位LED显示器。采用动态显示方式,所谓动态显示方式是时间(或温度)数字在LED上一个一个逐个显示,它是通过位选端控制在哪个LED上显示数字,由于这些LED数字显示之间的时间非常的短,使的人眼看来它们是一起显示时间数字的,并且动态显示方式所用的接口少,节省了CPU的管脚。由于端口的问题以及动态显示方式的优越性,在此设计的连接方式上采用共阴级接法。显示器LED有段选和位选两个端口,首先说段选端,它由LED八个端口构成,通过对这八个端口输入的不同的二进制数据使得它的时间显示也不同,从而可以得到我们所要的时间显示。但对于二十个管脚的8031来说,LED八个段选管脚太多,于是我选用74LS164芯片来扩展主芯片的管脚,74LS164是数据移位寄存器,还选用了74LS244作为数据缓存器。2.1.3 键盘部分它是整个系统中最简单的部分,根据功能要求,本系统共需四个按键:功能移位键、功能加键、功能减键、定闹键。并采用独立式按键。 2.2 设计内容用8013单片机CPU及接口电路设计并实现显示时间的实时时钟。2.3 设计要求(1) 在ZY15MCU12BD型综合单片机试验箱的硬件结构上编写软件完成设计。(2) 程序的首地址应使目标机可以直接运行,即从0000H开始。在主程序的开始部分必须设置一个合适的栈底。程序放置的地址须连续且靠前,不要在中间留下大量的空间地址,以使目标机可以使用较少的硬件资源。(3) 6位LED数码管从左到右分别显示时. 分. 秒(各占用2位),采用24小时标准计时制。开始计时时为000000,到235959后变成000000.(4) 在XD12键盘上选定3个键分别作为小时. 分. 秒的调校键。每按一次键,对应的显示值便加1。分. 秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小时不发生改变).(5) 软件设计必须使用8031片内定时器,采用定时中断结构,不得使用软件延时法。(6) 上机调试程序。 (7) 写出设计报告。2.4 设备及工作环境(1) 硬件:计算机一台、ZY15MCU12BD型综合单片机实验箱一台、通讯电缆一根。(2) 软件:Windows操作系统、Keil C51软件。 2.5 硬件结构及原理电路图1. 功能: 1) 开机时,显示12:00:00的时间开始计时; 2) P0.0/AD0控制“秒”的调整,每按一次加1秒; 3) P0.1/AD1控制“分”的调整,每按一次加1分;4) P0.2/AD2控制“时”的调整,每按一次加1个小时; 系统板上硬件连线 (1)把“单片机系统”区域中的P1.0P1.7端口用8芯排线连接到“动态数码显示”区域中的AH端口上; (2)把“单片机系统:区域中的P3.0P3.7端口用8芯排线连接到“动态数码显示”区域中的S1S8端口上; (3)把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上; 2.3 主要硬件元件功能说明 2.3.1 8255A的主要功能: 本数字时钟采用8255接口芯片作为显示/键盘接口电路。适用线选法对8255选中其工作。方法为:在P2.6引脚上接一反相器与8255的片选线CS(底电平有效)相连。当P2.6=1则表示地址4000H,此时CS=0。此时选中8255工作且选中地址4000H。对8255接口电路 8255的地址分配:A口:4000H B口:4001H C口:4002H 控制口:4003H8031的P0口与8255的数据线相连,同时P0口接一个锁存器,即74LS373的Q0、Q1与8255的地址线A0、A1相连。当ALE=1时,锁存器74LS373工作,锁存地址A0、A1,A1A0有四种组合00、01、10、11这与线选初始地址4000H结合可得到四个地址4000H、4001H、40002、4003H,此时可正好分配8255的4个端口地址,即A口:4000H、B口:4001H、C口:4002H、控制口:4003H2.3.2 时钟电路的主要功能:8031单片机的时钟信号通常用内部振荡方式得到:在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。图中,电容器C0l,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MHZ, 2.4 硬件工作原理阐述电子时钟主要由8031片内定时器定时中断,并取一存储单元作为计数器使用,每中断一次,在中断服务程序中使计数器加1、8031芯片、74LS373锁存器、8255A接口芯片、74LS240驱动器、LED数码显示管和4*4键盘组成。主要用8031片内定时器定时中断服务程序完成秒、分、时的运算即计时功能,TIME0的中断服务程序完成调时、调分、调秒功能。8255A负责将内存里的时位、分位和秒位数值输出到数码管。同时按键01键、02键、03键是分别对时、分、秒的加1校对;05键、06键、07键时分别对时、分、秒的减1校对;00键是清零键。并且开机时时钟时从000000开始计时的,到235959时在回到000000.第三章 软件方案3.1 分析论证此实时时钟的设计与实现,主要采用了6只LED数码管,8031内部二进制16位定时器/计数器,可编程中断控制器8031等芯片,包括显示模块,运算模块和校时模块三大功能模块。3.1.1 显示模块:用8255控制,用数码管的显示功能来设计。显示部分硬件用六只LED为显示管,这些LED发光二极管的阴极是互相连接在一起的,所以称为共阴极数码管。通过在这8只发光二极管的阳极加+5 V或0 V的电压使不同的二极管发光,形成不同的数字。该模块主要是将运算模块和校时模块运算出来并存放在内存单元里的十六进制表示的时位、分位和秒位数值转化为十进制,并通过8只数码管显示出来。该模块实现的硬件是DVCC8086JH实验箱中的LED单元,采用软件译码,即在程序中设置一个段选码表。CPU直接往LED输出八段代码,省去了硬件译码器。A0A3作为8段数据输出口,经74LS07驱动后到达各LED。只要做到每送一次段选码时也送一次位扫描码,并且每送一次位扫描码后,位码中的0右移一位作为下一次的位扫描码,即可实现由左向右使6只LED依次出现数字显示。3.1.2 运算模块:该模块的主要功能是对时、分、秒的运算,并把运算出的最终结果存到事先已经开辟的内存单元里,以便显示模块即时地显示出来。该模块可以细分为秒定时模块和运算模块。秒定时模块负责提供中断信号,由于CPU运算模块中的指令消耗一定的时间,所以中断信号最好通过硬件来实现。本实验中用8031定时器/计数器,但因为8031供的信号的周期是毫秒级的,因此必须通过软件的方法在运算模块中设置一个统计中断次数的变量,并且这一变量必须事先在内存里开辟存储单元。中断信号是8031工作方式为方式1,产生一个50ms的脉冲信号。运算模块负责时、分、秒的计算,该模块主要通过8031的IR1号中断来实现,但由于每50ms一次中断请求,所以在中断服务程序必须利用已申请内存单元26H来统计中断请求的次数,只有当26H的值为20时,才能让秒单元内的数值加1。在中断服务程序里,必须对秒、分和时的单元内的数值进行判断,当秒加到60时,分必须加1 、秒清零;当分加到60时,时加1、分清零。当时加到24时,直接清零。然后转到调用处。3.1.3 校时模块:该模块主要功能是修改时、分、秒内存单元的数值。每按一次键,对应的显示值便加1。分、 秒加到59后变为00;小时加到23后再按键即变为00.再调校时均不向上一单位进位(例如分加到59后变为00;但小时不发生改变)。注意:在主程序中对时间进行调校前应关闭中断,以防在调校过程中定时中断服务程序也对时间进行修改而造成混淆。3.1.4 整体功能:在6块LED数码管上能实现数字时钟的时、分、秒显示,并能对时、分、秒进行加1校对、减1校对和清零。本实验中01键、02键、03键是分别对时、分、秒的加1校对;05键、06键、07键时分别对时、分、秒的减1校对;00键是清零键。并且开机时时钟时从000000开始计时的,到235959时在回到000000.3.2 程序清单 ORG 0000H LJMP START ORG 000BH LJMP TIME0START: MOV SP,#60HAGAIN: CPL P1.0 MOV R0,#10LOOP1: MOV R1,#100LOOP2: MOV R2,#250 DJNZ R2,$ DJNZ R1,LOOP2 DJNZ R0,LOOP1 MOV DPTR,#4003H ;8255初始化 MOV A,#10000001B MOVX DPTR,A MOV TMOD,#01H ;选择方式. MOV TH0,#3CH MOV TL0,#0B0H MOV 20H,#00H ;赋初值 MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00H MOV 26H,#00HLOOP: MOV IE,#82H ;开中断 SETB TR0 ;启动T0计数 LCALL DIS LCALL KEY CJNE A,#0FFH, DDDD ;若有键按下,DDDD SJMP LOOP ;无键按下,则转LOOPDDDD: MOV IE,#00H ;关中断 CJNE A,#03H,LOOP3 ;按下的键为秒键往下执行 INC 25H MOV A,25H CJNE A,#10,LOOP MOV 25H,#0 INC 24H MOV A,24H CJNE A,#6,LOOP MOV 24H,#0 SJMP LOOP LOOP3: CJNE A,#02H,LOOP4 ;按下的键为分键往下执行 INC 23H MOV A,23H CJNE A,#10,LOOP MOV 23H,#0 INC 22H MOV A,22H CJNE A,#6,LOOP MOV 22H,#0 SJMP LOOPLOOP4: CJNE A,#01H,LOOP4B ;按下的键为小时键往下执行 INC 21H MOV A,21H CJNE A,#10,LOOP5 MOV 21H,#0 INC 20HLOOP4B: CJNE A,#00H,LOOP4C MOV 20H,#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H MOV 25H,#00HLOOP5: MOV A,20H SWAP A ORL A,21H CJNE A,#24H,LOOP MOV 20H,#0 MOV 21H,#0 SJMP LOOP ;-各键减1校时程序- LOOP00: LJMP LOOPLOOP4C:CJNE A,#07H,LOOP30 MOV A,25H DEC 25H CJNE A,#0,LOOP00 MOV 25H,#9 MOV A,24H DEC 24H CJNE A,#0,LOOP00 MOV 24H,#5 SJMP LOOP00LOOP30: CJNE A,#06H,LOOP40 MOV A,23H DEC 23H CJNE A,#0H,LOOP00 MOV 23H,#9 MOV A,22H DEC 22H CJNE A,#0,LOOP00 MOV 22H,#5 SJMP LOOP00LOOP40:CJNE A,#05H,LOOP00 MOV A,21H CJNE A,#0,LOOP5A MOV A,20H CJNE A,#0,LOOP5B MOV 21H,#3 MOV 20H,#2 SJMP LOOP00LOOP5A: DEC 21H LJMP LOOP00LOOP5B: DEC 20H MOV 21H,#9 LJMP LOOP00;-显示子程序-DIS: MOV PSW,#08H MOV R0,#20H MOV R2,#0FEHLOOP10: MOV A,R0 MOV DPTR,#ASCTAB MOVC A,A+DPTR ;查字形代码 MOV DPTR,#4001H ;字形代码送B段口 MOVX DPTR,A MOV A,R2 MOV DPTR,#4000H ;字形代码送A位口 MOVX DPTR,A MOV R1,#250 DJNZ R1,$ MOV A,#0FFH ;关闭所有的显示位即位口置高电平 MOVX DPTR,A MOV A,R2 RL A MOV R2,A INC R0 CJNE R0,#26H,LOOP10 RETASCTAB: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H, 82H, 0F8H,80H, 90H DB 88H, 83H, 0C6H,0A1H,86H DB 8EH, 40H, 79H, 24H, 30H DB 19H, 12H, 02H, 78H, 00H DB 80H, 08H, 03H, 46H, 21H DB 06H, 0EH, 0BFH,0FFH;-扫描子程序-KEY: MOV DPTR,#4002H MOV A, #00001111B MOVX DPTR, A MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,NEXT SJMP LOOP8 NEXT: MOV R2,#11101111BLOOP6: MOV A,R2 MOV DPTR,#4002H MOVX DPTR,A MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,NEXT1 LOOP7: MOV A,R2 RL A MOV R2,A JB ACC.0,LOOP6 LOOP8: MOV A,#0FFH RETNEXT1: MOV R6,A MOV R3,#100 LOOP9: MOV R4,#100 DJNZ R4,$ DJNZ R3,LOOP9 MOVX A,DPTR ANL A,#0FH XRL A,R6 JNZ LOOP7LOOP20: MOVX A,DPTR ANL A,#0FH CJNE A,#0FH,LOOP20 MOV A,R6 ANL A,#0FH MOV R6,A MOV A,R2 ANL A,#0F0H ORL A,R6 CALL KEY20 RET;-查键子程序-KEY20: PUSH ACC MOV R1,#00HKEY21:JNB ACC.4,KEY22 RR A INC R1 SJMP KEY21KEY22:MOV A,R1 MOV B,#4 MUL AB MOV R1,A POP ACCKEY23:JNB ACC.0,KEY24 RR A INC R1 SJMP KEY23KEY24:MOV DPTR,#KEYTAB MOV A,R1 MOVC A,A+DPTR RETKEYTAB:DB 0FH,0BH,07H,03H DB 0EH,0AH,06H,02H DB 0DH,09H,05H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论