毕业设计(论文)-基于PROTEUS的多功能数字电子钟的设计
- 格式:docx
- 大小:162.30 KB
- 文档页数:13
多功能电子钟摘要:电子钟是一种利用时钟电路来显示时分秒的计数装置,与传统时钟相比,利用电子计数将时钟电子化,数字化而成的电子时钟,具有体积小,时钟精确,可扩展性强,显示直观等优点,被广泛应用于各个领域。
本设计主要是实现一款可正常显示时间、日历,并具有闹钟、秒表、整点报时以及测量当前环境温度的功能的多功能电子钟。
通过对当前时钟开发手段的比较与分析,以及结合自身情况,决定用单片机技术来实现多功能电子时钟。
本设计应用STC89C52芯片作为核心,简单的应用定时器功能实现基础的时钟及日历功能,LCD1602液晶显示屏构成现实模块,同时用DS18B20温度传感器实现当前环境温度测量的功能,最后用Keil软件进行编程,实现整体功能。
应用此种方法,电路简单明了,编程容易,操作简单,并且便于扩展其他功能。
应用前景:该电子时钟在日常生活和工作中,还可通过改装以提高性能或增加新的功能,从而给生产生活带来方便。
关键词:电子时钟;多功能;STC89C52;LCD1602液晶;DS18B20温度传感器;1 作品功能及总体方案1.1 功能描述电子钟是利用电子计数将时钟电子化,数字化而成的电子时钟,具有体积小,时钟精确,可扩展性强,显示直观,无机械传动装置等优点,被广泛应用于各种领域。
电子钟,最根本上是数字化了的时钟显示,在此基础上,人们根据各种需要,扩展了所需要的其它模块,实现相应功能,比如闹钟、秒表、计时器、整点报时、温湿度等,以此,更符合及适应生产与生活需要。
本设计利用1602液晶进行功能显示,主要实现了以下具体功能:1)、基本的时间显示,显示时、分、秒,并进行实时更新。
2)、日历功能的显示及手动校对功能。
可现实年、月、日、星期的显示,24小时制,并区分闰年与平年。
3)、当前环境温度显示的功能。
利用DS18B20温度传感器进行实时检测当前环境温度。
4)、闹钟定时功能。
5)、秒表计时功能。
6)、简单的整点报时功能。
1.2 系统组成及工作过程本设计的系统主要以单片机作为核心,向外扩展各个功能模块。
毕业设计(论文)说明书数字时钟制作毕业设计(论文)任务书摘要时钟是人们日常生活中必不可少的生活用品。
随着人类科技文明的发展,人们对于时钟的要求在不断地提高。
时钟已不仅仅被看成一种用来显示时间的工具,在很多实际应用中它还需要能够实现更多其它的功能。
高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。
在这种趋势下,时钟的数字化、多功能化已经成为现代时钟生产研究的主导设计方向。
本次数字时钟电路采用AT89C51单片机作为控制核心,使用按钮设计控制电路,结合LED数码管、74LS373和排阻实现时、分、秒的显示,采用扬声器实现闹钟功能。
硬件电路设计主要包括中央处理单元电路、键盘扫描电路以及闹钟电路。
软件程序设计则采用汇编语言实现。
本设计实现了显示时间、调整时间、闹钟定时等功能,达到了设计的要求和目的。
并在Proteus软件上进行了仿真和调试。
关键词:数字时钟;AT89C51; LED数码管AbstractThe clock is the people daily life absolutely necessary supplies. Along with the development of human civilization, people for clock's demands are rising steadily. The clock has not only been considered a used to show time tools, but also need to be able to achieve more other function. High precision, multi-function, small volume, and low power consumptionis the trend of the development of the modern clock. In light of the trend, the clock's digital change and multifunction change has bee the leading modern clock production research design direction.This digital clock circuit design use the AT89C51 single-chip microcontroller as control core, use the button design control circuit, bined with LED nixie tube, 74LS373 and resistance to realize the clock display, use the speaker realize alarm clock function. Hardware circuit design includes the central processing unit circuit, keypad scanning circuit and the alarm clock circuit. Software program design is realized by assembly language. This design realizes display the time, adjust the time, alarm clock time function and meet the design requirements and purpose. And the software program in the Proteus software simulation and debugging.Keywords: Digital clock; AT89C51; 74LS37目录摘要IAbstractII第一章诸论11.1设计背景11.2 数字温度计设计方案论证11.2.1 方案一11.2.2 方案二11.2.3 方案三21.3 方案三的总体设计框图2第二章主要元器件介绍32.1 AT89C51的性能介绍32.1.1 AT89C51的主要特性32.1.2 AT89C51的管脚说明42.1.3 振荡器特性62.1.4 芯片擦除62.2 74LS373芯片62.2.1 74LS373的基本情况62.2.2 74LS373的内部结构和性能参数72.3七段数码管的引脚图及使用92.3.1七段数码管的引脚图92.3.2 数码管使用条件10第三章硬件设计113.1振荡电路和复位电路111.使用晶振CRYSTAL和瓷片电容构成振荡电路。
基于Proteus的数字电子钟的设计与仿真一、设计目的与要求 (1)二、设计内容与方案制定 (1)三、芯片简介 (1)1、AT89C52 (1)2、AT24C02 (2)四、设计步骤 (3)1、硬件电路设计 (3)1.1.硬件电路组成框图 (3)1.2.各单元电路及工作原理 (3)1.3.绘制原理图 (5)1.4.元件清单列表 (6)2、程序设计 (7)2.1程序流程 (7)2.2主程序 (9)2.2.源程序 (10)五、调试与仿真 (22)六、心得体会 (23)七、参考文献 (23)一、设计目的与要求设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。
设计要求:设计一个时、分可调的数字电子钟、断电后将数据保存,开启后时间将从断电后时间继续行走。
二、设计内容与方案制定具有校时功能,按键控制电路其中时键、分键六个键分别控制时、分时间的调整。
按下小时数实现对小时数加减,按下分钟数实现对分钟数进行加减,并设置有复位键,启始键。
以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。
通过AT24C02分别写入时、分、秒数据在断电后实现保存,在下次通电后将数据读出保持为断电前数据。
三、芯片简介1、AT89C52AT89C52是一个低电压,高性能CMOS8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系2、AT24C02AT24C02支持I2C,总线数据传送协议I2C,总线协议规定任何将数据传件为接收器。
数据传送是由产生串行时钟和所有起始停止信号的主器件控制的。
主器件和从器件都可以作为发送器或接收器,但由主器件控制传送数据(发送或接收)的模式,由于A0、A1和A2可以组成000~111八种情况,即通过器件地址输入端A0、A1和A2可以实现将最多8个AT24C02器件连接到总线上,通过进行不同的配置进行选择器件。
任务书设计题目:基于Proteus的多功能数字电子钟的设计1.设计的主要任务及目标设计多功能数字电子钟,能显示时,分,秒,具备时间调整、定时、延时、计数功能;选定各元器件,完成系统整体设计、硬件设计;并通过Proteus软件的学习完成程序编制及调试。
2.设计的基本要求和内容(1) 查阅相关文献资料,进行设计构思并撰写开题报告(2) 进行框架设计,熟悉开发环境(3) 系统硬件设计(4) 系统软件设计(5) 完成毕业设计说明书3.主要参考文献[1] 卢毅,赖杰.VHDL与数字电路设计[M].北京:科学出版社,2002.[2]刘丽华.专用集成电路设计方法[M].北京:北京邮电大学出版社,2000.[3]张靖武,周灵彬.单片机系统的PROTEUS设计与仿真[M].北京:电子工业出版社,2007.基于Proteus的多功能数字电子钟的设计摘要:本设计采取单片机ATC89C51、按键开关与数码显示管、译码驱动器和一些简单的辅助电路相结合实现多功能数字电子钟的设计,此次设计主要主要实现了数字电子钟的时间显示功能、闹钟功能、计时功能、计数功能,并通过Proteus软件的学习,完成程序编制及调试。
关键词:多功能数字电子钟,AT89C51单片机,ProteusThe design of the multi-function digital electronic clock based onProteusAbstract:This design adopts single-chip microcomputer ATC89C51 switches, buttons and digital display tube, decoding drive and some simple auxiliary circuit to realize the combination of the design of the multi-function digital electronic clock, this design is mainly mainly realize the time display function of digital electronic clock, alarm clock, timing, counting functions, and through the study of Proteus software, complete the programming and debugging.Key words: multi-function digital electronic clock, AT89C51, Proteus目录1 前言 (1)1.1 课题产生的背景 (1)1.2 数字电子钟简介 (4)1.3 数字电子钟的基本特点 (5)1.4 数字电子钟的发展史 (5)1.5 数字电子钟的意义 (5)1.6 数字电子钟的应用 (5)1.7 数字电子钟的工作原理 (6)2 系统总体设计 (7)2.1 设计方案 (7)2.1.1 核心控制部分方案 (7)2.1.2 单片机选型 (7)2.1.3 显示部分方案 (10)2.1.4 键盘部分方案 (10)2.1.5 驱动部分选择方案 (10)2.2 方案选择 (11)3 系统硬件设计 (12)3.1 系统主要功能 (12)3.1.1 系统的硬件构成及功能 (12)3.2 硬件电路说明 (12)3.2.1 按键模块设计 (12)3.2.2 复位模块设计 (13)3.2.3 晶振模块设计 (14)3.2.4 发声指示模块设计 (15)3.2.5 时间显示模块设计 (16)4 系统软件设计 (21)4.1 主程序设计 (21)4.2 中断程序设计 (21)4.3 延时程序设计 (23)4.4 按键程序设计 (24)5 仿真与调试 (25)结论 (26)参考文献 (27)致谢 (29)附录一、系统硬件原理图 (30)附录二、源程序清单 (31)1 前言单片机技术被广泛应用于各种嵌入式系统中,单片机的发展极大地推动了电子技术和自动化技术的发展和应用。
毕业设计(论文)-基于PROTEUS 的多功能数字电子钟的设计自动化专业综合设计报告设计题目:基于PROTEUS的多功能数字电子钟的设计所在实验室:指导教师:学生姓名班级学号撰写时间:成绩评定:一、设计目的利用单片机STC89C52,液晶显示器等实现时间的显示以及闹钟等功能的数字电子钟,数字电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,节省了电能。
因此得到了广泛的使用。
数字钟是一种典型的数字电路,包括了组合逻辑电路和时序电路。
通过设计加深对学习了的单片机和PROTEUS的认识。
二、设计内容(1)用PROTEUS画出原理图,并完成下列任务:(2)用6只LED数码管输出显示时、分和秒。
(3)可通过按键设置闹钟功能,且停闹无须手工操作。
(4)可通过按键设置分校时。
(5)写出详细的设计报告。
(6)给出电路的原理图、源程序,仿真实现。
三、设计步骤1 系统主要功能电子钟的主要功能有:整点报时;四只LED数码管显示当前时分;并且具有闹钟功能。
2 系统的硬件构成及功能电脑钟的原理框图如图1所示。
它由以下几个部件组成:单片机89C2051、电源、时分显示部件。
时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。
时分显示模块以及显示驱动都通过89C2051的I/O口控制。
电源部分:电源部分有二部分组成。
一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作。
图1 电子钟系统原理框图2.1 AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。
内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
PROTEUS仿真的数字电子钟设计PROTEUS仿真的数字电子钟设计【摘要】电子钟作为现代人日常生活与工作中一种最为多见的计时工具之一,同人们的生活密切相关,而数字电子钟又凭借着小体积、轻重量与准确计时、结构简单以及少耗电等优点被广泛应用在日常生活中。
故文章介绍一种基于PROTEUS仿真软件的数字电子钟,并对其设计与仿真调试情况展开具体分析。
【关键词】PROTEUS仿真;数字电子钟;设计方案一、引言PROTEUS仿真软件,作为Labeenter Electronics公司研发出来的一款用于电路设计和仿真的软件,主要涵盖了ISIS 与ARES等软件模块,其中,ISIS模块主要是用于电路原理图的布图和仿真,而ARES 模块则多用于PCB设计。
在该仿真软件中,有着极为丰富的资源,拥有30多个元器件库,并为设计者提供了27000个以上的仿真元器件,为数字电路与模拟电路混合仿真效果的实现奠定了良好的基础。
同时,在该软件中,还可为用户提供了逻辑分析仪、虚拟终端与信号发生器以及交直流电压表等仿真仪器与仪表资源,即实现了同一仪器与仪表在同一个电路中的随意调整[1]。
下面,基于PROTEUS仿真软件设计一数字电子钟。
二、数字电子时钟的设计分析从本质上来说,数字电子钟主要可分为分频器、振荡器与译码器等几部分,其中,分频器与振荡器共同构成了一个“标准秒信号的发生器”,而其计时系统则由不同进制的计数器、显示器与译码器构成,当秒信号被输送到计数器中时开始计数,而后用“时”、“分”、“秒”的形式将累积结果显示出来[2]。
下面,对数字电子钟的设计展开具体分析。
图1本次设计主要以AT89C2051为其核心元器件(因PROTEUS仿真软件无该元器件,故设计原理图时以AT89C4051代替),主要分成以下几个部分:①振荡电路,该部分作为计时器的一个核心部分,其频率的精确性与稳定性直接关系到计时器的总体准确度,故为达到最佳精确度,本次设计选用晶体振荡器来组成其振荡电路;②按键电路,如图1-a,即设计了S1、S2与S3三个按键,并使之分别同P3.5、P3.4与P3.2的端口进行复用,只要对应端口输出高电平的时候,该单片机就可读取出按键的当前状态们,并赋予其相对值;③蜂鸣器电路。
电子行业数字电子钟毕业设计1. 引言数字电子钟是一种能够准确显示时间的设备,近年来在电子行业得到广泛应用。
本文将介绍一个基于数字电子钟的毕业设计项目,旨在设计和实现一个高精度、多功能的数字电子钟。
2. 设计目标本设计项目旨在满足以下几个设计目标:1.高精度:数字电子钟应能够准确显示当前时间,并具备较高的时间精度。
2.多功能:数字电子钟应具备除基本时间显示功能之外,还应包括日期、闹钟、秒表、倒计时等多种功能。
3.显示清晰:数字电子钟的显示界面应清晰可见,以便用户轻松阅读时间信息。
4.高可靠性:数字电子钟应具备稳定、可靠的工作性能,能够长时间连续工作而不出现故障。
3. 系统框架本设计项目的数字电子钟主要由以下几个模块构成:1.时钟芯片模块:负责实时时钟的计时和时间信息的存储。
2.显示模块:负责将时钟芯片模块获取的时间信息显示在屏幕上。
3.功能模块:包括日期、闹钟、秒表、倒计时等功能模块,负责实现相关功能的逻辑处理和显示。
4.按键模块:负责用户操作的按键检测和响应。
4. 主要实现步骤(1)硬件设计:•使用时钟芯片实现时钟计时和时间信息存储。
•连接显示模块,并设计使其能够正确显示时钟信息。
•连接按键模块,实现用户操作按键的检测和响应。
(2)软件设计:•编写时钟芯片模块的驱动程序,实现时钟计时和时间信息存储的功能。
•设计并实现显示模块的驱动程序,使其能够正确显示时钟信息。
•设计并实现功能模块的驱动程序,实现日期、闹钟、秒表、倒计时等功能的逻辑处理和显示。
•编写按键模块的驱动程序,实现用户操作按键的检测和响应。
5. 预期结果通过设计和实现上述的硬件和软件模块,预期可以实现一个高精度、多功能的数字电子钟。
该数字电子钟可以准确显示当前时间,具备日期、闹钟、秒表、倒计时等功能,并具有良好的用户操作体验和显示效果。
6. 结论本文介绍了一个基于数字电子钟的毕业设计项目。
通过该项目的设计和实现,预期可以得到一个高精度、多功能的数字电子钟。
多功能电子钟毕业设计多功能电子钟毕业设计随着科技的发展,电子产品在我们的生活中扮演着越来越重要的角色。
电子钟作为一种常见的家居电子产品,已经成为人们生活中不可或缺的一部分。
然而,目前市面上的电子钟功能单一,只能显示时间,无法满足人们对多样化功能的需求。
因此,我决定以多功能电子钟为毕业设计的主题,设计一款集多种功能于一体的电子钟。
首先,我计划在电子钟上增加一个温度显示功能。
这样,人们可以方便地了解当前的室内温度,无需额外的温度计。
这对于那些需要时刻掌握室内温度的人来说,将是一个非常实用的功能。
其次,我打算在电子钟上加入一个闹钟功能。
这个功能将允许用户设定多个闹钟,以满足不同时间的提醒需求。
而且,我还计划设计一个智能闹钟功能,可以根据用户的睡眠状态智能调整闹钟的响铃时间,以确保用户在最佳时机醒来,避免睡眠中断。
另外,我还想在电子钟上加入一个音乐播放功能。
这样,用户可以通过连接手机或其他音乐设备,将喜欢的音乐通过电子钟播放出来。
同时,我还将设计一个定时关闭音乐的功能,以免用户忘记关闭音乐而影响休息。
除了以上功能,我还计划在电子钟上增加一个倒计时功能。
这个功能可以帮助用户倒计时特定的时间段,比如做饭、运动等。
用户只需设置倒计时的时间,电子钟将会进行倒计时,并在时间结束时发出提醒。
另外,我还打算在电子钟上加入一个日历功能。
用户可以通过电子钟查看当前日期,并设置提醒事项。
这样,用户不仅可以方便地了解日期,还可以及时提醒自己重要的事项,提高工作效率。
最后,我还计划在电子钟上加入一个天气预报功能。
通过连接互联网,电子钟可以获取实时的天气信息,并显示在屏幕上。
这样,用户可以方便地了解当天的天气情况,做好相应的准备。
综上所述,我将设计一款集温度显示、闹钟、音乐播放、倒计时、日历和天气预报等多种功能于一体的电子钟。
这款电子钟将为用户提供更多的便利和实用性,满足人们对多样化功能的需求。
我相信,通过这个毕业设计,我将能够提高自己的设计能力,并为人们的生活带来更多的便利和乐趣。
基于Proteus的数字钟的设计与实现本系统采用小规模集成电路构成数字钟的硬件电路。
利用多谐振荡器产生时间标准信號,三个计数器(分别为60进制,60进制,24进制)用来设定“时”、“分”、“秒”信号,并输出分,小时,天的进位信号。
译码显示电路则用来将“时”“分”“秒”显示出来。
由于计数的起始时间不可能与标准时间一致,故需要在电路上加个校时电路可以对分和时进行校时。
另外,计时过程要具有报时功能,当时间到达整点前10秒开始,蜂鸣器有间隔地地响5秒钟。
标签:数字钟;振荡;计数;校正;报时0 引言数字电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
数字电子钟从原理上讲是一种典型的数字电路,其中包括了组合逻辑电路和时序电路。
1.硬件电路设计数字钟的设计框图与原理如图1所示。
首先,用555多谐振荡器产生的方波脉冲信号,再用计数器分频得到1HZ的方波脉冲信号,作为时钟脉冲信号CP。
其次,设计出1个24进制计数器和2个60进制计数器分别连接7段数码管,用来显示时、分、秒。
接着,用2个数据选择器控制小时计数器和分钟计数器的时钟脉冲频率,完成快速校时校分的功能。
最后,用数据选择器选择整点报时和闹钟时间,控制扬声器振动发声。
1KHZ信号可通过555定时器的多谐振荡器来产生。
依据,取,可得。
取,取滑动变阻器。
有关分频,我选取3个异步清零同步置数的十进制计数器74ls160来完成分频功能。
时分秒数字显示电路需用两片74ls160组成60进制计数器,采取异步清零方式,则60作为清零状态。
即权重为40、20的通过与非门接清零端,即Q6和Q5通过与非门接清零端。
同理可得,24可作为24进制计数器的清零状态,即将输出端的Q5和Q2通过与非门接清零端。
校时校分电路即用数据选择器来选择计数器的低位片频率。
数据选择器的使能端由手动开关控制,开关断开则数字钟正常运行,闭合则用来校时校分。
自动化专业综合设计报告设计题目:基于PROTEUS的多功能数字电子钟的设计所在实验室:指导教师:学生姓名班级学号撰写时间:成绩评定:一、设计目的利用单片机STC89C52,液晶显示器等实现时间的显示以及闹钟等功能的数字电子钟,数字电子钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,节省了电能。
因此得到了广泛的使用。
数字钟是一种典型的数字电路,包括了组合逻辑电路和时序电路。
通过设计加深对学习了的单片机和PROTEUS的认识。
二、设计内容(1)用PROTEUS画出原理图,并完成下列任务:(2)用6只LED数码管输出显示时、分和秒。
(3)可通过按键设置闹钟功能,且停闹无须手工操作。
(4)可通过按键设置分校时。
(5)写出详细的设计报告。
(6)给出电路的原理图、源程序,仿真实现。
三、设计步骤1 系统主要功能电子钟的主要功能有:整点报时;四只LED数码管显示当前时分;并且具有闹钟功能。
2 系统的硬件构成及功能电脑钟的原理框图如图1所示。
它由以下几个部件组成:单片机89C2051、电源、时分显示部件。
时分显示采用动态扫描,以降低对单片机端口数的要求,同时也降低系统的功耗。
时分显示模块以及显示驱动都通过89C2051的I/O口控制。
电源部分:电源部分有二部分组成。
一部分是由220V的市电通过变压、整流稳压来得到+5V电压,维持系统的正常工作。
图1 电子钟系统原理框图2.1 AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。
内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。
由于将多功能八位CPU 和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM 和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
AT89C2051是一个有20个引脚的芯片,引脚配置如图3所示。
与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。
图2 AT89C2051引脚配置AT89C2051芯片的20个引脚功能为:VCC 电源电压。
GND 接地。
RST 复位输入。
当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。
XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2 来自反向振荡放大器的输出。
P1口8位双向I/O口。
引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。
P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。
在闪速编程与编程校验期间,P1口也可接收编码数据。
P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。
P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。
P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。
P3口也可用作特殊功能口,其功能见表1。
P3口同时也可为闪速存储器编程和编程校验接收控制信号。
2.2 时分显示部件由于系统要显示的内容较简单,显示量不多,所以选用数码管既方便又经济。
LED有共阴极和共阳极两种。
如图7所示。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。
为了保护各段LED不被损坏,需外加限流电阻。
图3 LED数码管结构原理图众所周知,LED显示数码管通常由硬件7段译码集成电路,完成从数字到显示码的译码驱动。
本系统采用软件译码,以减小体积,降低成本和功耗,软件译码的另一优势还在于比硬件译码有更大的灵活性。
所谓软件译码,即由单片机软件完成从数字到显示码的转换。
从LED数码管结构原理可知,为了显示字符,要为LED显示数码管提供显示段码,组成一个“8”字形字符的7段,再加上1个小数点位,共计8段,因此提供给LED数码管的显示段码为1个字节。
各段码位与显示段的对应关系如表1。
表1 各段码位的对应关系段码位D7 D6 D5 D4 D3 D2 D1 D0 显示段dp g f e d c b a各段码位与显示段有不同的对应关系。
通常数据口的D0位与a段连接,D1位与b段连接,……D7位与dp段连接,如表1所示,表2为用于LED数码管显示的十六进制数和空白字符与P的显示段码。
表2 LED显示段码字型共阳极段码共阴极段码字型共阳极段码共阴极段码0 C0H 3FH 9 90H 6FH1 F9H 06H A 88H 77H2 A4H 5BH B 83H 7CH3 BOH 4FH C C6H 39H4 99H 66H D A1H 5EH5 92H 6DH E 86H 79H6 82H 7DH F 84H 71H7 F8H 07H 空白FFH 00H8 80H 7FH P 8CH 73H(2)“空白”字符即没有任何显示。
根据AT89C2051单片机灌电流能力强,拉电流能力弱的特点,我们选用共阳数码管。
将AT89C2051的P1.0~P1.7分别与共阳数码管的a~g及dp相连,高电平的位对应的LED数码管的段暗,低电平的位对应的LED数码管的段亮,这样,当P0口输出不同的段码,就可以控制数码管显示不同的字符。
例如:当P0口输出的段码为1100 0000,数码管显示的字符为0。
数码管显示器有二种工作方式,即静态显示方式和动态扫描显示方式。
为节省端口及降低功耗,本系统采用动态扫描显示方式。
动态扫描显示方式需解决多位LED数码管的“段控”和“位控”问题,本电路的“段控”(即要显示的段码的控制)通过P1口实现;而每一位的公共端,即LED数码管的“位控”,则由P3口控制。
这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。
在这一瞬时,只有这一位在显示,其他几位则暗。
在本系统中,字位线的选通与否是通过PNP三极管的导通与截止来控制,即三极管处于“开关”状态。
系统的时分显示部件由4只7段共阳LED数码管构成,前两只用于时的显示,后两只用于分的显示。
值得一提的是,在设计中需要实现时与分之间的两个闪烁点,为此,将第三只LED数码管倒置摆放,这样就形成了两个很自然的闪烁点。
与此同时,为了能使两点显示能够形象的表示时钟“秒”的变化,设计时,将两个点由P1.7单独控制,每隔一秒使P1.7发送一个正脉冲,从而实现了两个点的闪烁显示,闪烁周期为一秒。
3 系统的软件构成及功能本系统的软件系统主要可分为主程序和定时器中断程序两大模块。
在程序过程中,加入了抗干扰措施。
下面对部分模块作介绍。
3.1 系统主程序设计主程序的功能是完成系统的初始化,程序流程如图4所示。
3.2 中断程序设计中断程序(如图5所示)完成时间计数,时间调整,误差消除等功能。
中断采用AT89C2051内部T0中断实现,当时间到达125ms×8,即1分钟时,分种数增加1,到达1小时,则小时数增加1,并将分、时的个位、十位放入显示缓冲器。
当分别到达60min、24h时,则对它们清零,以便重新计数。
图4 系统主程序流程图图5 定时中断程序四、硬件图1、硬件图2、程序运行时显示五、软件程序#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit F=P3^6;sbit key1=P3^2; //定时调时按钮sbit key2=P3^3; //加1按钮sbit key0=P3^0; //复位按钮uint b,i=0,a,m=18,f=18,s=8,xs[6],jia,wei=0,z,ding[6],ds=9,df=0,dm=20; unsigned char code Select[]={0x01,0x02,0x04,0x08,0x10,0x20}; uchar code table[]={ 0xc0,0xF9,0xA4,0xB0,0x99,//0-40x92,0x82,0xF8,0x80,0x90,//5-90x88,0x83,0xC6,0xA1,0x86,//A,b,C,d,E0x8E,0xFF,0x0C,0x89,0x7F,0xBF};//F,空格,P,H,.,-void delay(uint t);void change();void fuwei();void main(){TMOD=0x01; //设定初值TH0=(65536-50000)/256 ;TL0=(65536-50000)%256;IT1=1;EA=1;ET0=1;EX0=1;EX1=1;TR0=1;F=1;while(1){if(key0==0)fuwei();i++;if(i==6){i=0;P2=0x00;}P2=Select[5-i]; //选择哪个显示if(wei>3)P1=table[ding[5-i]];elseP1=table[xs[5-i]];delay(12);if(wei!=0)change();if(s==ds&&f==df) //闹钟{if((m-dm)<=30)F=!F;}if(f==0&&m==0) //整点报时{F=!F;delay(100);F=1;}}}void yan() interrupt 1{TH0=(65536-50000)/256 ;TL0=(65536-50000)%256;b++;if(z==10)z=0;if(b==20){if(m<59){m++;}else if(f<59){f++;m=0;}else if(s<12){s++;f=0;m=0;}else{s=0;f=0;m=0;}b=0;}if(wei<4){if(z<=6){if(wei==1){xs[5]=16;xs[4]=16;}if(wei==2){xs[3]=16;xs[2]=16;}if(wei==3){xs[1]=16;xs[0]=16;}}else{xs[5]=m%10;xs[4]=m/10;xs[3]=f%10;xs[2]=f/10;xs[1]=s%10;xs[0]=s/10;}}if(wei>3){if(z<=6){if(wei==4){ding[5]=16;ding[4]=16;}if(wei==5){ding[3]=16;ding[2]=16;}if(wei==6){ding[1]=16;ding[0]=16;}}else{ding[5]=dm%10;ding[4]=dm/10;ding[3]=df%10;ding[2]=df/10;ding[1]=ds%10;ding[0]=ds/10;}}}void jiaa() interrupt 0{delay(100);if(key1==0)jia=1;}void weii() interrupt 2{delay(10);if(key2==0){if(wei==6)wei=0;elsewei++;}}void change(){if(wei==3){if(jia==1){if(s==12)s=0;elses++;jia=0;}}if(wei==2){if(jia==1){if(f==60)f=0;elsef++;jia=0;}}if(wei==1){if(jia==1){m=0;jia=0;}}if(wei==6){if(jia==1){if(ds==12)ds=0;elseds++;jia=0;}}if(wei==5){if(jia==1){if(df==60)df=0;elsedf++;jia=0;}}if(wei==4){if(jia==1){if(dm==60)dm=0;elsedm++;jia=0;}}}void fuwei() //复位程序{s=0;f=0;m=0;}void delay(uint t){uint i;for(i=0;i<100;i++)for(;t>0;t--);}六、仿真结果1、软件调试是在仿真图上进行,这样会比较方便,可以及时发现错误,分析错误,以便于修改,直至结果正确,然后再下载程序,看是否符合要求,程序的调试,是需要极大的耐心和毅力的,同时,要有心细严谨的态度去调试,直至程序无误,可以生成可下载.hex文件。