可调时时钟单片机系统设计.docVIP

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

可调时时钟单片机系统设计 [摘要] 要求走时准确,显示直观,并能够进行时、分的设置。当需要重置时间时按下重置键,此时可通过加、减按键调整分,重置键再次按下则可调整时,第三次按下重置键时钟从新设置的时间开始计数。 [关键词] 时钟 单片机 近年来随着计算机技术在社会领域的渗透和大规模集成电路的发展,单片机的应用正不断走向深入。单片机具有体积小、功能强、应用面广能优点,目前正以前所未有的速度取代传统电子线路构成的经典系统。现在,单片机的应用领域以十分广泛。智能仪表、家用电器、工业控制、计算机网络和通信和医疗设备等无处不见单片机的影子。数字钟作为最常见的电子产品,应用也最为广泛。 系统功能 电子钟是一种利用数字电路实现时、分、秒的计时装置。要求走时准确,显示直观,并能够进行时、分的设置。当需要重置时间时按下重置键,此时可通过加、减按键调整分,重置键再次按下则可调整时,第三次按下重置键时钟从新设置的时间开始计数。 系统设计 硬件设计 所需设备:装有Keil uVision2和Medwin的计算机一台,亚龙YL-236型单片机控制功能实训考核装置一台。 本程序用到得实验模块为:MCU22电源模块、MCU21单片机主机模块、MCU17单片机显示模块、MCU15单片机指令模块。 电源模块:提供±5V、±12V和24V电源 主机模块:主机采用AT89C51芯片,该芯片提供四个8位通用的并行I/O口(P0~P3),四个口均为准双向口,均可通过程序定义为输入或输出口 显示模块:8位数码管采用共阳极方式,并将数据口共用,分别采用CS1、CS2进行段选和位选。 指令模块:提供SP2键盘接口,8只独立按键 总体接线: 软件设计 本系统软件设计主要分为主程序、显示子程序、独立按键子程序、中断子程序。通过主程序对各子程序的调用实现时钟的功能。 主程序:初始化I/O口,开50HZ定时中断,进行数码管显示和按键扫描,判断按键功能并进行相应处理。如果设置键按下,时钟停止,加、减按键可对时钟进行分调整,再次按下设置键,则可进行时调整,第三次按下重置键时钟从新设置时间开始计时。 主程序代码: #define SET P1_0 #define ADD P1_1 #define SUB P1_2 #define CS1 P2_6 #define CS2 P2_7 #define DATA P0 //定义各端口 unsigned int key2=25; //设置按键标识,有设置键按下,25表示无按键信号 unsigned int WORK; //定义工作方式,WORK=0为计时、WORK=1为调整分、 //WORK=2为调整时 unsigned char min,hour; //定义分钟和小时 void main() { TMOD=1; //设置定时器工作方式 EA=1; ET0=1; //开定时中断 TH0=0XB0; TL0=0X00; //设置定时时间 TR0=1; //开启定时器 while(1) { if(key2!=25) //若无按键值则返回25,不进行处理 { if(key2==1) //若按下设置键,则进行工作方式选择 { WORK++; if(WORK==3) { WORK=0; } } else if(key2==2) //若按下加,则时间加1 { if(WORK==1) //若为分调整,则分钟加1 { min++; if(min==60) //若到60,则分归零 { min=0; } } else if(WORK==2) //若为时调整,则小时加1 { hour++; if(hour==24) //若到24,则小时归零 { hour=0; } } key2=25; } else if(key2==3) //若按下减,则时间减1 { if(WORK==1) //若为分调整,则分钟减1 { min--; if(min==255) //若到0,则分置59 { min=59; } } else if(WORK==2) //若为时调整,则小时加1

文档评论(0)

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

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

1亿VIP精品文档

相关文档