- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机原理课程报告电子闹钟
单片机原理课程报告
电子闹钟
姓名:
学号:
专业:
学院:
指导老师:
目录
一 系统功能介绍 2
二 系统框图及流程 3
设计原理 3
主流程图 3
闹钟时间的判别流程图 4
时间和闹钟的设置流程图 4
三 原理硬件及接线图 6
元器件的选择: 6
接线图: 6
四 实验调试结果说明 7
五 总结 8
六 部分代码: 8
一 系统功能介绍
1,数字钟通过数字电路实现时、分、秒。
2,由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过开关可以进行校时、定时等功能。
3,输出设备显示器可以用数码管来显示。
4,利用独立按键通过单片机控制数码管进行闹钟的时分设置。通也是通过按键进行关闭操作。
5,当当前时间与设定的闹钟时间一致时闹钟响起,同时伴随四个流水灯的循环显示作为闹钟的一种警示。
6,时间上的设置都是采用独立按键单个的循环设置。
二 系统框图及流程
设计原理
系统原理图
主流程图
闹钟时间的判别流程图
主要是通过设定时间与实时时间对逐位对比确定是否进行闹铃。工作流程图如下图:
时间和闹钟的设置流程图
通过独立按键的选择进行时间或者是闹钟的相应的时,分的循环加的设置。
图 时间/闹钟设置流程图
三 原理硬件及接线图
元器件的选择:
1,AT89C52 是最理想的电子时钟开发芯片
2,独立式按键。
3,用数码管作为显示器。
4,软件的方法来计时。
5,蜂鸣器作为闹钟工作。
6,LED灯。
接线图:
系统单片机:
独立按键:
数码管:
LED灯:
四 实验调试结果说明
基本上实现了课程设计要求实现的功能。硬件部分设置了的四个按键key-top,key-left,key-down,key-right。当按键key-top 第一次按下时,停止计时进入时间设置,当按键key-left,进行时间的小时的设置采用循环设置法。当按下键key-down时,进入的分设置,也是循环设置,当再次按key-top时,时间进行正常的在数码管显示。按key-right按下时,进入闹钟的时分设置,当按key-left 时进入闹钟的小时设置。当按下键key-down时,进入闹钟的分中设置,设置好后再按下key-right键,则进入正常的时间显示。当当前时间显示与自己所设置的闹钟时间一致时,蜂鸣器便会响起伴随右四个led灯的循环闪烁。。设置的时间为10秒钟。当自己想提前关闭闹钟时,可以按下key-right键,以此便停止闹钟再次进入闹钟设置,时间正常走动。此次按键的运用还和led灯相联系。每按一个键时都会有一个对应led灯闪烁。
五 总结
通过不断地调试与修改,功能上基本达标:时钟的显示,调时功能、校时功能、闹铃功能、闹钟设功能。。
虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,比如写一个程序看其功能很少认为编写程序简单,但到编程的时候才发现一些细微的知识或低级错误经常犯做不到最后常常失败,所以有些东西只有学精弄懂并且要细心才行,只学习理论有些东西是很难理解的,更谈不上掌握。
在以后的学习中,要理论联系实际,注重与同学间的交流与合作,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的练习的过程中才能提高,我想这就是我在这次课程设计中的最大收获。
六 部分代码:
#includereg51.h
#includeabsacc.h
#includeintrins.h
#define uchar unsigned char
//*********************************************
//MON51必须用到的
//*********************************************
uchar TIME_SELECT = 0;
uchar ALARM_SELECT = 0;
uchar TIMEDIS_FLAG = 1;
uchar ALARMDIS_FLAG = 0;
uchar FLAG = 0;
uchar MS_10 = 0;
uchar HOUR = 12;
uchar MIN = 0;
uchar SEC = 58;
/*闹铃*/
uchar ALARMHOUR = 12;
uchar ALARMMIN = 1;
uchar BEEPRING_FLAG = 1;
sbit DIG_DATA = P0^2; // 74HC595的数据输入引脚
sbit DIG_SHCP = P0^4; // 74HC595的移位脉冲引脚
sbit DIG_STCP = P2^3;
文档评论(0)