多功能定时装置资料.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文档。上传文档
查看更多
单片机课程设计 题目:多功能定时装置 日期: 2011 年 6 月 1 /26 一、 设计要求: 1)选择 LED或LCD显示,可显示年、月、日、时、分、秒、星期、农历日期、节日、节气等 (根据实际情况,选择部分或全部功能实现) 2)会使用实时钟芯片 3)选择蜂鸣器电路,实现闹钟设置和报警功能 4)选择按键功能,设计实现时钟校正功能 5)整点报时功能 6)上电或 RESET后能自动显示当前时间(时:分:秒):首次上电复位显示 0时 0分 0秒,以后每 次RESET均显示正确的当前时间 附加实现功能: 1)可以显示 0.1 — 100s的秒表,最小单位为 0.1 秒 2)通过按键控制秒表清零、暂停、继续、退出等功能 3)秒表可以分组存储(最多 10组),批量显示 4)具有倒计时功能 二、 所使用的硬件 1. ADUC848管脚图 ADUC848 管脚图如图 1 所示。 2 /26 图1 ADUC848 管脚 2. 电源模块 电源模块原理图如图 2 所示。 图2 电源模块 3 /26 数码管 该模块原理如图 3 所示。 图3 数码管驱动电路 4. RS232 串口 串口连接原理图如图 4 所示。 图4 RS232串口模块 4 /26 蜂鸣器 该模块原理图如图 5 所示。 图5 蜂鸣器 按键输入 该模块原理如图 6 所示。 图6 按键模块 三、 程序流程图 1)主流程图如图 8 所示: 5 /26 开始 读取当前时间 当前时间是否等于 闹钟设置时间 N 读取键值,键值为 en en=0x55?(无键 )或 en=0x80? (无效键 ) N en=1? N en=2? N en=3? N en=4? N en=8? N en=9? N en=13? N en=14? N en=13? N en=0? N  Y 开启闹钟 Y 继续当前显示 Y 显示年月日星期 Y 显示时分秒 Y 秒表正计时子程序 Y 秒表倒计时子程序 Y 显示正计时的记录值 Y 设置北京时间 Y Y 关闹钟1 闹钟1开? 开闹钟 1 Y 设置闹钟 1 Y 关闹钟 2 闹钟 2开? 开闹钟 2 Y 设置闹钟 2 图 8 主程序流程图 6 /26 2)秒表正计时子程序流程图如图 9 所示: 正计时子程序 扫描键值,键值 等于 5?  N Y 启动定时器 显示当前时间 扫描键值,键值 YY 记录当前时间 等于 6? N N 扫描键值,键值 是否记录了十组 N 等于 7? 值? Y Y 返回 图9 秒表正计时流程图 3)秒表倒计时子程序流程图如图 10 所示 秒表倒计时子程序 输入时间初值 扫描键值,键值 等于 5? Y 启动定时器 显示当前时间  N 当前时间等于 N 0? Y 蜂鸣报警,关定时器 返回 图10 秒表倒计时流程图 7 /26 四、 程序 1. 主程序( miao_biao.c)如下: #includeaduc848.h #includekeypp.h #includeiic.h #define uchar unsigned char #define uint unsigned int unsigned char b[7]={45,59,11,2,7,6,11},clock1[2]={12,0},clock2[2]={12,1}; code unsigned char tab[]= {0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x19,0x00}; //共阴数码管 0-9 显示 code unsignedchar tab2[]={0x39,0xff}; //、全灭 void delay(unsigned int cnt); //延时子程序 unsigned char getkey1(); unsigned char getkey2(); //读键盘 void tim(void); //中断 void KeyDelay(unsigned int KeyJsTime); //键盘扫描延时 void display(uchar bit7,uchar bit6,uchar bit5,uchar bit4, uchar bit3,uchar bit2,uchar bit1,uchar bit0); //显示子程序 void ReadTime(unsigned char TIME[7]); //DS1307 读时间 void SetTime(unsigned char TIME[7]); //设置时间初值 void SwitchRTC(unsigned char SWITCH); void iicdelay(unsigned int times); void iicstart(void); void

文档评论(0)

135****8847 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档