通信工程专业毕业设计(论文)-基于AT89C51单片机的数字时钟设计.doc

上传人:小小飞 文档编号:3293507 上传时间:2019-08-08 格式:DOC 页数:36 大小:4.98MB
返回 下载 相关 举报
通信工程专业毕业设计(论文)-基于AT89C51单片机的数字时钟设计.doc_第1页
第1页 / 共36页
通信工程专业毕业设计(论文)-基于AT89C51单片机的数字时钟设计.doc_第2页
第2页 / 共36页
通信工程专业毕业设计(论文)-基于AT89C51单片机的数字时钟设计.doc_第3页
第3页 / 共36页
通信工程专业毕业设计(论文)-基于AT89C51单片机的数字时钟设计.doc_第4页
第4页 / 共36页
通信工程专业毕业设计(论文)-基于AT89C51单片机的数字时钟设计.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《通信工程专业毕业设计(论文)-基于AT89C51单片机的数字时钟设计.doc》由会员分享,可在线阅读,更多相关《通信工程专业毕业设计(论文)-基于AT89C51单片机的数字时钟设计.doc(36页珍藏版)》请在三一文库上搜索。

1、 毕 业 设 计( 论 文 )题目 单片机的实时时 钟IC的系统作者学部电气与信息工程专业通信工程学号 指导教师二 年 月 日 本科生毕业设计(论文)任务书 系(教研室)主任批准 电气与信息工程 学部 通信工程 系(教研室) 签名: 日期: 2010年12月18日 学生姓名: 学号: 专业: 通信工程 1. 设计(论文)题目及专题: 单片机的实时时钟IC的系统设计 2. 学生设计(论文)期限:自 1 月 8 日开始至 4 月 25 日完成 3. 设计(论文)所用原始资料: 1苏家健,曹柏荣,汪志峰. 单片机原理与应用技术.高等教育出版社,2002. 2严天峰 单片机应用系统设计与仿真调试. 北

2、京航空航天大学出版社,2005.3廖芳.电子产品生产工艺与管理M.电子工业出版社,2003.4李建民.模拟电子技术基础M. 清华大学出版社,2006.5谢嘉奎.电子线路(线性部)M.第四版.北京:高等教育出版社,1999.6谢自美.电子电路设计.实验.测试M.武昌:华中理工大学出版社,1994.7童诗白.模拟电子技术基础M.第二版.北京:人民邮电出版社,1999.8康华光主编. 电子技术基础M(数字部分、模拟部分),高等教育出版社,1998.9胡宴如模拟电子技术M北京:高等教育出版社,2004,210杨志忠数字电子技术M北京:高等教育出版社,2003,12. 4. 设计(论文)完成的主要内容:

3、 通过毕业设计进一步了解8051单片机特性,掌握单片机硬件系统结构以及软件对硬件的控制功能。熟练掌握8051单片机指令系统的应用及程序设计、开发环境。5. 提交设计(论文)形式(设计说明书与图纸或论文等)及要求:(1)独立思考,认真分析设计题目,找出最佳设计方案。(2)单片机最小系统能启动正常。(3)单片机最小系统能复位正常。(4)单片机通过控制相关时钟控制芯片,在数码管上实现实时时钟显示,并且能手动调整时间。(5)写出设计过程(包括原理、方案)。(6)画出完整的电路原理图,并描述各部分的功能。(7)按照规定提交符合规范要求的毕业设计论文。6. 发题日期: 2010 年 12 月 18 日 指

4、导老师(签名): 学 生(签名): 毕业设计(论文)指导人评语指导人: (签名)年 月 日 指导人评定成绩: 毕业设计(论文)评阅人评语评阅人: (签名)年 月 日 评阅人评定成绩: 毕业设计(论文)答辩记录日期: 学生: 学号: 班级: 题目: 提交毕业设计(论文)答辩委员会下列材料:1 设计(论文)说明书共页2 设计(论文)图 纸共页3 指导人、评阅人评语共页毕业设计(论文)答辩委员会评语:答辩委员会主任: (签名)委员: (签名)(签名)(签名)(签名) 答辩成绩: 总评成绩: 摘 要数字时钟在日常生活中很常见,应用也很广泛。本次设计就是设计一款数字时钟,以AT89C51 单片机为核心,

