1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
设计任务 设计一个定时闹钟 设计要求与实现思路 设计要求: 1) 能显示 时时—分分—秒秒。 2) 能够设定定时时间、修改定时时间。 3) 定时时间到能发出报警声或者启动继电器,从而控制电器的启停。 实现思路: 电子钟设计与制作既可以采用数字电路来实现,也可以采用单片机来完成。 方案一:采用数字电路来实现,所设计的电路相当复杂,大概需要十几片数字集成块,其功能主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。 方案二:采用单片机来实现,由于其功能的实现主要通过软件编程来完成,不仅降低了硬件电路的复杂性,而且成本也降低不少。 最终方案:采用单片机的方式来实现定时闹钟。 硬件系统设计 1) 元件的选择 a:单片机的选用 由于传统的8031单片机内部没有存储器,需要另扩展外部程序存储器,系统构成较为复杂. 在众多的51系列单片机中,要算 ATMEL 公司的8C51更实用, b:数码管的选用 为减少连接线路的复杂性,在此选用八位一体的共阴数码管,八位一体数码管在内部已将段码相连,位选线则相互独立,可以很方便地外接为动态显示电路。 LED数码管Proteus仿真图: 2) 硬件电路 定时闹钟以单片机80C51为核心来完成,使用12MHZ晶振与单片机80C51相连接,通过软件编程的方法实现了以24小时为一个周期同时显示小时、分钟和秒的要求,并在计时过程中具有报时功能,当时间到达整点进行蜂鸣报时。 在硬件电路中采用P0口作为6位LED数码管的驱动接口,这是由于P0口输出驱动电路工作处于开漏状态,它的驱动能力强,故只需外接上拉电阻便可以把LED数码管点亮。因为共阴的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该电路中的LED数码管采用共阴极的数码管。6位LED数码管的位选线分别由相应的P2. 0~P2. 5控制,相应的段选线由8位的I/O口控制,即P0口。 该电子钟设有四个按键: S1、 S2、S3和S4键(由上至下依次为S1、S2、S3、S4),他们分别与单片机的P1.1、P1.2、P1.3和P1.4口相连接。 S1、S2、S3和S4键Proteus仿真图如下: 硬件电路Proteus仿真图如下: 软件系统设计 考虑到实用性,在该电子钟的设计中修改定时或调整时间时采用了闪烁。在编程上,首先进行了初始化定义了程序的入口地址以及中断的入口地址,在主程序的开始定义了一个固定单元用来存储计数的秒、分、时。在显示程序段中主要进行了闪烁的处理,采用定时器中断置标志位,再与位选相互结合的方法来控制调时或定时中的闪烁。时、分、秒的显示则是用了软件译码(查表)的方式,再用了一段固定的程序段进行进制转化。初始化之后,用中断方式对其计数,计数的同时采用了定时器比较的方法,比较当前计数时间与定时时间是否相等,若相等则将闹铃标志位置数。为了避免响铃影响显示,采用了每显示几屏以后在显示程序中出现脉冲,驱动喇叭,不会影响显示。之后用查询方式对按键进行判断,若有键按下,则进行软件延时消抖,避免了抖动引起的干扰,执行相应的定时,选时或调时程序段。对当前时间或定时时间修改后又返回到最初的显示程序段,如此循环下去。 程序流程图如下: 程序实现如下: ORG 0000H LJMP MAIN ORG 000BH LJMP TIME *****MAINPROGRAM***** ORG 0100H MAIN:MOV SP,#50H MOV 20H,#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#01H MOV 24H,#01H MOV 25H,#00H MOV 30H,#00H MOV 31H,#00H ; MOV 32H,#00H MOV 33H,#00H ; MOV 34H,#00H MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV TMOD,#01H MOV TH0,#03CH MOV TL0,#0B0H MOV IE, SETBTR0 MOV R2,#14H MOV P2,#0FFH LOOP: LCALL TIMEPRO LCALL DISPLAY1 J

文档评论(0)

14576 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档