单片机课程设计电子时钟设计.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  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文档。上传文档
查看更多
单片机课程设计电子时钟设计

单片机课程设计 电子时钟 姓 名 专业班级 学 号 指导教师 付文秀 单片机课程设计——电子时钟 一、 实验目的 1.掌握单片机的应用并熟悉单片机系统的开发、研制过程。 2.学习单片机定时器时间计时处理、按键扫描及LED 数码管显示的设计方法。 3.通过自行设计一个电子时钟,掌握51 单片机基本功能并学会使用。 4.可以比较灵活的掌握单片机仿真软件Keil 的使用和Proteus 的使用。 二、功能实现 1.时间显示功能 由八个数码管显示时间,以24小时进制,显示格式为00-00-00。以开关A、 B 键分别调整小时和分钟。 2.闹钟设定功能 可设定任意闹钟并显示闹铃时间。当设置时间到时蜂鸣器播放《生日快乐》的音乐,且数码管上显示闹铃时间。按停止键G 使闹铃声停止。 3. 秒表计时功能 开关D 控制秒表的开始、结束和清零。按键开始计时,再按一次停止计时,再按一次复位。 4.音乐播放功能。H 键实现音乐(《生日快乐》歌)的单独播放。G键禁止音乐的播放。 三、工作原理及设计思路 1.系统整体设计框图 图1 电路模块框图 2.主控电路选用STC89C54 型号单片机。 它是兼容8051内核的、高速/低功耗的新一代8051单片机,可反复设置12 时钟/机器周期,工作频率为0~40MHZ,相当于普通8051的0~80MHZ。内部带有16K 的程序存储空间和1280字节的ROM。由于其内部带有16K 的EEPROM,具有看门狗的功能,所以系统无需在外部增加存储字模数据的存储芯片和专用看门狗芯片,极大地简化了电路的设计,降低了系统的成本。单片机具有ISP功能,不需要专用的编程器编程。单片机的最小系统构成所需要的部分有晶振和两个电容构成震荡电路;一个电容和一个电阻构成复位电路;单片机的31 管脚接高电平,使得单片机可以访问内部的存储器,上电即可工作。 图2 MCS-51单片机管脚图 3.实验中使用交流蜂鸣器,根据I/O 端口输出的方波不同,蜂鸣器就发出不同的声音。使用51 单片机产生电子音乐时,要对声音的特性有所了解。本次实验中在只考虑声音的高低音变化。我们要产生不同频率的声音时,可以让51单片机产生不同频率的方波。在程序中,我们使用一个字节来表示每个音符,其中高四位代表音乐的高低,低四位代表音符的节拍。然后根据乐谱就可以生成十六进制代码。 闹铃声由交流蜂鸣器产生,电路如图2,当P1.7输出不同频率的方波,.蜂鸣器便会发出不同的声音。 图3 闹铃电路设计 4.动态显示法 在数码管显示上,采用动态显示。设计的电路使单片机的P0连接到8 个七段数码管显示器。这8个共阳七段显示器的a、b、c、d、e、f和g全部连接在一起,因此P0 输出的数据应该会在8个数码管上都显示出来,并且显示的数字是一样的。但是我们利用P2 的端口来控制这8 位共阳数码管,让他们使用扫描的方式分别显示数字,这样使得P0 输出的数据恰好只会在其中一个数码管上面显示出来。当程序执行的速度很快的时候,由于视觉暂留的关系,我们就会看到8 位数码管上面显示出不同的数字了。 利用单片机定时器完成计时功能,定时器0计时中断程序每隔5ms中断一次并当作一个计数,每中断一次计数加1,当计数200次时,则表示1s到了,秒变量加1,同理再判断是否1min钟到了,再判断是否1h到了。 具体的电路如下图: 图4 显示部分电路 四、软件设计 图5 主程序流程图 软件程序编程如下: #include REGX52.H #define TIMER0_COUNT 0xEC78 /*10000h-(12,000,000/(12*200)) */ #define TIMES 25 unsigned char nn; unsigned char Tab[ ]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //0~~~~9 unsigned char int_time,int_time2,int_time3 ; //中断次数计数变量 unsigned char msecond; //毫秒计数变量 unsigned char second,second2; //秒计数变量 unsigned char minute; //分钟计数变量 unsigned char hour; //小时计数变量 unsigned char naozhonghour; //闹钟小时计数变量 unsigned char naozhongminute; //闹钟分钟计数变量 unsigned char naozhongsecond; //闹钟秒钟计数变量 unsigned cha

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档