基于proteus的数字电子钟的仿真设计
89C51Proteus仿真数字闹钟报告
数字电子钟一、LED数字电子钟介绍一、设计LED数字电子钟的目的目前市场上提供的不管是机械钟仍是石英钟在晚上无照明的情形下都是不可见的。
要明白当前的时刻,必需先开灯,故较为不便。
此刻市场上也显现了一些电子钟,它以六只LED 数码管来显示时分秒,与传统的以指针显示秒的方式不同,违抗了人们传统的适应与理念,而且这种电子钟一样是采纳大型显示器件,适合于银行、车站等公开场合,且外观设计欠美观,很少进入百姓家庭,另外,不管是机械钟、石英钟仍是电子钟。
都存在着一起的问题:时刻误差。
针对以上存在的问题,咱们设计了一款采纳LED显示器件显示的电子时钟,有效克服了时钟存在的误差问题。
二、LED数字电子钟的特点和功能(1)、设计特点:本LED电子按时闹钟是一种基于单片机技术的多功能、多用途的电子产品,有电子时钟、按时闹铃功能。
采纳LED显示加倍直观,是一个比较有效的电子产品。
(2)、要紧功能:能够显示24小时制“不时—分分—秒秒”,LED显示;能够方便的设定定不时刻闹铃功能,预设定不时刻到将发出闹铃声;能够修改时钟时刻的时、分、秒。
二、系统整体方案及硬件设计1、整体方案设计本LED电子数字闹钟,是以单片机及外围接口电路作为核心硬件,辅之外围硬件电路,用汇编语言设计的程序来设计并实现的。
依照AT89C51单片机的外围接口特点扩展成相应的硬件电路,然后依照单片机的指令设计出数字钟相应的软件,在利用软件来执行必然的程序实现数字钟的功能。
之因此用单片机来制作电子钟,是因为如此在设计制作简单而且功能多、精准度高,也可方便的扩充其他功能。
这次设计是利用AT89C51单片机为主控芯片,由七段数码管、晶振、电容、开关、喇叭等元件组成硬件电路,通过编写软件程序来实现和操纵的数字按时闹钟。
二、硬件设计整体的硬件系统结构框图如以下图所示:图1:硬件电路概念示用意图2:硬件电路框图3、主控芯片AT89C51AT89C51单片机由微处置器,存储器,I/O口和特殊功能寄放器SFR等部份组成。
基于PROTEUS仿真的数字电子钟设计
基于PROTEUS仿真的数字电子钟设计单片机技术是现代电子工程领域一门迅速发展的技术,它的应用已经渗透到各种嵌入式系统中。
随着计算机技术的普及,采用Proteus软件与Keil软件整合构建单片机虚拟实验平台。
可以使教师在讲述理论的同时,利用Proteus软件进行仿真、演示,使学生消除“抽象感”增加学习的兴趣。
使课堂教学更生动、直观使单片机课程中一些基本理论和基本概念更加容易理解。
标签:虚拟模拟仿真0 引言Proteus软件是英国Labcenter electronice公司开发的电路分析与实物仿真软件。
它不仅具有其他EDA工具软件的仿真功能。
还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件工具。
该软件的特点是:①实现了单片机仿真和SPICE电路仿真相结合。
具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
②支持主流单片机系统的仿真。
目前支持的单片机类型有:8051系列、A VR系列、ARM系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。
③提供软件调试功能。
在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。
总之,该软件是一款集单片机和SPICE 分析于一身的仿真软件,功能极其强大。
1 数字钟电路设计数字钟的原理框图如图1所示。
它由以下几个部件组成:单片机AT89S52、电源、时分显示部件。
时分显示采用动态扫描,可以降低对单片机I/O口数的要求,同时也降低系统的功耗。
时分显示模块以及显示驱动都通过AT89S52的I/O口控制。
电源部分:两种方法:一种是由220V的市电通过变压、整流稳压(主要用7805稳压块)来得到+5V电压,维持系统的正常工作。
基于Proteus的单片机控制电子时钟电路设计与仿真
方案二:AT89S52是一个低消耗,高性能CMOS8为单片机,片内含4kBytes ISP的可反复撰写1000次的Flash只读程序存储器。主要性能有:与MCS-51单片机产品兼容、全静态操作:0Hz~33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符、易编程。
第三章
3.1
方案一:AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容.由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
2
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走路精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用液晶显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能.
数字钟设计 proteus仿真
数字钟设计Digital clock design1.实验目的1.掌握数字钟的设计方法。
2.熟悉集成电路的使用方法。
2.实验内容及要求时钟显示功能,能够以十进制显示“时”、“分”、“秒”。
其中时为24进制,分秒为60进。
3.设计思路、芯片选择及单元电路功能简介1.设计思路:数字钟的设计可以分为4个单元电路来设计,分别为1Hz脉冲产生电路、数码管显示电路、60进制计数器电路、24进制计数器电路这四个单元电路。
2.芯片的选择:BCD——七段译码器74LS47十进制可逆计数器74192555定时器集成与门芯片74LS113.单元电路功能简介:①1Hz脉冲产生电路:图1 1Hz脉冲产生电路该单元电路是用由555定时器构成的多谐振荡器来产生的1HZ方波的电路,其中考虑到电路的“延时”效应,该电路产生的方波的频率并不是标准的1HZ方波,而是频率稍大于1Hz的方波。
它是为整个电路提供时钟源的,它的输出脉冲提供给秒单元电路的低位计数芯片。
②数码管显示电路:图2数码管显示电路该单元电路是用来显示一位数字的电路,它由一块数码管和一块数码管驱动芯片组成,它的输入信号由计数器提供。
③60进制计数器电路:图3 60进制计数器电路该单元电路由两片74LS192可逆计数器芯片、一个三输入与非门和一个非门构成的60进制计数器电路,它是为秒显示和分显示电路提供驱动信号的单元电路。
④24进制计数器电路:图4 24进制计数器电路该单元电路是由两片74LS192可逆计数器芯片和一个与门构成的24进制计数器电路,它的低位脉冲信号由分钟计数器单元电路的进位信号提供,它为小时显示电路提供驱动信号。
4.总电路图图5 总电路图5.仿真效果1.在接通电源之前,应保持开关SW1断开且SW2闭合,如下图所示:图6 SW1和SW2状态(1)2.接通电源后应先断开开关SW2,保持开关SW1断开状态不变,如下图所示:图7 SW1和SW2状态(2)3.在做完第二步之后,应保持开关SW2断开状态不变,闭合开关SW1,如下图所示:图8 SW1和SW2状态(3)在执行完以上三步之后,就是仿真的正确结果了,如下图所示:图9 总的运行效果6.实验结论在本次实验中,对于74LS192可逆计数器芯片来说,它本是十进制计数器,若用它构成六进制计数器,据理论知识,仅需要将它的输出端Q1和Q2端通过一个与门后反馈到清零端CR即可。
基于Proteus的数字电子钟的设计与仿真
基于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器件连接到总线上,通过进行不同的配置进行选择器件。
基于protues单片机的电子钟设计
电子设计自动化技术与应用设计报告设计题目:基于单片机的电子钟设计学院:通信学院姓名: *******学号: S*******目录一、需求分析 (1)二、系统分析 (1)2.1 硬件系统分析 (1)2.2 软件系统分析 (2)三、系统设计 (2)3.1 主程序流程图 (2)3.2 子程序流程图 (3)四、硬件电路设计 (5)4.1 电源电路 (5)4.2 晶振模块设计 (5)4.3 复位模块设计 (5)4.4 按键模块设计 (6)4.5 显示电路 (6)五、系统仿真 (7)六、心得与总结 (7)基于单片机的电子钟设计一、需求分析名称:电子钟设计输入:功能按钮key1、key2、key3、 输出:数码管显示需实现的功能:显示时钟,24小时制,并可以对时钟进行修改。
二、系统分析2.1 硬件系统分析电子钟要包括信号发生器、时间显示电路、按键电路、供电电源。
整个系统用单片机作为中央控制器,由单片机执行采集芯片内部时钟信号,时钟信号通过单片机I/O 口传给单片机,单片机模块控制驱动模块驱动显示模块,通过显示模块来实现信号的输出、LED 的显示及相关的控制功能。
系统设有按键模块用于对时间进行调整及扩展多个小键盘,系统整体框图如图(1)所示。
该系统使用AT89C51单片机,完成电子钟的主要功能。
AT89C51按键模块晶振电路显示模块复位电路图(1) 系统框图(1)单片机芯片的选择:本实验选用的是A T89C51单片机芯片。
该芯片的主要特点是:与MCS-51 兼容,可反复擦写1000次的Flash 只读程序存储器,三级程序存储器锁定,128×8位内部RAM ,5个中断源,两个16位定时器/计数器,片内振荡器和时钟电路。
128×8位内部RAM ,全静态工作:0Hz-24MHz 。
(2)数码管显示的选择:本实验选用的是动态显示,即各位数码管轮流点亮,对于显示器各位数码管,每隔一段延时时间循环点亮一次。
Proteus电子钟仿真实验高清版
Proteus 仿真大赛电子时钟仿真第一章电子时钟总体设计1.1电子时钟简介电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。
随着人们生活环境的不断改善和美化,在许多场合都用到电子时钟。
很多单片机产品具有实时时钟的功能,例如智能化仪器仪表、工业过程系统及家用电器等。
这里要求实现一个具有实时时钟显示和闹钟控制功能的数字钟。
通过数字钟的设计与制作,将前面所学的单片机内部定时资源、I/O端口、键盘和显示接口等知识融会贯通,锻炼独立设计、制作和调试应用系统的能力,深入领会单片机应用系统的硬件设计、模块化程序设计及软硬件调试方法等,并掌握单片机应用系统的开发过程。
1.2电子钟设计要求设计并制作具有如下功能的数字钟:(1)自动计时,由6位LED先四起显示时、分、秒。
(2)具备校准功能,可以设置当前时间。
(3)具备定时启动功能,可以设置闹钟时间,启闹10s后自动关闭闹铃。
1.3电子钟计时方案(1)采用实时时钟芯片。
针对应用系统对实时功能的普遍需求,各大芯片生产厂家陆续推出了一系列实时时钟集成电路,如DS1287、DS12887、DS1302、PCF8563、S35190等。
这些实时时钟芯片具备年、月、日、时、分、秒、计时功能和多点定时功能,计时数据每秒自动更新一次,不需程序干预。
单片机可通过中断或查询方式读取计时数据。
实时时钟芯片的计时功能无须占用CPU时间,功能完善,精度高,软件程序设计相对简单,在实时工业测控系统中多采用这一类专用芯片来实现。
(2)软件控制。
利用AT89S51内部定时/计数器进行中断定时,配合软件延时、分、秒的计时。
该方案节省硬件成本,且能够使读者对前面所学知识进行综合运用,因此,本系统设计采用这一方案。
1.4电子钟显示方案(1)利用串行口扩展LED,实现LED静态显示。
该方案占用单片机资源少,且静态显示亮度高,但硬件开销大,电路复杂,信息刷新速度慢,比适用于单片机并行口资源较少的场合。
基于proteus软件的单片机数字时钟系统设计与仿真
目录一、设计正文 (1)二、附录1. 设计任务书 (32)2. 设计中期检查报告 (34)3. 指导教师指导记录表 (35)4. 设计结题报告 (36)5. 成绩评定及答辩评议表 (37)6. 设计答辩过程记录 (40)基于Proteus软件的单片机数字时钟系统设计与仿真摘要:近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此越来越广泛地应用各个领域.本文的电子钟系统是以单片机(AT89C51)为核心,时钟芯片DS1302、数码管显示驱动芯片MAX7219等元器件组成。
具体介绍应用Proteus的ISIS软件进行单片机系统的电子钟设计与仿真的实现方法。
该方法既能准确验证所设计的系统是否满足技术要求,又能提高系统设计的效率和质量,降低开发成本,具有推广价值。
关键词:单片机、时钟芯片、数码管显示驱动芯片、Proteus、电子钟Design and Simulation Of electronic clock Based onProteus Software SystemAbstract :In recent years, with computers in the infiltration and the development of large-scale integrated circuits. SCM application is steadily deepening, as it has strong function, small size, low power dissipation, low prices, reliable, easy to use features, it is particularly suited to and control of the system, increasingly widely used in various fields.This article describes an electronic bell system is single-chip microcomputer (AT89C51) as the core, the clock chip DS1302, LED display driver chip components, such as MAX7219 component.Describes the application of Proteus's ISIS software of the electronic single-chip system clock to achieve the design and simulation methods in details.The method can not only test the property of the system precisely,but also improve development efficiency and reduce development cost,which values in popularity.Key words:AT89C51、DS1302、MAX7219、Proteus、electronics clock目录1 绪论 (1)1.1引言 (1)1.2P ROTEUS软件简介 (1)2系统设计 (3)2.1电子钟系统硬件组成 (3)2.2AT89C51单片机简介 (4)2.2.1.主要特性................................................................................................................ - 5 -2.2.2.管脚说明................................................................................................................ - 5 -2.3实时时钟电路DS1302工作原理 (8)2.3.1DS1302的结构及工作原理 (8)2.3.3DS1302的寄存器................................................................................................. - 9 -2.4MAX7219工作原理简介 (10)2.4.1.引脚分配及功能 ................................................................................................ - 11 -2.4.2.寄存器介绍......................................................................................................... - 12 -2.5数码管介绍.. (14)2.5.1数码管的分类 ..................................................................................................... - 14 -2.5.2数码管的应用..................................................................................................... - 15 -2.5.6数码管使用的电流与电压............................................................................. - 15 -2.6电子时钟系统设计流程.. (16)3硬件电路设计 (17)3.1电路原理图设计 (17)3.2P ROTEUS 电路图设计 (18)4软件设计 .................................................................................................................................... - 19 - 4.1程序流程图设计 . (19)4.2源程序设计 (20)4.3K EIL C51进行程序调试 (25)5.系统调试与仿真 (27)5.1P ROTEUS中H EX 文件选择 (27)5.2P ROTEUS进行电子钟系统仿真 (28)结束语 (29)参考文献........................................................................................................................................ - 30 - 谢辞 ............................................................................................................................................ - 31 -1 绪论1.1引言随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。
PROTEUS仿真的数字电子钟设计
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的端口进行复用,只要对应端口输出高电平的时候,该单片机就可读取出按键的当前状态们,并赋予其相对值;③蜂鸣器电路。
开题报告基于Proteus的数字钟设计及仿真
创新设计基于数字器件的数字钟proteus仿真设计基于Proteus强大的仿真功能和丰富的元件仿真模型,提出了新的用于电子技术的仿真方法. 使用常用的芯片555定时器和74LS90计数器设计了电路原理图,对电路的每个单元进行了仿真实验,可以直观地观测出电路的仿真效果.修蕊2010-9-13目录:第一章:项目概述1-1摘要---------------------------------------------------------------------------------------31-1引言---------------------------------------------------------------------------------------31-1工作原理---------------------------------------------------------------------------------3第二章:方案论证2-1方案一及其优势------------------------------------------------------------------------32-2方案二及其优势------------------------------------------------------------------------3-42-2方案三及其优势------------------------------------------------------------------------3-42-3对比总结---------------------------------------------------------------------------------3-4第三章:方案确定及预期目标3-1方案确定-----------------------------------------------------------------------------------53-2所需设备-----------------------------------------------------------------------------------53-3所用电路-----------------------------------------------------------------------------------5第四章:进度安排------------------------------------------------------------------------------6 结束语----------------------------------------------------------------------------------6 参考文献基于Proteus的数字钟设计及仿真1-1摘要:基于Proteus强大的仿真功能和丰富的元件仿真模型,提出了新的用于电子技术的仿真方法. 使用常用的芯片555定时器和74LS90计数器设计了电路原理图,对电路的每个单元进行了仿真实验,可以直观地观测出电路的仿真效果. 这种基于Proteus软件的仿真方法在电子技术的教学演示及实际设计等方面具有很大的辅助作用.引言:在电子技术设计期间,仿真扮演着非常重要的角色,通过对电路的仿真,可以提高设计效率,在常规的仿真中,使用较多的软件如MATLAB、MAX2p lusⅡ,其仿真功能强大,可以用于各个科学领域. 但在电子技术设计中,特别是数字电路设计时,不仅要了解它们的实时信号,还需要同时对多个输出信号的逻辑关系进行分析. Proteus软件是来自英国Labcenter electronics公司的EDA工具软件,它除了有和其他EDA工具一样的原理图编辑、PCB自动或人工布线及电路仿真的功能外,还有一些虚拟的仪器及仪表,而这些仪器及仪表非常适合分析电子电路,如:逻辑分析仪、计数计时仪、信号发生器等,其中逻辑分析仪可以同时观测到16个波形,而且逻辑关系一目了然. 另外Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,设计者可以直观地观测到仿真效果. 本文以Proteus软件作为仿真平台,利用集成电路及其所需要的外围电路组成数字钟及校正电路,并对其结果进行了详尽的仿真及结果分析.数字钟的工作原理:数字时钟一般由振荡器、译码器等几部分组成. 其中,振荡器组成标准秒信号发生器,由不同进制的计数器、译码器和显示器组成计时系统. 秒信号送入计数器进行计数,把累积的结果以“时”、“分”、“秒”的数字显示出来.“时”显示由二十四进制计数器、译码器和显示器构成;“分”、“秒”显示分别由六十进制计数器、译码器和显示器组成.2-1 方案论证:数字钟既可以通过纯硬件实现,也可以通过软硬结合实现,根据电子时钟的核心部件——秒信号的产生原理,通常有三钟形式:(1) 用555定时器电路的形式555定时器的电路原理图及管脚排列图分别如图2-1和2-2所示。
基于proteus仿真的数字钟
数字(一)钟是一个对1Hz频率进行计数的电路。
振荡器产生的时钟信号经过分频器形成秒脉冲信号,秒脉冲信号输入计数器进行计数,显示出时间。
秒计数器电路计满60后触发分计数器电路,分计数器电路计满60后触发时计数器电路,当计满24小时后重零开始计数。
一般由振荡器、分频器、计数器、译码器、数码显示器等几部分组成。
振荡电路:主要用来产生时间信号。
石英晶体振荡器可以提高时间信号的稳定度。
分频器:振荡器产生的信号频率很高,要得到“秒”信号,需一定级数的分频器进行分频。
计数器:有了“秒”信号,则可以根据60秒为1分,24小时为1天的进制,分别设定“时”、“分”、“秒”的计数器,分别为60进制,60进制,24进制计数器,并输出一分,一小时,一天的进位信号。
译码显示:将“时”“分”“秒”显示出来。
将计数器输入状态,输入到译码器,产生驱动数码显示器信号,呈现出对应的进位数字字型。
关键词数字钟振荡计数校正目录1.前言22.系统总体方案设计32.1方案比较42.2方案选择63单元模块设计73.1时间计数电路的设计73.2译码显示电路93.3三个按键的电路113.3.1按键一:光标的移位与闪烁123.3.2按键二:时间的上翻让时间得到修改143.3.3 按键三:确定154 系统调试155 系统功能和指标参数155.1系统功能165.2系统指标参数166 设计总结和体会176.1设计总结176.2设计的收获体会17致谢1818附录数字电子钟电路总图191.前言数字电子钟是一个用数字电路实现的时,分,秒计时的装置,与机械式时钟相比具有更高的准确性。
本次的数字电子钟的设计原理就是一种典型的数字电路,其中还包括了一些组合逻辑电路和时序电路。
本次的数字电子钟的设计主要目的是为了让我们更好的掌握数字电子钟的原理,从而掌握逻辑电路的一些典型运用,学会自己制作电子钟。
通过对数字电子钟得设计进一步的了解各种中小规模集成电路的作用和实用方法。
基于proteus的数字电子钟的仿真设计
基于p r o t e u s的数字电子钟的仿真设计文件排版存档编号:[UYTR-OUPT28-KBNTL98-UYNN208]课程论文题目:基于Proteus的数字电子钟的设计与仿真课程名称:单片机系统设计与Proteus仿真学生姓名:马珂学生学号: 23系别:电子工程学院专业:通信工程年级: 13级任课教师:徐锋电子工程学院2015年5月目录24六、4基于Proteus的数字电子钟的设计与仿真一、设计目的与要求设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。
设计要求:设计一个时、分可调的数字电子钟、开机显示“9-58-00”。
二、设计内容与方案制定具有校时功能,按键控制电路其中时键、分键两个键分别控制时、分时间的调整。
按分键分加1;按时键时加1。
以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。
三、设计步骤1、硬件电路设计.硬件电路组成框图.各单元电路及工作原理(1)晶振电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。
本系统中AT89C51单片机采用内部时钟方式。
采用外接晶体和电容组成的并联谐振回路。
其电路图如下:(2)键盘控制电路键盘可实现对时间的校对,用两个按键来实现。
按时键来调节小时的时间,按分键来调节分针的时间。
其电路连接图如下:(3)显示电路LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。
.绘制原理图其计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。
基于protues平台下LCD电子钟的仿真设计
电子信息技术创新实践课程设计说明书(论文)题目:基于protues平台下LCD电子钟的仿真设计学院:信息工程学院班级: 201X级电子信息工程X班学生姓名:XXX学号:XXXXXXXXXXXX指导教师:XXX设计时间: 2017年 5月26日--2017年 6月20日成绩:(百分制)黄山学院教务处制黄山学院课程设计任务书基于protues平台下LCD电子钟的仿真设计说明书信息工程学院电子信息工程XX(学号)指导老师:XXX(副教授)摘要:本设计是基于protues平台下的LCD万年历仿真。
设计中采用了LCD1602液晶作为显示模块,使用到实时时钟DS1302作为时间来源,51单片机通过获取来的时间值来实现相关处理。
同时,设计中设置了四个按键,用于控制万年历的相关时间参数。
关键词:51单片机;LCD1602;DS1302;万年历黄山学院课程设计说明书目录1引言 (3)2设计思路与方案选择 (4)2.1 设计思路 (4)2.2 方案一 (4)2.3 方案二 (5)3 系统设计 (5)3.1 硬件电路设计 (5)3.1.1 单片机外围电路设计 (5)3.1.2 电源电路设计 (6)3.1.3 DS1302时钟电路设计 (6)3.1.4 LCD1602液晶显示模块 (7)3.1.5 按键模块 (9)3.2系统软件设计 (9)3.2.1 系统软件设计思路 (9)3.2.2 按键检测设计思路 (10)4系统调试 (11)4.1 系统调试过程 (11)4.2结论 (13)参考文献 (13)1引言在现代生活中,电子时钟是作为不可缺少的存在。
在不同的电子设备上,电子时钟也以不同的方式出现。
所以,本文就是以基于LCD1602液晶的万年历仿真为例,向大家介绍一种实现电子时钟的方案。
本方案以AT89C51单片机作为主控核心,与时钟芯片DS1302、按键、LCD1602液晶显示等模块组成硬件系统。
在硬件系统中设有独立按键和LCD1602液晶,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间等。
基于proteus的电子钟仿真
电子钟(中断计时)一.实验内容:利用cpu的中断程序,实现1s的精确计时,并仿真出可以调整时间的LED电子钟。
二.实验步骤:i.在proteus中选择相应的元器件,并根据内容要求按一定的方式连接电路;ii.根据在软件仿真中所连接的电路,在keil中编写相应的程序,编译无误后生成相应的*.hex文件;iii.将*.hex加入软件仿真的单片机中,并运行。
1.电路图选取1个8段共阳集成LED灯,89c51单片机,3个按键。
P0和P3分别连接LED 的公共端和位选端。
设置单片机的工作频率为12MHz,中断溢出的时间为10ms,故中断溢出100次的时间为1s。
3个独立按键分别控制时分秒的增1调整。
2.流程图3.c语言程序#include<regx51.h>unsigned char show[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x3f}; unsigned char scan[]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; unsigned char second;unsigned char min;unsigned char hour;unsigned char tcount;sbit h=P1^0;sbit m=P1^3;sbit s=P1^7;delay(){int i,j;for(i=10;i>0;i--)for(j=20;j>0;j--) ;}void display(){ P3=scan[0];P0=show[second%10];P3=scan[8];delay();P3=scan[0];P0=show[second/10];P3=scan[7];delay();P3=scan[0];P0=show[10];P3=scan[6];delay();P3=scan[0];P0=show[min%10];P3=scan[5];delay();P3=scan[0];P0=show[min/10];P3=scan[4];delay();P3=scan[0];P0=show[10];P3=scan[3];delay();P3=scan[0];P0=show[hour%10];P3=scan[2];delay();P3=scan[0];P0=show[hour/10];P3=scan[1];delay();}KEY(){ if(h==0){delay();if(h==0)hour++;if(hour==24)hour=0;while(!h);}if(m==0){delay();if(m==0)min++;if(min==60)min=0;while(!m);}if(s==0){delay();if(s==0)second++;if(second==60)second=0;while(!s);}}void main(){ tcount=0;second=0;min=0;hour=0;P1=0Xff;EA=1;ET0=1;TMOD=0X01;TH0=(65535-10000)/256;TL0=(65535-10000)%256;TR0=1;while(1){KEY();display();}}void Time0(void) interrupt 1 using 0 { TH0=(65535-10000)/256;TL0=(65535-10000)%256;tcount++;if(tcount==100){tcount=0;second++;if(second==60){second=0;min++;if(min==60){min=0;hour++;if(hour==24)hour=0;}}}}4.程序运行截图。
基于Proteus的数字钟的设计与实现
基于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的数字电子钟的仿真设计
基于p r o t e u s的数字电子钟的仿真设计文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)课程论文题目:基于Proteus的数字电子钟的设计与仿真课程名称:单片机系统设计与Proteus仿真学生姓名:马珂学生学号: 23系别:电子工程学院专业:通信工程年级: 13级任课教师:徐锋电子工程学院2015年5月目录24六、4基于Proteus的数字电子钟的设计与仿真一、设计目的与要求设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。
设计要求:设计一个时、分可调的数字电子钟、开机显示“9-58-00”。
二、设计内容与方案制定具有校时功能,按键控制电路其中时键、分键两个键分别控制时、分时间的调整。
按分键分加1;按时键时加1。
以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。
三、设计步骤1、硬件电路设计.硬件电路组成框图.各单元电路及工作原理(1)晶振电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。
本系统中AT89C51单片机采用内部时钟方式。
采用外接晶体和电容组成的并联谐振回路。
其电路图如下:(2)键盘控制电路键盘可实现对时间的校对,用两个按键来实现。
按时键来调节小时的时间,按分键来调节分针的时间。
其电路连接图如下:(3)显示电路LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。
.绘制原理图其计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。
基于Proteus的电子时钟设计与仿真
宁德师范学院毕业论文(设计) 专业电子信息工程技术指导教师X芳学生李骁学号2021054111题目基于Proteus的电子时钟设计与仿真2011年6月5日目录1 绪论11.1 背景11.2 研究目的与意义11.3 技术要求12 方案设计及单片机选型12.1 方案设计12.2 单片机选型23 硬件设计33.1 键盘电路33.2 七段码显示驱动33.3 蜂鸣器报警电路34 软件设计44.1 主程序局部的设计44.2 定时器中断设置44.3 闹钟功能函数54.4 计时功能函数64.5 键盘扫描功能函数75 基于Proteus的电子时钟仿真85.1 Proteus软件简介85.2 Proteus对电子时钟的仿真96 结论10参考文献:10基于Proteus的电子时钟设计与仿真摘要:对于电子时钟的功能和使用人们已经十分了解,然而却很少有人真正了解它的内部构造和工作原理。
本文以AT89C51为核心控制器,利用Proteus进展单片机系统的仿真,通过该软件设计出了一款由纯数字电路构成的电子时钟,并在计算机上进展仿真。
整个时钟的功能主要包括四个方面:时间显示、时间调整、时间校对和定时闹钟。
最后的仿真结果可应用于实际电路中,不仅降低了电子时钟的设计本钱,又缩短了设计周期,提高了工作效率。
关键词:单片机;定时器;闹钟;LED1绪论1.1 背景随着社会的开展和科技的进步,人们对时钟的要求也越来越高,传统的时钟已经不能满足人们的需求。
高精度、低功耗、小体积、多功能,成为了现代时钟开展的新趋势,它已不仅仅是用来显示时间的工具,更多时候还需要它实现其它的功能,从而促使现代时钟朝着数字化、多功能化的方向开展。
目前市面上也出现了各种各样的多功能电子时钟,如:数字闹钟、电子闹钟等等。
对于电子时钟的功能和使用人们已经十分了解,然而却很少有人真正了解它的内部构造和工作原理。
1.2 研究目的与意义为了更好地了解电子时钟的内部构造和工作原理,本文采用单片机作为电子时钟的核心控制器。
基于proteus的数字电子钟
基于proteus的数字电⼦钟零、设计要求1.时钟可以显⽰⼩时、分钟以及秒2.,四个按键可以实现时间的⼿动调节3.加⼊AT24C02,存储关机之前的时间,并且下次开机后可以通过某⼀按键将存储的时间读取出来⼀、硬件仿真⼆、程序设计⼆、程序部分1.IIC#include <I2C.h>/*开始信号*/void I2C_Star(){SDA = 1;SCL = 1;delay();SDA = 0;delay();SCL = 0;}/*停⽌信号*/void I2C_Stop(){SCL = 0;SDA = 0;delay();SCL = 1;delay();SDA = 1;delay();}/*写操作*/bit I2C_Write(uchar date){bit ack;//应答位uchar mask;for(mask=0x80;mask!=0;mask>>=1){if((date&mask)==0)SDA = 0;elseSDA = 1;delay();SCL = 1;//拉⾼让从机读信号delay();SCL = 0;//拉低准备写下⼀位}SDA = 1;//释放数据线,以检测从机应答delay();SCL = 1;ack = SDA;delay();SCL = 0;return (~ack);//返回1--应答返回0--⾮应答}/*读操作 + 应答*/uchar I2C_Read_Ack(){uchar date;//读到的⼀个字节uchar mask;SDA = 1;//确保数据线释放for(mask=0x80;mask!=0;mask>>=1){delay();SCL = 1;//拉⾼时钟线准备读date &= ~mask;delay();SCL = 0;}//读完给从机发送应答SDA = 0;delay();SCL = 1;//从机读⾛应答位delay();SCL = 0;return date;//返回读到的⼀字节}/*读操作 + ⾮应答*/uchar I2C_Read_NAck(){uchar date;//读到的⼀个字节uchar mask;SDA = 1;//确保数据线释放for(mask=0x80;mask!=0;mask>>=1) {delay();SCL = 1;//拉⾼时钟线准备读if(SDA==1)date |= mask;elsedate &= ~mask;delay();SCL = 0;}//读完给从机发送⾮应答SDA = 1;delay();SCL = 1;//从机读⾛⾮应答位delay();SCL = 0;return date;//返回读到的⼀字节}2. 按键#include "key.h"/*毫秒级延时*/void delay_ms(uint z){uint x,y;for(x=z;x>0;x--)for(y=125;y>0;y--);}/*按键扫描*/uint key_scan(){if(sec_up==0){delay_ms(10);while(!sec_up);return 1;}if(sec_down==0){delay_ms(10);while(!sec_down);return 2;}if(min_up==0){delay_ms(10);while(!min_up);return 3;}if(min_down==0){}if(read_e2==0){delay_ms(10);while(!read_e2);return 5;}return 0;}3.液晶显⽰#include "LCD1602.h"/*微秒级延时*/void delay_us(uint x){for(;x>0;x--)_nop_();}/*写命令*/void write_com(uchar com){P0 = com;rs = 0;lcd_en = 0;delay_us(100);lcd_en = 1;delay_us(100);lcd_en = 0;}/*写数据*/void write_date(uchar date){P0 = date;rs = 1;lcd_en = 0;delay_us(100);lcd_en = 1;delay_us(100);lcd_en = 0;}/*初始化*/void Init_lcd(){uchar i=0;rw = 0;//写⼊数据或指令write_com(0x38);//显⽰模式16X2delay_us(100);write_com(0x0c);//开显⽰,不显⽰光标 delay_us(100);write_com(0x06); //写⼊新数据光标右移 delay_us(100);write_com(0x01);//清屏delay_us(100);}/*显⽰位置设置*/void lcd_location(uchar location){write_com(0x80 | location);}4.主函数#include<reg52.h>#include "LCD1602.h"#include "key.h"#include "I2C.h"/**接⼝定义**/sbit START = P3^5;uchar sec,min,hour;uchar count = 0;uchar KeyCount = 0;/**数组定义**/uchar code lcd_date_1[]={" Design-By-WHH "};uchar code lcd_date_2[]={" 00:00:00 "};uchar display[6];uchar buf[3];//24C02缓存/**函数声明**/void display_lcd();void Display_Init();void Timer0_Config();void key_action();void E2PROM_Write(uchar *buf,uchar address,uchar len); void E2PROM_Read(uchar *buf,uchar address,uchar len); void Init_E2Data_Write();void Init_E2Data_Read();/*****//*主函数*/void main(){Timer0_Config();Init_lcd();Display_Init();while(1){if(START==0){if(!START){KeyCount++;switch(KeyCount%2){case 1:EA = 1;break;case 0:EA = 0;break;}}}key_action();display_lcd();}}/*掉电写数据包*/void Init_E2Data_Write(){buf[0] = hour;buf[1] = min;buf[2] = sec;}/*上电读数据包*/void Init_E2Data_Read(){hour = buf[0];min = buf[1];sec = buf[2];}/*显⽰函数*/void display_lcd(){display[0] = hour/10+0x30;display[1] = hour%10+0x30;display[2] = min/10+0x30;display[3] = min%10+0x30;display[4] = sec/10+0x30;display[5] = sec%10+0x30;lcd_location(0x44);//第⼆⾏第五个位置write_date(display[0]);write_date(display[1]);write_date(0x3a);//显⽰':'write_date(display[2]);write_date(display[3]);write_date(0x3a);//显⽰':'write_date(display[4]);write_date(display[5]);}/*显⽰初始化*/void Display_Init(){uchar i;lcd_location(0x00);for(i=0;i<16;i++){write_date(lcd_date_1[i]);}lcd_location(0x40);//第⼆⾏初始位置for(i=0;i<16;i++){write_date(lcd_date_2[i]);}}/*定时器配置*/void Timer0_Config(){TMOD &= 0xF0;TMOD |= 0x01;TH0 = 0x4c;//定时50msTL0 = 0X00;ET0 = 1;TR0 = 1;}/*按键动作操作*/void key_action(){uint key_value = 0;key_value = key_scan();if(key_value==1){min++;}if(key_value==2){min--;}if(key_value==3){sec++;}if(key_value==4){sec--;}if(key_value==5){Init_E2Data_Read();E2PROM_Read(buf,0x3a,sizeof(buf));}}/*E2PROM写多个字节*/void E2PROM_Write(uchar *buf,uchar address,uchar len) {while(len--){do{I2C_Star();if(I2C_Write(0xa0))break;//如果允许写⼊则退出检测循环I2C_Stop();}while(1);I2C_Write(address++);I2C_Write(*buf++);I2C_Stop();}}/*E2PROM读多个字节*/void E2PROM_Read(uchar *buf,uchar address,uchar len){do{I2C_Star();if(I2C_Write(0xa0))break;//如果允许写⼊则退出检测循环I2C_Stop();}while(1);I2C_Write(address);//写⼊要读取的地址I2C_Star();I2C_Write(0xa1);//选择读while(len>1)//读取字节数-1{*buf++ = I2C_Read_Ack();//给应答以继续读len--;}*buf = I2C_Read_NAck();//给⾮应答不继续读了I2C_Stop();}/*定时器0中断服务函数*/void Time0() interrupt 1{TH0 = 0x4c;//定时50msTL0 = 0X00;count++;if(count==20)//1s{Init_E2Data_Write();E2PROM_Write(buf,0x3a,sizeof(buf));//1s时间写⼀次数据到E2 count=0;sec++;}if(sec==60)//1min{sec = 0;min++;}if(min==60)//1h{min=0;hour++;}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程论文题目:基于Proteus的数字电子钟的设计与仿真课程名称:单片机系统设计与Proteus仿真学生姓名:马珂学生学号: 1305010323系别:电子工程学院专业:通信工程年级: 13级任课教师:徐锋电子工程学院2015年5月目录一、设计目的与要求 (3)二、设计内容与方案制定 (3)三、设计步骤 (3)1.硬件电路设计 (3)1.1.硬件电路组成框图 (3)1.2.各单元电路及工作原理 (4)1.3.绘制原理图 (5)1.4.元件清单列表 (6)2.程序设计 (6)2.1程序流程 (6)2.2汇编程序 (7)四、调试与仿真 (12)五、心得体会 (14)六、参考文献: (14)基于Proteus的数字电子钟的设计与仿真一、设计目的与要求设计目的:通过课程设计,培养学生运用已学知识解决实际问题的能力、查阅资料的能力、自学能力和独立分析问题、解决问题的能力和能通过独立思考。
设计要求:设计一个时、分可调的数字电子钟、开机显示“9-58-00”。
二、设计内容与方案制定具有校时功能,按键控制电路其中时键、分键两个键分别控制时、分时间的调整。
按分键分加1;按时键时加1。
以AT89C51单片机进行实现秒、分、时上的正常显示和进位,其中显示功能由单片机控制共阴极数码管来实现,数码管进行动态显示。
三、设计步骤1、硬件电路设计1.1.硬件电路组成框图1.2.各单元电路及工作原理(1)晶振电路单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。
本系统中AT89C51单片机采用内部时钟方式。
采用外接晶体和电容组成的并联谐振回路。
其电路图如下:(2)键盘控制电路键盘可实现对时间的校对,用两个按键来实现。
按时键来调节小时的时间,按分键来调节分针的时间。
其电路连接图如下:(3)显示电路?LED显示器是现在最常用的显示器之一发光二极管(LED)分段式显示器由7条线段围成8字型,每一段包含一个发光二极管。
外加正向电压时二极管导通,发出清晰的光。
只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。
显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,其硬件连接方式如下图所示。
1.3.绘制原理图其计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。
整个设计图由晶振电路、复位电路、AT89C51单片机、键盘控制电路组成。
显示电路将“时”、“分”、“秒”通过七段显示器显示出来,6个数码管的段选接到单片机的P0口,位选接到单片机的P2口。
数码管按照数码管动态显示的工作原理工作。
把定时器定时时间设为50ms,则计数溢出20次即得时钟计时最小单位秒,而20次计数可用软件方法实现,每累计60秒进1分,每累计60分钟,进1小时。
时采用24进制计时器,可实现对一天24小时的累计。
校时电路时用来对“时”、“分”显示数字进行校对调整,时分秒三个控制键分别接单片机的p3.1、p3.0进行控制。
按一下分键秒单元就加 1 ,按一下时键分就加1。
1.4.元件清单列表单片机AT89C51*1电解电容CAP-ELEC 10uF*12.程序设计2.1程序程序数字电子钟采用内部硬件定时器来进行定时,计时最小单位sec100为10ms。
若sec100每计满100次时,表示已经计时1s,则sec100清零且sec加1。
如果sec等于60,应将sec清零,同时min加1。
如果min等于60,应将min清零,同时hour加1。
如果hour大于23时,应将hour清零。
通过分析可知,程序中可分别由inc_sec()、inc_min()、inc_hour()这是三个函数负责秒、分、时的计时。
Sec100的计时由Timer0()中断函数来实现。
按钮K1(INT0)和K1(INT1)为调时、调分控制按键。
这两个按钮信号的输入采用外部中断方式来实现。
若产生外部中断时,通过调用inc_hour()或inc_min()函数来实现调时或调分操作。
编写显示函数display()时,应考虑小时数小于10时,应屏蔽时的十位数,使其不显示。
2.2汇编程序c语言编写的程序如下:#include<reg52.h>#define uchar unsigned char#define unit unsigned intsbit k1=P3^2;sbit k2=P3^3;uchar tab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xBF}; uchar dis_buff[8];uchar sec100,sec,min,hour;void delay(unit k){unit m,n;for(m=0;m<k;m++){for(n=0;n<120;n++);}}void display(void) {P2=0X80;P0=tab[dis_buff[0]]; delay(2);P2=0x40;P0=tab[dis_buff[1]]; delay(2);P2=0x20;P0=tab[dis_buff[2]]; delay(2);P2=0x10;P0=tab[dis_buff[3]]; delay(2);P2=0x08;P0=tab[dis_buff[4]]; delay(2);P2=0x04;P0=tab[dis_buff[5]]; delay(2);P2=0x02;P0=tab[dis_buff[6]]; delay(2);if(hour>9){P2=0x01;}else{P2=0X00;}P0=tab[dis_buff[7]]; delay(2);}void disp_data(void) {dis_buff[7]=hour/10; dis_buff[6]=hour%10; dis_buff[5]=16;dis_buff[4]=min/10; dis_buff[3]=min%10; dis_buff[2]=16;dis_buff[1]=sec/10; dis_buff[0]=sec%10; }void inc_hour(void){hour++;if(hour>23){hour=0;}}void inc_min(void) {min++;if(min>59){min=0;inc_hour();}}void inc_sec(void){sec++;if(sec>59){sec=0;inc_min();}}void int0()interrupt 0 {delay(100);if(INT0==0){inc_hour();}}void int1()interrupt 2 {delay(100);if(INT0==0){inc_min();}}void timer0()interrupt 1 {TH0=0xDC;TL0=0x00;sec100++;if(sec100>=100){sec100=0;inc_sec();}}void int_init(void) {TMOD=0x01;TH0=0xDC;TL0=0x00;TR0=1;ET0=1;EX0=1;IT0=0;EX1=1;IT1=0;EA=1;}void main(void) {int_init();P0=0xFF;P2=0x00;hour=9;min=58;sec=0;sec100=0;while(1){disp_data();display();}}四、调试与仿真打开keil程序,创建“数字电子钟”项目,输入c语言源程序,保存为“数字电子钟.c”。
在项目管理窗口中选中文件组,单击鼠标右键,在弹出的菜单中选择“Add File to Grou`Source Group1`”,添加源程序“数组电子钟.c”到项目组。
执行命令“Project”-”Build Target”,编译源程序,如果编译成功,则在输出窗口中显示没有错误,并创建了”数字电子钟.hex“文件。
在已绘制好原理图的Proteus ISIS中,双击单片机,在弹出的对话框选择“数字电子钟.hex”。
开始仿真,刚运行时1,数码管显示“9-80-00”,而后每隔1s进行累计显示,如图所示,每按一次K1时,小时数会加1,每按一次K2时,分钟数加1。
五、心得体会按分键对分进行调整,按一下加一分;按时键对时进行调整,按一下加一小时,从而达到快速设定时间的目的。
若满足以上要求则符合方案要求。
若按一下连续加若干位,则按键延时时间设置太短,可以通过增大延时时间进行改进。
通过本次仿真设计,基本掌握了简单的单片机应用设计,以及proteus仿真设计,数字电子钟设计比较简单,以后应多注意设计方面的问题并解决。
六、参考文献[1]陈中平、基于proteus的51系列单片机设计与仿真(第二版)、电子工业出版社.2012.[2]谭浩强、C程序设计(第四版)、清华大学出版社.2010.。