5、配备数码管显示模块、按键等功能模块。数字时钟采用24 小时制方式显示时间,在数码管上显示小时、分钟功能。 设计的核心主要包括硬件设计和软件编程两个方面。硬件电路设计主要包括中央处理单元电路、时钟电路、执行电路等几部分。软件用汇编语言来实现,主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。关键词: AT89C51、 单片机、数码显示、中断ABSTRACT Digital clock in daily life is very common, and is also widely used,This design is the design of a digital clock, wit

6、h AT89C51, equipped with digital pipe display module, keys function modules.Digital clock with the 24-hour system in digital displays the time, displayed on the hour, minute tube function.the core of design mainly includes hardware design and software programming two aspects.Hardware circuit design

7、includes the central processing unit circuit, clocking circuit and executive circuit segments.Software to realize with assembly language, including the main program, keyboard scan subroutines, time setting subroutines software modules.Keywords: AT89C51, digital display, interrupts vi - - 目 录第一章 绪论11

8、.1 引言11.2 方案论证1第二章 主要电路模块的设计32.1 系统方框图 32.2 系统说明32.3总电路图32.4 单片机电路42.4.1 时钟电路42.4.2复位电路42.5 按键电路52.6 显示电路62.6.1 方案论证62.6.2 LED的结构与原理62.7 电源电路7第三章 软件设计流程图93.1 时钟主程序流程图93.2 按键扫描程序流程图93.3 时钟程序流程10第四章 电路仿真114.1 proteus 简介114.2 keil简介114.3 设计中的实际仿真步骤114.4 仿真总结14第五章 软硬件系统的调试15参 考 文 献17致 谢18附录A 系统硬件电路图19附录

9、B 实物图20附录C 程序清单21-vii- 第一章 绪论1.1 引言时钟,自从它被发明的那天起,就成为人们生活中必不可少的一种工具,尤其是在现在这个讲究效率的年代,时钟更是在人类生产、生活、学习等多个领域得到广泛的应用。然而随着时间的推移,人们不仅对于时钟精度的要求越来越高,而且对于时钟功能的要求也越来越多,时钟已不仅仅是一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。诸如闹钟功能、日历显示功能、温度测量功能、湿度测量功能、电压测量功能、频率测量功能、过欠压报警功能等。钟表的数字化给人们的生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、

10、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。可以说,设计多功能数字时钟的意义已不只在于数字时钟本身,更大的意义在于多功能数字时钟在许多实时控制系统中的应用。在很多实际应用中,只要对数字时钟的程序和硬件电路加以一定的修改,便可以得到实时控制的实用系统,从而应用到实际工作与生产中去。因此,研究数字时钟及扩大其应用,有着非常现实的意义。怎样让时钟更好的为我们服务?怎样让时钟更符合实际应用的需求?这就要求人们不断设计出新型时钟,不断设计出适合实际应用的多功能时钟。本毕业设计方案正是根据以上所述并结

11、合日常生活中对时钟功能需求的分析,运用单片机技术,设计出一个适合日常生活需要的多功能数字时钟。此多功能数字时钟除了传统的显示时间功能之外还具日历功能以及定时闹钟功能。1.2 方案论证方案一采用TTL、CMOS集成电路实现的。数字钟主要由以下几个部分组成:信号源、分频器、十进制计数器、六进制计数器、二进制计数器、BCD七段显示译码/驱动器、LED(Light-emitting-diode)七段显示数码管、时间校准电路和闹时电路。1这是一种纯硬件电路系统,用时序逻辑电路实现时钟功能,用555定时器实现闹钟报时的设定。该电路具有抗干扰强、计算精确,使用元器件种类少等优点,但是这种实现方法可靠性差、控

12、制精度低,灵活性小、线路复杂、安装调试不方便,且不具备对测温信号进行数据处理的功能。要实现测温功能必须再添加处理芯片,系统集成度低。方案二利用可编程逻辑器件PLD(Programmable Logic Devices)实现。可编程逻辑器件PLD具有集成度高、速度快、功耗小、可靠性高等优点。且EDA(Electronic Design Automation)软件的功能和时序仿真功能使得电路的调试变得十分方便。这种方案与前一种相比,可靠性增加,同时可以很好的完成时钟的功能。但是对于温度测量,其不具备对测温数据的处理功能,无法很好的完成扩展功能的要求。同时这种方案只能选用数码管显示,显示的效果不够理

