单片程设的计_多功能定时器.docVIP

  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文档。上传文档
查看更多
一: 在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用;能够对电子电路,在软件编程; 使学生增进对单片机的感性认识,加深对单片机理论方面的理解,如定时器/计数器I/O口; 使学生了解和掌握单片机应用系统的软硬件设计过程,为以后设计和实现单片机应用系统打下良好基础二数字钟是采用数字电路实现对时,分,秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能,本设计可实现如下功能:1?使用实时时钟芯片写入及读取时间 2?用LCD显示,可显示年3?选择蜂鸣器电路,实现两个闹钟设置和事件提示功能4?实现时钟校正功能,12小时/24小时切换功能5?显示当前时间为上午时间或下午时间 6?整点报时功能 按键功能如下:1?对显示时间的设置 按键0:进入设置模式,实现秒 S M ?时 H ?年 Y ?月 m ?日 D ?星期 W 设置的切换,并在LCD右下角显示所设置的项目,当各项目设置完毕后,再按下按键0则返回主界面正常显示时间;按键1:每按一次按键1,对所设置的时间加1,当设置的时间超过它的最大值时,该项自动为0,例如:当设置秒为59时,秒自动清零;按键2:每按一次按键:2,对所设置的时间减1,当设置的时间小于0时,该项自动为它的最大值;按键3:设置完成后的确认键并可按此键中途退出设置,时间按用户设置值正常计时;按键7:实现时钟校正功能,12小时/24小时切换功能2?对闹钟的设置 按键4:进入闹钟1的设置,并在LCD右上方显示“CLOCK1”并通过按键01?2设置用户所需闹钟时间,完成闹钟1的设置后,通过按键0进入闹钟2的设置,并在LCD右上方显示“CLOCK2”,若无需设置闹钟2,则通过按键3退出闹钟设置,返回主界面正常显示时间;按键5:设置闹钟是否开启,例如:当设置闹钟1为开启状态时,在LCD右上方显示“*CLOCK1”当闹钟,并在返回主界面后显示“C1”表示闹钟1开启;三这部分主要介绍工作安排和整体设计的思想: 四 五 见附图 六1?键盘程序 Keyprocess 键盘与848相连接,采用矩阵键盘的方式P2用于列扫描,P1用于行扫描,经过消抖及等待键释放的程序,将最终正确的结果置于getkey ;程序实现如下:#includeaduc848.h void KeyDelay unsigned int KeyJsTime ; //键盘扫描延时函数声明unsigned char GetKey ; //扫描后获取键值unsigned char GetKey static unsigned char KeyHaveFree 1; static unsigned int KeyJs 0; unsigned char temp,KeyTemp 0xff; P1 0xf0; P2 0xf0; // 将低四位置零做I/O口temp P10x0f; if KeyHaveFree if temp! 0x0f KeyDelay 1000 ; //延时消除抖动 if temp P10x0f //延时后确认是否有键按下,并获取具体键值 P2| 0x0e; switch P10x0f case 0x0e:KeyTemp 3;break; case 0x0d:KeyTemp 7;break; case 0x0b:KeyTemp 11;break; case 0x07:KeyTemp 15;break; case 0x0f:break; default:KeyTemp 0x80;break; P2 0xf0; P2| 0x0d; switch P10x0f case 0x0e:KeyTemp 2;break; case 0x0d:KeyTemp 6;break; case 0x0b:KeyTemp 10;break; case 0x07:KeyTemp 14;break; case 0x0f:break; default:KeyTemp 0x81;break; P2 0xf0; P2| 0x0b; switch P10x0f case 0x0e:KeyTemp 1;break; case 0x0d:KeyTemp 5;break; case 0x0b:KeyTemp 9;break; case 0x07:KeyTemp 13;break; case 0x0f:break; default:KeyTemp 0x82;break; P2 0xf0; P2| 0x07; switch P10x0f case 0x0e:KeyTemp 0;break;

文档评论(0)

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

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

1亿VIP精品文档

相关文档