资源描述
湖北轻工职业技术学院毕业设计(论文)数字电子钟的设计姓名:学号:系部:信息工程系专业: 电子信息工程技术班级:指导教师:日期:湖北轻工职业技术学院毕业设计(论文)任务书学生姓名:专业班级:指导教师: E-mail : kevinix设计(论文)题目: 数字电子钟的设计设计(论文)主要内容:1 .总体介绍数字时钟。包括:目前常见数字时钟的实现方式有哪些、各自特点、本设计采用的实现方式具有的特点或好处。2 .设计的数字钟应具有的基本功能:数字显示小时、分、秒。设计要求精度为1秒,可24小时制或12小时制。并还具有扩展功能。3 .数字钟的工作方框图、电路原理图。分别说明各功能模块的基本组成、工作机 理、画出各功能模块的电路图。各个模块之间怎样联系,时钟信号传输路径、 方向和频率变化用文字对原理图作辅助说明。4 .根据电路原理图。说明使用集成电路的逻辑功能、主要参数、使用方法、引脚 安排,并说明所选用的其它电子元件的功能。5 .实现电路。选择合适的芯片以及显示器件。6 .小结:设计过程中遇到的问题及解决办法、课程设计过程体会、创新点、新颖性、应用价值等。要求完成的主要任务:本课题要求完成的主要任务是如何实现数字钟。 首先是对数字钟的基本知识有 个大致回顾,说明数字钟的实现方法;其次说明所选用的设计方法的特点;然后 实现电路的原理、各功能模块的作用及相互关系,并在软件仿真平台上实现电路; 最后在硬件平台上完成数字钟的制作。指导教师签名: 教研室主任签名:湖北轻工职业技术学院毕业设计(论文)开题报告题目数字电子钟的设计系部 信息工程系专业 电子信息工程技术班级姓名学号指导教师2013年2月27 日一、选题的依据及意义随着电子技术的发展,电子时钟在各个领域的运用也越来越广泛。人们对它的 认识也逐步加深,且对于电子时钟的性能问题要求也越来越高。所以此课题重在 时钟的功能的设计上不断完善,外加自己的创意,解决一些实际问题,让理论与 实践结合起来。二、国内外研究概况及发展趋势电子钟有着很长的历史,从民国19年的电钟,研制始于60年代中期的国内电 晶体、半导体管钟,到研制始于70年代末的石英电子钟,再到今天我们所用的智 能电子钟。以前的电子钟存在着很多缺点,其外观体积庞大,在功能上有死摆、 走时时间不长、走时精确度不高等缺点。如今无论是外观,还是在功能上,电子 钟都有了很大的改进。数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置,广泛用于个人 家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用 ,使得数字钟的精度,远远超过 老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了 钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、 定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的 自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大 其应用,有着非常现实的意义.三、研究内容及实现方案数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比 具有更高的更长的使用寿命,因此得到了广泛的使用。在数字钟的发展上看,主 要向小型化、多功能化发展。数字钟从原理上讲是一种典型的数字电路,其中包 括了组合逻辑电路和时序电路。传统的设计方法有两种,一是利用组合逻辑电路 和时序电路等中小规模集成电路来设计;一是利用单片机编程技术来设计。这两 种设计都存在硬件复杂,设计周期长,成本高等缺点。本次需要设计一个数字电 子时钟,以单片机为核心器件。自动计时,由液晶显示器显示时,分和秒。具备 定时闹钟功能,具有很强的适用性,可广泛应用于市场。1 .经过网络搜索,及相关书目,查询本设计需要的资料2 .查阅相关的单片机信息,选择合适的单片机和相关元件3 .确定设计方案,写出方案的实现步骤,书写中文摘要4 .画出控制原理图,焊接硬件并对程序进行调试5 .撰写论文。四、 目标、主要特色及预计工作进度目标是设计一个以单片机为核心器件。自动计时,由6位LED显示器显示时,分和秒的数字电子钟。其主要特色是具有定时闹钟功能。2013年3月5-12日:搜集相关资料,熟悉毕业设计课题;2013年3月13-17日:总体方案设计;2013年3月18-31日:软件系统设计;2013年4月1-15日:硬件系统设计及电路制作;2013年4月16-30日系统调试;2013年5月1-15日编写毕业论文。摘要加入世贸组织后,中国将面临激烈的竞争。这场比赛将是一场科技实力,管理水 平和人才素质的较量,风险和机遇并存,及电子产品的发展变化迅速,不仅在通 信技术的数字替代模拟信号,甚至在我们日常的生活让数字化取缔.相比模拟钟能给人一种一目了然的感觉,它不仅可以显示在同一时间,时、分和秒,并且可以 完成准确的校正。同时,数字时钟可以准确的时间,你的时间精确到报时的声音, 提醒你在这个时候,需要做的事情。老式时钟比它更适合现代生活。一个数字时 钟振荡器,计数器,译码器和显示器电路精确时间“小时”“分” “秒”与数字显小,并需要校上电路使其准确的工作也刊市定时和计时功能,数字钟及扩大 其应用,有着非常现实的意义。关键词:数字钟 振荡器 计数器 译码显示湖北轻工职业技术学院目 录引 言2第1章数字电子时钟总体设计 31.1 设计方案 31.1.1 核心控制方案 31.1.2 显示部分方案 31.1.3 键盘方案31.2 方案选择31.2.1 时间显示41.2.2 时间调整41.2.3 闹钟设置4第2章数字电子时钟硬件电路设计 52.1 硬件电路采用器件 52.2 AT89C51单片机模块 52.3 可编程I/O 扩展一8155芯片模块 62.3.1 8155 芯片的内部结构 62.3.2 8155 芯片与51单片机接口 62.4 显示模块72.4.1 数码管结构及工作原理 72.4.2 数码管分类72.4.4 数码管光源的优缺点 82.5 矩阵键盘模块92.5.1 矩阵键盘的工作原理 9第3章数字电子时钟软件电路设计 103.1 系统软件设计流程图 103.1.1 主程序流程103.1.2 按键处理流程 103.1.3 定时器中断流程 103.1.4 时间显示流程 11第4章数字电子时钟系统调试 134.1 软、硬彳牛调试134.1.1 测试 AT89C51 单片机、8155、74LS07 芯片134.1.2 测试硬件电路134.1.3 软件电路调试 134.2 统一调试13总结14致 谢14参考文献 16附录1720世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗 透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高, 同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘 记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重 要事情,一时的耽误可能酿成大祸。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着科技化、 低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。 下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变 了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的 大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控 制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、 秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置, 具有更更长的使用寿命,因此得到了广泛的使用。电子钟有着很长的历史,从民国19年的电钟,研制始于60年代中期的国内 电晶体、半导体管钟,到研制始于 70年代末的石英电子钟,再到今天我们所用的 智能电子钟。以前的电子钟存在着很多缺点,其外观体积庞大,在功能上有死摆、 走时时间不长、走时精确度不高等缺点。如今无论是外观,还是在功能上,电子 钟都有了很大的改进。数字钟是采用数字电路实现对时,分,秒.数字显示的计时装置,广泛用于个人 家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了 钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、 定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的 自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大 其应用,有着非常现实的意义。第1章 数字电子时钟总体设计1.1 设计方案1.1.1 核心控制方案采用单片机作为数字电子时钟的核心控制部分1.1.2 显示部分方案方案一:静态显示就是当 CPU将要显示的字或字段码送到输出口,显示器就 可以显示出所要显示的字符,如果 CPU不去改写它,它将一直保持下去;静态显 示硬件开销大,电路复杂,信息刷新速度慢。方案二:动态显示则是一位一位地轮流点亮显示器地各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次;动态显示耗能较小,但编写程序较 复杂。动态显示硬件连接简单,信息刷新速度快。1.1.3 键盘方案矩阵式键盘。矩阵式键盘采用的是行列式结构,按键设置在行列的交点上.(当 接口线数量为8时,可以将4根接口线定义为行线,另4根接口线定义为列线,形成 4X 3键盘,可以配置12个按键。)1.2 方案选择经过论证,决定采用AT89C51单片机作为数字电子时钟的核心部分,采用8155 以及6位数码管作为显示系统,采用4X3矩阵键盘作为数字电子时钟的控制系统 的方案。8155如图1-1数字电子时钟硬件电路图AT89C51图1-1数字电子时钟控制系统1.2.1 时间显示由于本方案需要显示时、分、秒三方面内容,所以计划采用 6位数码管作为 显示系统,上电后系统自动进入时钟显示,从 00:00:00开始计时,此时可以设定 当前时间。1.2.2 时间调整按下矩阵键盘上的 C/R键(时间设定/起动计时键),系统停止计时,进入时 间设定状态,系统保持原有显示,等待键入当前时间,根据需要按下09数字键可以顺序设置分和秒,并在相应的 LED上显示设置值。6位设置完毕后,系统将从 设定后的时间开始计时显示。1.2.3 闹钟设置按下ALM (闹钟设置/启闹/停闹键),系统继续计时,显示00:00:00 ,进入 闹钟设置状态,等待键入启闹时间,根据需要按下 09数字键可以顺序进行相应 的时间设置,并在相应的LED上显示设置值。6位设置完毕后,系统启动定时启闹 功能,并恢复时间显示。定时时间一到,蜂鸣器就会鸣叫,直至重新按下ALM键停闹,并取消闹钟设置。第24页第2章 数字电子时钟硬件电路设计2.1 硬件电路采用器件数字电子时钟电路有80C51单片机、可编程I/O接口芯片8155、4X3键盘输 入电路、6位LED显示输出电路及74LS07为主要部件的蜂鸣器启闹电路组成。如图2-1数字电子时钟硬件电路图U2L图2-1数字电子时钟硬件电路图dp g fed c- b ia888888LEDO LED I LED2 LEI3 LEE4 LtO3!PI.0PLIp。nPO.lPi.2POJPt.3POJPl.4POTPL .5PO.JPL.6pm 6PI.7P0.7INTIP2.UINTOP2.Lrb EK5 p1 2TlP2 iTOP2.4R.SETRXD一TXD52 ALE.TROGWRPSENADOPAOAD1PAIAD2PAADJPA3AD4PA4ADSPA5AD&PA6AD7PA7PI训CFPBINI55PB2WRPB3IO/HPB4ALEPB5P06PB7timer or rPCDPCI TIM EH IN?C2PC3PC4RESEIPCS2.2 AT89C51单片机模块AT89C51单片机是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM Falsh Programmable and Erasable Read Only Memory )的低电压,高性能 CMOS8 位微处理器,俗称单片机。该器件采用 ATMEH密度非易失存储器制造技术制造, 与工业标准的MCS-5甘旨令集和输出管脚相兼容。由于将多功能 8位CPUffi闪烁存 储器组合在单个芯片中,ATMEL勺AT89C51是一种高效微控制器,为很多嵌入式控 制系统提供了一种灵活性高且价廉的方案。2.3 可编程I/O扩展一8155芯片模块8155是单片机常用的接口扩展芯片,其内部包含 256B的静态RAM 2个8位 的并行I/O接口,1个6位的并行I/O接口和一个14位的定时/计数器。2.3.1 8155 芯片的内部结构8155芯片内部共包括4个部分,分别是1、256B的静态RAM存取时间为400ns2、3个通用的输入/输出口 PA PB PC3、1个14位的可编程定时/计数器。4、1个8位命令寄存器(只能写入)/8位状态寄存器(只能读出)。8155芯片的具体结构如图 2-2。图2-2 8155 芯片结构图2.3.2 8155 芯片与51单片机接口8155芯片与51单片机接口如图2-3所示图2-3 8155芯片与51单片机接口2.4 显示模块根据硬件电路要求,本次数字电子时钟设计决定采用6位数码管作为显示模块。2.4.1 数码管结构及工作原理LED数码管(LEDSegmentDisplays )是由多个发光二极管封装在一起组成 “8” 字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。 LED 数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1, 2, 3, 4, 5, 6, 8, 10位等等。例如图2-4是4位8段共阴 极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。 颜色有红,绿,蓝,黄等几种。led数码管广泛用于仪表,时钟,车站,家电等场 合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。图2-4 4位8段数码管的连接2.4.2 数码管分类2.4.2.1 从控制方式上分:分为内控方式(内部有单片机,通电自动变色)和外控方式(需要外接控制 器才能变色)2.4.2.2 从变化方式上分:分为固定色彩的和七彩、全彩的;固定色彩的是用来勾轮廓的,全彩的可以 勾轮廓,也可以组成管屏显示文字、视频等。2.4.2.3 从尺寸上分:有D50的、D30的,D50和D30表示直径。2.4.2.4 从内部可控性上分:有1米6段的,有1米8段的和1米12段、1米16段、1米32段的。也就 是1米的管子内有几段可以独立受控;1米段数越多,做视频的效果越好。如果密 度低,或者做些追逐效果,做1米6段也就可以了。2.4.2.5 从LED数量上分:有1米96颗灯的,有1米144颗灯的;灯越多效果越好。一般做全彩的都是 用1米144颗灯的。2.4.2.6 从供电上分:分为高压供电(直接220V供电)和低压供电(12v供电,220v电源需要加开关 电源转换);一般选择低压供电的,比较可靠稳定,高压供电的容易烧毁。2.4.2.7 按像素点分:一米16段灯管 就是1米的灯管有16个像素点。一般有6段数码管、8段数 码管、12段数码管、16段数码管、32段数码管等,16段的比较多。如6段数码 管一般使用在轮廓项目上。2.4.4 数码管光源的优缺点总的来说,LED光源的来源有两种做法:一种是使用传统小功率LED作组合,一般多达上百颗甚至数百颗,电源设计复杂。另一种是使用大功率管作光源,价 格比较贵。两种方法都不可避免地要将散热设计和工作可靠性作为主要设计考虑 因素,国内多应用于政府示范性工程,真正市场化运作的工程很少,国外这方面 的应用实例较多,但其最大的缺点依然是可靠性、出光流明数和价格,很多工程 由于LED品质低劣,没有很好地表现出寿命长的优点。还有,从成本、市场的角 度考虑,LED作为照明光源,具是否与太阳能结合使用,在设计上需要走不同的路 线,并不是单独作为一种光源来开发就能完成的。2.5矩阵键盘模块矩阵键盘是为了当键盘中按键数量较多时,为了减少 I/O 口的占用,将按键 排列成矩阵形式,如图2-55所示。2.5.1矩阵键盘的工作原理在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个 按键加以连接。这样,一个端口(如 P1 口)就可以构成4X4=16个按键,比之直 接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条 线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见, 在需要的键数比较多时,采用矩阵法来做键盘是合理的。矩阵式结构的键盘显然比直接法要复杂一些,识别也要复杂一些,如图2-16所示,列线通过电阻接正电源,并将行线所接的单片机的I/O 口作为输出端,而列线所接的I/O 口则作为输入。这样,当按键没有按下时,所有的输入端都是高 电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低, 这样,通过读入输入线的状态就可得知是否有键按下了。第3章 数字电子时钟软件电路设计3.1 系统软件设计流程图3.1.1 主程序流程主程序上可分为启动定时器、按键检测、时间显示三个部分。如图 3-1启动定时器按键检测时间显示图3-1主程序流程图3.1.2 按键处理流程按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加 1;如果没有按 下,就检测分按键是否按下,分按键如果按下,分就加 1;如果没有按下,就检测 时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。 如图3-23.1.3 定时器中断流程定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到, 就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是 否到,1小时如果到,时单元就加1,如果没到,就显示时间。3.1.4 时间显示流程时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显 示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。图3-2按键处理流程图图3-3定时器中断流程图第4章 数字电子时钟系统调试4.1 软、硬件调试4.1.1 测试 AT89C51 单片机、8155、74LS07芯片主要内容:检测各芯片是否完好,各引脚、各功能是否正常。4.1.2 测试硬件电路主要内容:检测硬件电路板焊接是否完好,有无短路、短路情况出现。4.1.3 软件电路调试主要内容:将所编写程序输入仿真系统,检测程序有无错误或遗漏。4.2 统一调试主要内容:将硬件和软件结合起来进行系统的统一调试,实现PC机与单片机通讯,使单片机能通过数码管显示时间。总结本系统是以单片机AT89C51为核心,利用I/O扩展芯片8155和6位数码 管显示时间,并通过矩阵键盘进行调节。此外此时钟还具有闹钟功能,当闹钟启 闹时会通过蜂鸣器发出声音,已达到提醒人的目的。数字电子时钟以其功能全面、 调试方便、造价低廉,可长期稳定使用等特点满足了大多数人的需要。当秒的开关接由晶体振荡器直接生成的1HZ信号,分、时的开关分别接来自 秒、分的进位时,LED显示器可准确的显示 0: 00: 0023: 59: 59, 24小时 制的时间计数。通过对时、分两开关调节,可分别实现调时调分的功能。通过对定时电路中,分、时的开关的调节,可定时。当时间显示为所定时间 时,可实现一分钟的报时。在整套监测系统中,主要的环节 AT89C51单片机的处理和数码管显示。通过 此次的设计使我明白了电子时钟的结构及原理,以及电子时钟应用在我们身边的 每个角落的原因。我相信,通过不断的实验以及这项技术不断地变成熟,数字电 子时钟会更广泛的应用在我们的生活中。致谢历时将近几个月的时间,毕业设计终于接近尾声,在论文的写作过程中遇到 了无数的困难和障碍,但在老师以及同学们的帮助下各个困难都被我们击破。在 这里,我要衷心的感谢我的指导老师一一赵老师,他对我的教导和帮助,让我学 会了很多的专业知识,补充了我的许多不足。及时的帮助我解决不懂的问题并不 厌其烦的帮助我们对论文进行修改。感谢这篇论文所涉及到的各位学者。本文引用了数位学者的研究文献,如果 没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。感谢我的同学和朋友,在我写论文的过程中给予我了很多素材,还在论文的 撰写和排版灯过程中提供热情的帮助。由于我的学术水平有限,所写论文难免会有不足之处,恳请各位老师批评和 指正!1张晔等.单片机应用技术M.高等教育出版社.2006-62夏敏磊.电子电路分析制作与调试M.电子工业出版社.2010-103郭天祥.51单片机及C语言教程M.电子工业出版社.2009-124廖芳.电子产品制作工艺与实训M.电子工业出版社.2010-75杨旭,刘盾.EDAg术基础与实验教程M.清华大学出版社.2010-76谢嘉奎.电子线路M.高等教育出版社.2003-2口 胡翔酸.电路基础M.高等教育出版社.2009-128王毓银.数字电路逻辑设计M.高等教育出版社.2004-2附录主程序代码如下。ORG0000HAJMPMAINORG000BHAIMPCLOCKORG0030HPORTEQU8000HPOTTAEQU8001HPORTBEQU8002HPORTCEQU8003HDISP0EQU30HDISP1EQU31HDISP2EQU32HDISP3EQU33HDISP4EQU34HDISP5EQU35HHOUREQU3CHMINEQU3DHSECEQU3EHMSECEQU3FHAHOUREQU40HAMINEQU41HASECEQU42HF1EQUPSW.1MAIN:MOVSP,#50H;设置堆栈区MOVXDPRT,#PORT;8155初始化MOVA,#03HMOVXDPTR,ACLRF1;闹钟标志位清零CLRF0;允许计时显示MOVAHOUR,#0FFH;闹钟值寄存区置初值MOVAMIN,#0FFHMOVASEC,#1FFHMOVR7,#10;显示缓冲区、计时缓冲区清零MOVRO,#DISP0CLRALOOP:MOVRO,AINCR0DJNZR7, LOOPMOVTMOD,#01H;定时器T0初始化MOVTL0, #0B0HMOVTHQ #3CHSETBTR0;启动定时器SETBEA;开中断SETBET0BENGIN:ACALLALARM;调用定时比较子程序ACALLKEYSCAN;调用键盘扫描子程序CJNEA,#0AH,NEXT1;判断是否是C/R键CLRTRO;暂时停止计时MOVR1, #HOUR;地址指针指向计时缓冲区首地址AJMPMODNEXT1:CJNEA,#0BH,BEGIN;判断是否是ALM建JBF1, NEXT2;判断闹钟是否正在闹啊MOVRI,#HOUR;地址指针指向闹钟值寄存区首地址MOD:SETBF0;禁止显示计时时间ACALLMODIFY;调用时间设置/闹钟定时子程序SETBTR0;重新开始计时CLRF0;恢复显示计时时间AJMPBEGINNEXT2:SETBP1.0;闹钟正在闹响、停闹CLRF1;闹钟标志清零AJMPBEGIN定时器T0中断服务子程序代码如下。CLOCK:PUSHPSW;保护现场PUSHACCMOVTL0, #0B0HMOVTHQ #3CH;重装初值,时间校正INCMSECMOVA,MSECCJNEA,#0AH,DONEMOVMSEC,#00HMOVA,SECINCADAA;二一一十进制转换MOVSEC,ACJNEA,#60H,DONEMOVSEC,#00HMOVA,MININCADAAMOVMIN,ACJNEA,#60H,DONEMOVMIN,#00HMOVA,HOURINCADAAMOVHOUR,ACJNE A,#24H,DONE MOVHOUR,#00HDONE:POPACCPOPPSWRET1时间设置/闹钟定时子程序代码如下。 MODIFY: ACALL KEYIN;调用键盘设置子程序ACALL COMB;调用合子子程序RET键盘设置子程序代码如下。KEYIN:PUSH PSW;保护现场PUSH ACCSETBRS1MOVRO,#DISP0;R0指向显示缓冲区首地址MOVR7, #06H;设置键盘输入次数L1:CLRRS1ACALL KEYSCAN;调用键盘扫描子程序,取按下键的键 号SETBRS1CJNE A,#0AH,L2;所键入数合法性的检测(是否大于 9)L2:JNCL1;按键值大于9,重新输入MOVRO,A;键号送显示缓冲区INCR0DJNZR7, L1;判断6位时间是否输入完,若未完则 继续CLRRS1;恢复现场POPACCPOPPSWRET键盘扫描仔程序代码如下。KEYSCAN: ACALL TEST;调用判断按键是否按下的子程序 TESTJNZREMOV;有键按下时,调用消抖动延时子程序ACALL DISPLAYACALL ALARMAJMP KEYSCAN;无键按下时,继续判断是否启键按下REMOV: ACALL DISPLAY;调用显示子程序,延时消抖动ACALL TEST;再次判断是否启键按下JNZLIST;有键按下时,跳转至逐列扫描ACALL DISPLAYACALL ALARMAJMPKEYSCAN;无键按下时,继续判断是否有键按下LIST:MOVR2, #0FEH;首列扫描字送R2MOVR3, #00H;首列键号送R3LINE0:MOVDPTR,#PORTA;DPTR旨针指向8155的A 口MOVA,R2;首列扫描字送AMOVXDPTR,A;首列扫描字送8155的A 口MOVDPTR,#PORTC;DPTR旨针指向8155的COMOVXA, DPTR;读入C口的行状态JBACC.Q LINE1;第0行键无键按下,转至第1行MOVA,#00H;第0行有键按下,行首键号送 AAJMPTRYK;求键号LINE1:JBACC.Q LINE2;第1行键无键按下,转至第2行MOVA,#04H;第0行有键按下,行首键号送 AAJMPTRYK;求键号LINE2:JBACC.2, NEXT;第2行键无键按下,转至下一列MOVA,#08H;第2行有键按下,行首键号送 AAJMPTRYK;求键号NEXT:INCR3;扫描卜一列MOVA,#08H;列扫描字送AJNBRLACC.3, EXITA;4列扫描完,重新进行下一轮扫描;4列未扫描完,扫描字左移,扫描卜 一列MOVR2, A;扫描字送AAIMPLINE0;转网扫描卜一列EXIT:AJMPKEYSCAN;等待吓一次按键TRYK:ADDA,R3;按公式计算键他,求得键号PUSHACC;键号入栈保护LETK:ACALLTEST;等待按键释放JNZLETK;按键未释放,继续等待POPRETACC;按键释放,键号出栈TEST:MOVMOVDPRT,#PORTAA,#00H;DPRT旨针指向8155的A 口MOVXDPRT,A;全扫描字00H送8155的A 口MOVDPRT,#PORTC;DPRT旨针指向8155的COMOVXA, DPRT;读入C 口行状态CPLA;A取反,以高电平表示有键按下ANLRETA,#07H;屏蔽图5位显示子程序代码如下DISPLAY:JBACALLF0, DISPSEPA;允许时间显示标志 F0=1,转至DISP;否则调用SEPA刷新显示缓冲区DISP:PUSHPSW;动态扫描显示子程序PUSHACCSETBRS0MOVDPRT,#PORTA;关显示MOVA,#0FFHMOVXDPTR,AMOVRO, #DISP0MOVR7, #00HMOVR6, #06HMOVR5, #0FEHDIS1:MOVDPTR,#TABMOVA, R0MOVCA, A+DPTRMOVDPTR,#PORTAMOVXDPTR,AMOVDPTR,#PORTAMOVA,R5MOVXDPRT,AHERE:DJNZR7, HEREINCR0MOVA,R5RLAMOVR5, ADJNZR6, DIS1CLRRS0POPACCPOPPSWRETTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71H 共阴极字型码表合字子程序代码如下。COMB:MOVRO, #DISP1;R0指向显示缓冲区的小时地位ACALLCOMB1;合字CJNEA,#24H,CHKCHK:JNCEXIT1;大于24时则取消本次设置,退出MOVR1, A;小时送计时小时单元INCR1MOVRO, #DISP3;R0指向显示缓冲区的分钟低位ACALLCOMB1CJNEA,#60H,CHK1CHK1:JNCEXIT2;大于60时则取消本次设置,退出MOVR2, AINCR2MOVRO, #DISP5;R0指向显示缓冲区的秒低位ACALLCOMB1CJNEA,#60H,CHK2CHK2:JNCEXIT1;大于60时则取消本次设置,退出MOVR1, ARETEXIT1:AJMPMAIN;输入不合法则退出,计时重新清零COMB1:MOVA, R0ANLA,#0FH;取出低位MOV43H,A;暂存于43H单元DECR0;指向晨j位MOVA, R0ANLA,#0FHSWAPA;高位送高4位ORLA,43H;高、低位合并RET拆字子程序代码如下。SEPA:PUSHPSWPUSHACCSETBRS0MOVRO, #DISP5;指向显示缓冲区的秒低位MOVA,SECACALLSEPA1MOVA,MINACALLSEPA1MOVA,HOURACALLSEPA1CLRRS0POPACCPOPPSWRETSEPA1:MOV44H,A;暂存于44H单元ANLA,#0FH;取出低位MOVR0, A;送显示缓冲区低位DECR0;指向显小缓冲区局位MOVA,44HANLA,#0F0H;取出高位SWAPA;高位送往低4位,形成高位数据MOVR0, A;高位数据送显示缓冲区高位RET定时比较子程序代码如下。ALARM:MOVA,ASECCJNEA,SEC,BACK;秒单元相同则继续比较,否则返回MOV A,AMINCJNE A,MIN,BACK MOVA,AHOURCJNE A,HOUR,BACKCLRP1.0SETBF1BACK:RET;分单元相同则继续比较,否则返回;小时单元相同,定时时间到;起动闹钟鸣叫;闹钟标志置位毕 业 设 计 (论 文)士 兀成 情 况1.2013年2月27号完成了开题报告。2.2013年3月17号完成总体方案设计。3.2013年3月31号完成软件设计。4.2013年4月15号完成硬件系统设计。指 导 教 师息 见指导教师(签名):年月日
展开阅读全文