13、想。因此,系统的灵活性不够。2方案三利用单片机内部具有的计数器实现时钟功能。以12MHz晶振为例,通过计算可知,使定时器每50ms产生一次中断,当产生20次中断后秒单元将加一,以此类推,从而实现时、分、秒的走时,并加以显示。虽然这种方法存在由于系统晶振误差、温漂、中断响应时间的不确定性及定时器重新装载时间常数所带来的误差等不足。而且用这种方法实现的时钟在断电的情况下将停止走时,通电后必须再初始化,需要重新调表。但是利用这种方法实现的系统具有一定的可扩展性。由于时钟的实现大部分是由软件的编程来实现的,因此没有前几种方案中来自硬件的束缚。只要对数字时钟的程序和硬件电路加以一定的修改,就可应用到一些

14、实时控制的系统中去。系统的实用意义更大。通过以上三种方案的比较,决定采用方案三。第二章 主要电路模块的设计2.1 系统方框图 系统方框图如图2.1所示。系统要实现数字时钟的基本功能,单片机最小系统能启动正常,单片机最小系统能复位正常,单片机通过控制相关时钟控制芯片,在数码管上实现实时时钟显示,并且能手动调整时间。通过毕业设计进一步了解8051单片机特性,掌握单片机硬件系统结构以及软件对硬件的控制功能。熟练掌握8051单片机指令系统的应用及程序设计、开发环境。 图2.1 系统方框图2.2 系统说明系统由51系列单片机AT89C51、按键、数码管显示、电源等部分构成。单片机部分包括时钟电路、复位电

15、路;按键部分能够实现对时间的调整、设定。三个按键的功能分别为:小时的调整,分钟的调整,复位。电源部分(试验室配备电源)可输出1个电压:5V。5V电压给小系统硬件提供电源。2.3总电路图电子钟总电路图见附录A所示。2.4 单片机电路2.4.1 时钟电路 时钟电路由外接谐振器的时钟振荡器、时钟发生器及关断控制信号等组成。时钟振荡器是单片机的时钟源,时钟发生器对振荡器的输出信号进行二分频。 CPU 的时钟振荡信号有两个来源:一是采用内部振荡器,此时需要在 XTAL1 和XTAL2 脚连接一只频率范围为033MHZ 的晶体振荡或陶瓷振荡器及两只 30pf 电容。二是采用外部振荡,此时应将外部振荡器的输

16、出信号接至 XTAL1 脚,将XTAL2 脚浮空。 3利用单片机内部的定时功能来实现时钟的走时,通过编程实现每 50 毫秒产生一次中断,中断20 次后,秒单元加1,秒单元加到60 时,跳回到零再继续加,同时分单元加1;当分单元加到60 时,跳到零再继续加,同时时单元的个位加1,以次类推,从而实现秒、分、小时的走时。 本次设计中采用的是内部振荡器,频率为 12MHZ 的晶体振荡器及 30pf 的瓷片电容。如图2.2 所示。 图2.2 时钟电路2.4.2复位电路 复位是指在规定的条件下,单片机自动将CPU 以及与程序运行相关的主要功能部件、I/O 口等设置为确定初始状态的过程。如果电路参数不符合规

17、定的条件或干扰导致单片机不能正确的复位,系统将无法进行正常的工作,因此,复位电路除了要符合厂家规定的参数外,还要滤除可能的干扰。4 AT89S52 单片机内部有一个由施密特触发器等组成的复位电路。复位信号是从其9 脚,即RST 脚输入的。1AT89S52 单片机规定,当其处于正常工作基于51 单片机的数字时钟的设计状态,且振荡器工作稳定后,在RST 端有从高电平到低电平,且高电平时间大于两个机器周期的复位信号时,CPU 将完成对系统的复位。有两点需要注意:一、复位信号是高电平有效,二、高电平的保持时间必须大于两个机器周期,可见高电平保持时间与振荡频率有关。5 本次设计中采用上电复位电路,上电复

18、位是指在系统上电时,RST 端自动产生复位所需要的信号将单片机复位,本次设计中的上电复位电路如图所示。上电时,RST 端高电平的维持时间取决于R(1k)和C(22uF)的值。要使单片机可靠的复位,设计中使其维持的时间足够长。如图2.3 所示。 图2.3 复位电路2.5 按键电路方案一:采用阵列式键盘 此类键盘是采用行列扫描方式,当按键较多时可以减少占用单片机的 I/O口数目。方案二:采用独立式按键电路 每个键单独占有一根I/O接口线,每个I/O口的工作状态互不影响,此类键盘采用端口直接扫描方式。但是当按键较多时占用单片机的I/O数目较多。 本系统只需三个按键,因此选择方案二。 如果按键采用中断

