基于protues的电子钟设计论文.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于protues的电子钟设计论文

第一章 AT89C51简介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单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案主要特性:·与MCS-51 兼容·4K字节可编程FLASH存储器·寿命:1000写/擦循环·数据保留时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路特性概述:AT89C51 提供以下标准功能:4k?字节Flash?闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。第二章电子钟仿真运行电路图第三章源代码RSTBIT P2.0;定义端口SCLK BIT P2.1IOBIT P2.2RS BIT P3.5;LCD RS=P3.5RW BIT P3.6;R/W=P3.6E BIT P3.7;E=P3.7yearEQU 30HweekEQU 31HmonthEQU 32HdayEQU 33HhourEQU 34HmintueEQU 35HsecondEQU 36HDS1302_ADDR EQU 70HDS1302_DATA EQU 71HORG 0000HLJMPMAINORG0030HMAIN:MOV P1,#01H;清除屏幕CALL ENABLE;写到指定寄存器MOV P1,#38H;功能设定(8位,2行,5*7点矩阵)CALL ENABLE MOV P1,#0CH;显示器ON,光标OFF,闪烁OFFCALL ENABLEMOV P1,#06H;加1CALL ENABLE MOV DS1302_ADDR,#8EHMOV DS1302_DATA,#00H;允许写1302LCALL WRITEMOV DS1302_ADDR,#90HMOV DS1302_DATA,#0A6H ;1302充电LCALLWRITEMOV 40H,#2;显示缓存区,显冒号,及分号MOV 41H,#0MOV 44H,#12MOV 47H,#12MOV 4AH,#11MOV 4BH,#11MOV 4CH,#11MOV 52H,#10MOV 55H,#10LOOP: MOVR7,#7MOVR0,#yearMOV DS1302_ADDR,#8DH;读出寄存器LOOP1:CALLREADMOV@R0,DS1302_DATA;读出数据INCR0MOVA,DS1302_ADDRCLR CSUBBA,#2MOVDS1302_ADDR,ADJNZR7,LOOP1MOV R6,year;对年数值进行处理LCALL DIVIDE;年分离,送显示缓存MOV 42H,R3MOV 43H,R2MOV 4DH,week;对周数据进行处理DEC 4DHMOV R6,month;对月数据进行处理LCALL DIVIDE;月分离,送显示缓存MOV 45H,R3MOV 46H,R2MOV R6,day;对日数据进行处理LCALL DIVIDE;日分离,送显示缓存MOV 48H,R3MOV 49H,R2MOV R6,hour;对小时数据进行处理LCALL DIVIDE;小时分离,送显示缓存MOV 50H,R3MOV 51H,R2MOV R6,mintue;对分钟数据进行处理LCALL DIVIDE;分钟分离,送显示缓存MOV 53H,R3MOV 54H,R2MOV R6,second;对秒数据进行处理LCA

您可能关注的文档

文档评论(0)

feixiang2017 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档