基于proteus的数字电子钟的仿真设计
基于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的数字电子钟的设计与仿真

基于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 的多功能数字电子钟的设计自动化专业综合设计报告设计题目:基于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软件的单片机数字时钟系统设计与仿真

目录一、设计正文 (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.前言数字电子钟是一个用数字电路实现的时,分,秒计时的装置,与机械式时钟相比具有更高的准确性。
本次的数字电子钟的设计原理就是一种典型的数字电路,其中还包括了一些组合逻辑电路和时序电路。
本次的数字电子钟的设计主要目的是为了让我们更好的掌握数字电子钟的原理,从而掌握逻辑电路的一些典型运用,学会自己制作电子钟。
通过对数字电子钟得设计进一步的了解各种中小规模集成电路的作用和实用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
成绩课程论文题目:基于Proteus的数字电子钟的设计与仿真课程名称:单片机系统设计与Proteus仿真学生姓名:马珂学生学号: ********** 系别:电子工程学院专业:通信工程年级: 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 *1瓷片电容CAP 22pF *2电阻RES *10晶振CRYSTAL 11.0592MHz *1数码管7SEG-MPX8-CA-BLUE *1三极管NPN *8按钮BUTTON *3上位排阻RESPACK-8 *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;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;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.。