19、的话,可以使单片机工作更加灵活、效率更高。由于该系统要用到 3 个按键,考虑到单片机的中断资源不够,所以就只用P1.0及P1.2 和P1.3 口。电路如图2.4 所示。6 图2.4 按键电路2.6 显示电路2.6.1 方案论证方案一:采用动态显示 这种工作方式是分时轮流选通数码管的公共端,使得各个数码管轮流导通。当所有数码管依次显示一遍后,软件控制循环,使每位显示器分时点亮,外接7407组成显示电路。这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,因而大大简化了硬件线路。 各个数码管虽然是分时轮流通电,但由于发光数码管具有余辉特性及人眼具有视觉暂留作用,所以适当选取

20、循环扫描频率时,看上去所有数码管是同时点亮的,察觉不出有闪烁现象。方案二:采用静态显示 数码管工作在静态显示方式下,共阴极或共阳极点连接在一起接地或高电平。每位的段选线与一个8 位并行口相连。只要在该位的段选线上保持段选码电平,该位就能保持相应的显示字符。该工作方式常采用串行口设定方式0 输出,外接74LS164 移位寄存器构成显示电路。 综合考虑,采用动态显示,采用一片7407芯片作为缓冲,分时选中三片数码管,从编程和提供的硬件等方面综合考虑后,决定采用动态显示的方法,如图2.5所示。 采用1片7407缓冲的方法来带动3片数码管显示。由软件控制分不同时间选中时分秒不同的三片六个数码管。电路如

21、图2.5所示。有电路图可知P2的值和选通的数码管对应关系为:0x1F对应秒个位、0x2F对应秒十位、0x37对应分个位、0x3B对应分十位、0x3D对应时个位、0x3E对应时十位。图2.5 显示电路 LED 显示器的结构与原理2.6.2 LED的结构与原理下面以最简单的七段数码显示器为例进行说明。通常用的七段数码显示器的内部有8 个发光二极管,其中7 个发光二极管组成了数字“8”,剩下一个发光二极管就是这位数字所带的小数点。数码管结构图如图2.6所示。 一般数码管内部有共阴和共阳两种连接方式。共阴就是将各个发光二极管的阴极接地,共阴极数码管如图(1)所示。图中一个发光二极管就相当于一个数码段。

22、若给某段加上高电平,那么相对的段就会亮。根据要想显示的数值给各段数码管加上相应的高电平就可以显示不同的数值了。 共阳就是将各个发光二极管的阴极一起接在高电平上。共阳数码管如图(3)所示,从图(3)中可以看出共阳的显示器与共阴的显示器有一点区别,就是它将阳极连接在一起接到高电平上。这样在想显示某个数的时候,各个发光二极管赋低电平而不是在共阴时的高电平了,这就是共阴共阳的区别。图 2.6 是8 段LED 数码的结构示意图,其内部实质上是8 只发光二极管。7 图2.6 (1)LED的引脚图 图2.6 (2)共阴数码 图2.6 (3)共阳数码由于它内部构造不同,在显示时代码也有所不同,共阴七段LED

23、段选码表如表2.1 所示。 表2.1 共阴七段LED段选码显示字符数显代码显示字符数显代码00x3f50x6d 1 0x06 60x7d 2 0x5b 70x07 30x4f 80x7f 4 0x66 90x6f2.7 电源电路该部分有1 个输出电压5V。220V 交流市电通过电源变压器变换成交流12V 低压,再经过桥式整流电路 D1D4 和滤波电容 2200uf 的整流和滤波,在固定式三端稳压器 LM7809 的 Vin 和 GND 两端形成一个并不十分稳定的直流电压(该电压常常会因为市电电压的波动或负载的变化等原因而发生变化)。此直流电压经过 LM7809 的稳压和 100uf 电容的滤波

24、后,便在稳压电源的输出产生了精度高、稳定度好的直流输出9V 电压。9V 电压给可调分流基准芯片TL431 提供电源。TL431 的主要作用是给A/D 转换芯片TLC1549 提供比较精确的参考电压。9V 电源再经过LM7805 稳压后,给各个芯片提供电源。电路见图2.7。8 图2.7 电源电路 三端稳压器是标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。三端稳压器的工作原理(以78 系列为例)如下:它与一般分立元件组成的串联式稳压电路基本相似。不同的是增加了启动电路、保护电路和恒流源。启

