欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机时钟闹钟课程设计.docx

    • 资源ID:3979977       资源大小:1.15MB        全文页数:31页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机时钟闹钟课程设计.docx

    1、单片机时钟闹钟课程设计单片机课程设计说明书单片机时钟设计学生姓名:刘芳学号: 1105044105 学 院: 计算机与控制工程学院 专 业: 电气工程及其自动化 指导教师: 余红英 2014年 6 月中北大学 课程设计任务书 13/14 学年第 二 学期学 院:计算机与控制工程学院专 业:电气工程及其自动化学 生 姓 名:刘芳学 号:1105044105课程设计题目:单片机时钟起 迄 日 期:6月2日 6月13日课程设计地点:电气工程系综合实验室指 导 教 师:余红英负责人:刘天野 下达任务书日期: 2014年 6月2日课 程 设 计 任 务 书1设计目的:本设计包括确定控制任务、系统总体方案

    2、设计、硬件系统设计、软件程序的设计等,以便使学生掌握有关单片机控制的设计思想和设计方法。为学生今后从事单片机控制系统开发工作打下基础。学习proteus仿真软件实现电路的仿真。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等): 本课程设计的基本要求是使学生全面掌握单片机控制系统设计的基本理论,熟悉掌握单片机的编程方法,用89C52系列单片机及六位数码管显示时、分、秒,以24小时计时方式运行,能整点提醒(短蜂鸣,次数代表整点时间),使用按键开关可以实现时分调整、秒表/时钟功能转换、省电(关闭显示)、定时设定提醒(蜂鸣器)等功能。3设计工作任务及工作量的要求包括课程设计计算说明书(论文

    3、)、图纸、实物样品等:1根据题目要求的指标,通过查阅有关资料,确定系统设计方案,并设计其硬件电路图。2画出电路原理图,分析主要模块的功能及他们之间的数据传输和控制关系。3. 用Proteus软件绘制硬件电路图并仿真。4. 软件设计包括流程图、用汇编语言或C语言对软件进行编译,并能通过调试。 课 程 设 计 任 务 书4主要参考文献:1.孙涵芳.MCS-51/96系列 单片机原理及应用(修订版).北京航空航天大学出版社.1994 2.李朝青.单片机原理及接口技术(第3版).北京航空航天大学出版社.20055设计成果形式及要求:1. 硬件电路图2. 软件流程图和程序清单3. 编写课程设计报告。6工

    4、作计划及进度:2014 6月2日 6月5日 查找资料,确定方案6月 6日 6月 8 日 设计硬件电路,绘制电路原理图6月 9 日 6月11日 软件设计,并调试通过6月12日6月13日 编写课程设计报告,答辩或成绩考核负责人审查意见: 签字: 年 月 日1 引言本设计是定时闹钟的设计,由单片机AT89C52芯片和LED数码管为核心,辅以必要的电路,构成的一个单片机电子定时闹钟。设计中采用单片机利用AT89C52,它是低功耗、高性能的CMOS型8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。另外, AT89C52单片机结合七段显示器设计的简易定时闹铃时钟,可以设置现

    5、在的时间及显示闹铃设置时间,若时间到则发出一阵声响,进步可以扩充控制电器的启停。设计内容包括了秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分的设计。课设准备中我们根据具体的要求,查找资料,然后按要求根据已学过的时钟程序编写定时闹钟的程序,依据程序利用proteus软件进行了仿真试验,对出现的问题进行分析和反复修改源程序,最终得到正确并符合要求的结果。设计完成的定时闹钟达到课程设计的要求,在到达定时的时间便立即发出蜂鸣声音,持续一定时间。显示采用的六位数码管电路,显示实际时间和闹钟设置。1.1设计目的本设计包括确定控制任务、系统总体方案设计、硬件系统设计、软件程序的设计等

    6、,以便使学生掌握有关单片机控制的设计思想和设计方法。为学生今后从事单片机控制系统开发工作打下基础。学习proteus仿真软件实现电路的仿真。1.2设计内容和要求本课程设计要求学生掌握单片机控制系统设计的基本理论,掌握单片机的编程方法,用89C52系列单片机及六位数码管显示时、分、秒,以24小时计时方式运行,能整点提醒(短蜂鸣,次数代表整点时间),使用按键开关可以实现时分调整、秒表/时钟功能转换、省电(关闭显示)、定时设定提醒(蜂鸣器)等功能。2 系统总体方案及硬件设计2.1总体设计单片机时钟应包括秒信号发生器、时间显示电路、按键电路、供电电源以及闹铃指示电路等几部分。电子时钟的系统框图如2-1

    7、所示:图2-1 电子时钟的系统框图2.2硬件材料硬件材料如表2-1所示:表2-1 硬件材料2.3系统时钟电路设计对于时间要求不是很高的系统,只要按图进行设计就能使系统可靠起振并稳定运行。但由于原理图中的C2、C3电容起着系统时钟频率微调和稳定的作用,因此,在本闹钟系统的实际应用中一定要注意正确选择参数(3010PF),并保证对称性(尽可能匹配),选用正牌厂家生产的瓷片或云母电容,如果可能的话,温度系数要尽可能低。实验表明,这2个电容元件对闹钟的走时误差有较大关系。 图2-2 系统时钟电路2.4系统复位电路的设计智能系统一般应有手动或上电复位电路。复位电路的实现通常有两种方式:)RC复位电路;)

    8、专用监控电路。前者实现简单,成本低,但复位可靠性相对较低;后者成本较高,但复位可靠性高,尤其是高可靠重复复位。对于复位要求高、并对电源电压进行监视的场合,大多采用这种方式。本次课程设计采用了上电按钮电平复位电路。 图2-3 系统复位电路2.5闹钟指示电路设计闹铃指示可以有声或光两种形式。本系统采用声音指示。关键元件是蜂鸣器。蜂鸣器有无源和有源两种,前者需要输入声音频率信号才能正常发声,后者则只需外加适当直流电源电压即可,元件内部已封装了音频振荡电路,在得电状态下即起振发声。市场上的有源蜂鸣器分为3、5、6等系列,以适应不同的应用需要。闹钟电路是用比较器来比较计时系统和定时系统的输出状态,如果计

    9、时系统和定时系统的输出状态相同,则发出一个脉冲信号,再和一个高频信号混合,送到放大电路驱动扬声器发声,从而实现定时闹响的功能。其电路设计参见系统原理图。 图2-4 闹钟指示电路2.6电子闹钟的显示电路设计本次课程设计采用了6位数码管显示电路。在6位LED显示时,为了简化电路,降低成本,采用动态显示的方式,6个LED显示器共用一个8位的I/O,6位LED数码管的位选线分别由相应的P2.0P2.5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口。译码显示电路将“时”、“分”、“秒”计数器的输出状态菁七段显示译码器译码,通过6位LED七段显示器显示出来。到达定时电路时根据计时系

    10、统的输出状态产生一脉冲信号,然后去触发一音频发生器实现闹铃。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整的。图2-5 数码管显示电路2.7按键电路 图2-6 按键电路表2-2 按键功能表S2打开/关闭闹钟S3闹钟时间/实时切换S4秒表/实时切换S6打开/关闭节能S7时加1/秒表开始暂停S8时减1/秒表复位S9分加1S10分减13软件设计3.1 主程序流程图程序通过入口使系统初始化,再由数码管显示更新,形成时钟显示。如图3-1所示。 图3-1 主程序流程图3.2数码管显示更新流程图在实时模式下,数码管显示实时;在秒表模式下,数码管显示秒表时间;在闹钟设定模式下,数码管显示闹钟设定。

    11、模式可由按键选择。如图3-2所示。 图3-2 数码管显示更新流程图3.3 外部中断1服务函数流程图CPU响应外部中断1后,启动现场保护。通过按键选择不同模式。按键5可使节能模式打开、关闭;按键6可进行秒表、实时切换;按键7可进行闹钟、实时切换;按键8可使闹钟模式打开、关闭。如图3-3所示。图3-3 外部中断1服务函数流程图3.4外部中断0服务函数流程图CPU响应外部中断0,现场保护启动。在定时模式下,按键1用于时加1,按键2用于时减1,按键3用于分加1,按键4用于分减1;在秒表模式下,按键1用于秒表开始、暂停功能的实现,按键2用于秒表复位;在闹钟设定模式下,按键1用于时加1,按键2用于时减1,

    12、按键3用于分加1,按键4用于分减1。如图3-4所示。图3-4 外部中断0服务函数流程图3.5定时器溢出流程图秒每次自加1,到60分加1;分到60,时加1;时到24,清零重新开始。如图3-5所示。 图3-5 定时器溢出流程图4 Proteus软件仿真本次课程设计所采用的程序调试软件为keil uvision4集成调试软件,所采用的仿真软件为proteuspro 7.8SP2软件。本次试验的效果图如下所示:图4-1 实验效果图5设计过程中遇到的问题及解决方法在设计的过程中遇到问题是不可避免的,我遇到了很多问题,如下所示;1.做实物时无法驱动数码管显示,后来了解到可以加锁存器,如74LS253,74

    13、LS573等等,还可以加三极管用来加大电流。当然如果换成液晶显示屏的话就不需要考虑驱动不了的问题了。2.烧程序时没发烧进去,需要改变最高和最低波特率,才能按照步骤把程序烧进去。3.仿真时没问题的电路,在做好实物时发现无法运行。原因可能是程序出现问题,或者在连实物时线路连接错误等等都有可能。这是很难的一部分,需要查找出原因。在做实物的过程中我进行的很多检查,有很多连接错误,最终又重新焊接的。6 课程设计体会本次课程设计我们做了单片机时钟,能整点提醒(短蜂鸣,次数代表整点时间),使用按键开关可以实现时分调整、秒表/时钟功能转换、省电(关闭显示)、定时设定提醒(蜂鸣器)等功能。 这次课程设计让我受益

    14、匪浅,无论从知识上还是其他的各个方面。上课的时候的学习从来没有见过真正的单片机,只是从理论的角度去理解枯燥乏味。但在实习中见过甚至使用了单片机及其系统,能够理论联系实际的学习,开阔了眼界,提高了单片机知识的理解和水平。在这次课程设计中又让我体会到了合作与团结的力量。团结就是力量,无论在现在的学习中还是在以后的工作中,团结都是至关重要的,有了团结会有更多的理念、更多的思维、更多的情感。此外,使我对这们功课有了更深刻的认识和了解。首先对于硬件电路的工作原理有了进一步系统的学习,同样就有了进一步的认识,使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来

    15、,才能提高自己的实际动手能力和独立思考的能力。课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。小组人员的配合相处,以及自身的动脑和努力,都是以后工作中需要的。参考文献1 孙涵芳.MCS-51/96系列 单片机原理及应用(修订版).北京航空航天大学出版社.1994 2 李朝青.单片机原理及接口技术(第3版).北京航空航天大学出版社.2005附1:源程序代码MAIN/*Description :数字钟主程序,首先初始化变量、I/O口、外设, 然后单片机进入无条件循环,若中断触发,则进行实时处理。*/ Start/*包含头文件*/#incl

    16、ude #include #include #include #include /*主程序入口参数:无;返回值:无*/void main(void) Timer_Init( ); /定时器初始化 Keyboard_Init( ); /按键初始化 Display_Init( ); /数码管显示初始化 EN_Bell = 1; /关闭蜂鸣器 while(1) /无条件循环 Display_Updata( ); /数码管显示更新 DELAY/*Description :数字钟简单延时函数*/ Start/*包含头文件*/#include #include #include #include #inc

    17、lude /*大致延时2uS*/void DelayUs(unsigned char t) while(-t);/*大致延时1mS*/void DelayMs(unsigned char t) while(t-) DelayUs(245); DelayUs(245); KEYBOARD/*Description :数字钟按键处理函数 */ Start/*包含头文件*/#include #include #include #include #include /*按键初始化程序入口参数:无;返回值:无*/void Keyboard_Init(void) EA = 1; IE0 = 0; /外部中断

    18、0清零 IT0 = 1; /下降沿触发 EX0 = 1; /外部中断0允许IE1 = 0; /外部中断1清零 IT1 = 1; /下降沿触发 EX1 = 1; /外部中断1允许void Open_Stopwatch(void) /秒表开始或暂停工作 ET1 = ET1; /开定时器1中断TR1 = TR1; /允许定时器1工作 TF1 = 0; /定时器1溢出标志清零void Res_Stopwatch(void) /秒表复位 ET1 = 0; /关定时器1中断 TR1 = 0; /禁止定时器1工作 TF1 = 0; /定时器1溢出标志清零 s_1 = 0; m_1 = 0; h_1 = 0;

    19、 /*外部中断0中断服务程序*/void Int_0(void) interrupt 0 DelayMs(15); /延时去抖 if(EN_Play = 0x00) /实时 switch(P1&0xf0) case 0xe0:if(h 0) h-; break; /时减1 case 0xb0:if(m 0) m-; break; /分减1 default: ; break; if(EN_Play = 0x01) /秒表 switch(P1&0xf0) case 0xe0:Open_Stopwatch( ); break; /秒表开始或暂停工作 case 0xd0:Res_Stopwatch(

    20、); break; /秒表复位 default: ; break; if(EN_Play = 0x02) /闹钟设定 switch(P1&0xf0) case 0xe0:if(h_2 0) h_2-; break; /时减1 case 0xb0:if(m_2 0) m_2-; break; /分减1 default: ; break; IE0 = 0; /中断清零void EN_Stopwatch(void) /秒表/实时切换 if(EN_Play = 0x01) EN_Play = 0x00; else EN_Play = 0x01;void EN_Alarm(void) /闹钟/实时切换

    21、if(EN_Play = 0x02) EN_Play = 0x00; else EN_Play = 0x02;void Sel_Alarm(void) /闹钟/实时切换 Open_Alarm = Open_Alarm; if(Open_Alarm) s_2 = 0x01; else s_2 = 0x00; EN_Bell = 1; /关闭蜂鸣器 void Int_1(void) interrupt 2 DelayMs(15); /延时去抖 switch(P1&0x0f) case 0x0e:EN_Dis = EN_Dis; break; /打开或关闭节能模式 case 0x0d:EN_Stop

    22、watch( ); break; /秒表/实时切换 case 0x0b:EN_Alarm( ); break; /闹钟/实时切换 case 0x07:Sel_Alarm( ); break; /打开或关闭闹钟 default: ; break; IE1 = 0; /中断清零KEYBOARD.H/*Description :数字钟头文件,申明keyboard.c中的全局函数、全局变量*/ Start#ifndef _KEYBOARD_H_ /作用:防止keyboard.h被重复引用#define _KEYBOARD_H_/*按键初始化程序*/extern void Keyboard_Init(v

    23、oid); /全局函数申明#endif/ No moreDisplay.c/*Description :数字钟数码管显示程序,通过两个74HC573和两个片选信号, 分时输出段码和位码。*/ Start/*包含头文件*/#include #include #include #include #include /*定义常量*/unsigned char code Table_Duan10 =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /显示段码值09unsigned char code Table_Wei6 = 0xfe,0xfd,0xf

    24、b,0xf7,0xef,0xdf; /分别对应相应的数码管点亮,即位码/*定义变量*/unsigned char Table_Dis6 = 0x00,0x00,0x00,0x00,0x00,0x00;unsigned char j,EN_Play; /数码管位计数、显示模式标志bit EN_Dis; /节能模式标志bit Open_Alarm; /闹钟打开标志/*数码管显示初始化程序入口参数:无;返回值:无*/void Display_Init(void) j = 0; s = 0; m = 0; h = 0; s_1 = 0; m_1 = 0; h_1 = 0; s_2 = 0; m_2 =

    25、 0; h_2 = 0; Open_Alarm = 0; EN_Dis = 1; EN_Play = 0x00; Count_Bell = 0;/*数码管段码计算程序入口参数:无;返回值:无*/void Display_Actual(void) /实时 Table_Dis5 = s%10; Table_Dis4 = s/10; Table_Dis3 = m%10; Table_Dis2 = m/10; Table_Dis1 = h%10; Table_Dis0 = h/10;void Display_Stopwatch(void) /秒表 Table_Dis5 = s_1%10; Table_Dis4 = s_1/10; Table_Dis3 = m_1%10; Table_Dis2 = m_1/10; Table_Dis1 = h_1%10; Table_Dis0 = h_1/10;void Display_Alarm(void) /闹钟 Table_Dis5 = s_


    注意事项

    本文(单片机时钟闹钟课程设计.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开