25、动电路是为恒流源建立工作点而设置的。恒流源随着在基准电压形成和误差放大器电路中,是为了使稳压器能够在比较大的电压变化范围内正常可靠工作。在芯片内设置了两种较完善的保护电路:一是过流保护,一是过热保护。9第三章 软件设计流程图3.1 时钟主程序流程图时钟主程序流程图如图3.1所示。进入系统后首先实现程序的初始化,然后进入主程序,定时器开始计时,当定时器发生中断时刷新数码管同时显示,之后实现中断与显示的循环。图3.1 时钟主程序流程3.2 按键扫描程序流程图按键扫描程序流程图如图3.2所示。主程序进入键盘扫描程序后判断是否按下了P1,0。若是按下了P1.0为了去除抖动再进行确认是否按下P1.0,当

26、确认按下了P1.0后判断按下P1.0的次数,若按了一次则进行秒调整,若按了两次则进行分调整,若按了三次则进行时调整。然后进入显示程序段进行显示刷新。 图3.2 按键扫描程序流程3.3 时钟程序流程 时钟程序流程如图3.3所示。设计中,采用51单片机的定时器的方式一定时,所以如图所示,当程序产生定时溢出中断时要重新赋初值。10然后进行是否到一秒的判断,若到一秒则秒加一,若未到则直接退出中断。一秒到了加一以后进行是否秒到六十的判断,若秒到六十则秒清零,同时分加一,若秒未到六十则退出中断。分加一以后进行分是否到六十的判断,若未到六十则退出中断,若分到六十则分清零,同时小时加一。小时加一后进行小时是否

27、到二十四的判断,若未到二十四则退出中断,若到二十四则清零,然后退出中断。图3.3 时钟程序流程 第四章 电路仿真4.1 proteus 简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的

28、单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。本章介绍Proteus ISIS软件的工作环境和一些基本操作。4.2 keil简介 单片机开发中除必要的硬件外,同样离

29、不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起

30、。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。4.3 设计中的实际仿真步骤本设计中,用到keil和proteus实现设计的仿真,首先在keil中编译程序,生成keil文件,具体步骤为:1.新建工程,如图4

31、.1图4.1 新建工程2.新建文件,如图4.2图4.2 新建文件3.编译和生成.hex文件,如图4.3图4.3 新建文件然后在proteus中画出原理图导入.hex文件,步骤如下:1.画出原理电路图。2.导入.hex文件,如图4.4图4.4 导入.hex文件3. 运行仿真电路图,观察仿真效果,如图4.5图4.5 仿真效果4.4 仿真总结通过软件和硬件仿真的结合,初步确立了设计方案的可行性,基本实现了预计的设计效果,为后面的实物焊接和程序烧录打下了理论上可行性的基础。仿真的过程中也发现和解决了一些问题,如:按键抖动问题、数码管显示不稳定问题和蜂鸣器的程序设计中的问题,并通过修改程序和检查线路连接

32、得以解决。通过这一次仿真,对proteus和keil软件有了初步的掌握,能够运用其实现一般的仿真,这两个软件在单片机方面的学习中将对我有很大帮助。第五章 软硬件系统的调试 硬件调试的主要任务是排除硬件故障,其中包括线的连接,按键是否接了上拉电阻等。由于最小系统出了点错误,导致写好的芯片无法显示。经万用表检查,手工慢慢焊接好后接入电源。再用万用表检查各个芯片管脚的电压是否达到正常的工作电压,然后判断是否有存在短路现象等,经一步步修改后把硬件调试好。11 程序的调试是采用一个模块一个模块地进行,首先单独调试各功能子程序,检验程序是否能够实现预期的功能等;最后逐步将各子程序联接起来总调。联调需要注意

33、的是,各程序模块间能否正确传递参数。12 在程序调试过程当中,出现了以下几个问题:1)LED闪烁问题:虽然本次设计的最终方案是采用LCD显示屏实现显示功能,但是在进行方案比较时曾采用过LED显示方法,最初数码管显示不正常,出现闪烁现象。通过调试发现这是由于延时时间选择不当造成的。由于数码管是采用动态显示方式,为了使人眼产生视觉暂留效果,每一次显示时都必须加入适当的时间延时。由于一开始所选用的延时时间太短,因此出现闪烁现象,在增加显示延时之后,数码管显示正常。2)闹铃蜂鸣器异常启动问题:闹铃蜂鸣器的启动/关闭是通过单片机输出的控制信号来实现的,当当前时间与整点时间比较吻合时,单片机将对闹铃控制口

34、P3.4执行取反命令,从而启动蜂鸣器发声。一开始编写程序时,没有对P3.4口的最初状态作正确设置,由于系统开机复位后,P3.4口处于高电平状态,因此出现一开机蜂鸣器就处于启动状态的情况。通过在主程序最开始加入对P3.4口取零命令后,蜂鸣器启动/关闭控制恢复正常。133)按键消抖问题:在最初编写程序时,键盘控制部分按照常例加入了按键消抖程序。在实际调试中,发现按键出现反应不灵敏现象。这是因为在键盘控制程序中,除了消抖程序外,还加入了按键提示音程序(每次按压键盘时,蜂鸣器发出“哔”的一声提示音)。由于在调用提示音子程序时,实际上已实现了一次时间的延时,因此再加入按键消抖程序的延时后,致使延时时间过

35、长而出现按键反应不灵敏问题。通过调试发现提示音子程序本身所产生的延时已能够满足按键消抖时间延迟的要求,因此在键盘控制程序中无需再加入专门的按键消抖程序。在去除按键消抖程序后,按键控制灵敏度恢复正常。144)计时显示异常问题:计时程序里面秒值显示每次达到60后直接跳变到下一分钟的01秒,最终会出现24:60:60的时间显示。正确的显示应该是秒值达到59后变成00,时间值在显示到23:59:59之后的下一秒显示为00:00:00。出现这种异常显示的主要问题在于每次计时相应的时钟计时器在向高一位进位的时候没有将显存单元清零。因此在计时程序里面出现进位情况时,增加相应显存清零的语句后,计时显示恢复正常

36、。经过不断的调试以后,总体功能达到了预期效果。时间误差很小,运行一天以后时通过按键可以修改当前时间。当定时时间到 24 小时,数码管自动的显示0,然后又从0 开始计时。参 考 文 献 1李建民.模拟电子技术基础M. 清华大学出版社,2006. 2杨志忠数字电子技术M北京:高等教育出版社,2003,12.3胡汉才单片机原理及其接口技术M清华大学出版社,1996. 4康华光主编. 电子技术基础M(数字部分、模拟部分),高等教育出版社,1998. 5李勋,刘源.单片机实用教程.北京航空航天大学出版社,2006.6王建校,杨建国51系列单片机及C51程序设计M科学出版社,2002.7谢嘉奎.电子线路(

37、线性部)M.第四版.北京:高等教育出版社,1999.8谢自美.电子电路设计.实验.测试M.武昌:华中理工大学出版社,1994. 9胡宴如模拟电子技术M北京:高等教育出版社,2004,210何立民MCS51系列单片机应用系统设计M北京航空航天大学出版社,1990.11廖芳.电子产品生产工艺与管理M.电子工业出版社,2003.12严天峰 单片机应用系统设计与仿真调试. 北京航空航天大学出版社,2005. 13童诗白.模拟电子技术基础M.第二版.北京:人民邮电出版社,1999. 14苏家健,曹柏荣,汪志峰. 单片机原理与应用技术.高等教育出版社,2002. 附录A: 系统硬件电路图附录B:实物图附录

38、C:程序清单#include#define uchar unsigned char#define uint unsigned intsbit k1=P10;sbit k2=P11;sbit k3=P12;sbit beep=P34;uint shi=0,fen=0,miao=0;uchar t1=0,t0=0,k1num=0;uchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/延迟void delay(uint z) uint x,y; for(x=z

39、;x0;x-) for(y=110;y0;y-);/初始化void init()TMOD=0X11;TH1=(216-50000)/256;TL1=(216-50000)%256;EA=1;ET1=1;TR1=1;TH0=(216-50000)/256;TL0=(216-50000)%256;ET0=1;beep=0;/数码管显示时分秒void display(uchar shi,uchar fen,uchar miao)uchar miao_s,miao_g,fen_s,fen_g,shi_s,shi_g;miao_s=miao/10;miao_g=miao%10;fen_s=fen/10;

40、fen_g=fen%10;shi_s=shi/10;shi_g=shi%10;P2=0x1F;P0=tablemiao_g;delay(1);P2=0x2F;P0=tablemiao_s;delay(1);P2=0x37;P0=tablefen_g;delay(1);P2=0x3B;P0=tablefen_s;delay(1);P2=0x3D;P0=tableshi_g;delay(1);P2=0x3E;P0=tableshi_s;delay(1);/键盘扫描void keyscan()if(k1=0) delay(5);if(k1=0) while(!k1);k1num+; if(k1num=1) TR1=0;if(k2=0)delay(5);if(k2=0)while(!k2);miao+; display(shi,fen,miao);if(miao=60)miao=0;if(k3=0)delay(5);if(k3=0)while(!k3)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1