欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于单片机89C51的数码管显示时钟设计说明.doc

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

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

    基于单片机89C51的数码管显示时钟设计说明.doc

    . 基于单片机的数字时钟摘 要单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能与工作顺序都非常熟悉。但是却很少知道它的部结构以与工作原理。由单片机作为数字钟的核心控制器,可以通过它的时钟信号进展实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。通过键盘可以进展校时、定时等功能。输出设备显示器可以用液晶显示技术和数码管来显示技术。 本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89C51为核心元件同时采用LED数码管显示器动态显示“时,“分,“秒的现代计时装置。与传统机械表相比,它具有走时准确,显示直观等特点。另外具有校时功能,秒表功能,和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩大等优点。关键词:数字钟系统; 单片机;数码管显示Digital clock system Abstract SCM in multi-function digital clock in the application is already very common, people on the digital clock function and are very familiar with the work order. But very few know that its internal structure and working principles. SCM as a digital clock from the core controller, it can achieve the clock signal timing, its time data by theMCU output, use of monitors displayed. Keyboard can be carried out at the school, timing, and other functions. Output devices can be used liquid crystal display monitors and digital technology to display the technology.      The system uses MCU with time, the school features such as the digital clock, SCM AT89C51 is also used as the core components of the LED digital display dynamic display "when" and "points" and "seconds" of the modern time device . Compared with the traditional mechanical watches, it has a precise path that intuitive, and other characteristics. In addition a school function, stopwatch function, and the timer function to achieve MCU use of the digital clock with programming flexibility to facilitate the expansion of functional advantages. Key words: digital clock system; SCM; LED Monitor目录设计任务书.I摘要.IIIABSTRACT.IV1. 系统方案.I系统概述设计任务书.I摘要.IIIABSTRACT.IV1. 系统方案.11.1 系统概述.11.2 方案论证.11.3 扩展功能.22. 设计过程.22.1 设计原理22.2 所需元器件.23. 电路与程序.23.1 电路设计23.2 程序设计3.3.7 参考文献64. 总结体会.161、系统方案1.1 系统概述本系统可模拟电子时钟,实现时钟,秒表,倒计时定时器功能,主从CPU数据处理、键盘控制与数据显示。主控系统能响应按键,并对其进展相应的处理,再把其对应的结果数据在数码管LED上显示。具体设计根本任务是:1用LED数码管显示时间,且能显示时、分、秒的24小时制的数字钟。2具有校时功能,具体方法:设置三个按钮,其中两个按钮分别对“时、“分进展校时,另一个按钮那么实现对“秒位清零系统结构框图如图1.1所示:CPU主机键盘控制数码管显示数码管显示开关控制数码管显示形式图1.1数字钟系统结构框图1.2 方案论证方案一1计数局部采用异步2-5-10进制计数器7490,显示局部参考实验七。1计时用的“秒脉冲信号可用实验板中提供的800Hz分频产生。800Hz信号同时作为动态扫描显示电路的时钟信号。2时、分校时控制,当校时按钮按下时,可对时、分计数器CP端输入秒脉冲来加速计数速度来到达校时目的。方案二 1.用单片机定时器中断原理实现数码管动态10ms循环扫描,同时完成计数功能,并经过屡次中断产生“秒信号。 2.可控制按键实现时,分,秒加一,减一功能。 考虑到设计硬件简单原那么,利用单片机实现的数字时钟具有编程灵活,便于功能的扩大等优点,故本设计采用方案二。1.3扩展功能1.实现秒表功能。 2.可以用于倒计时定时。 3.可以时分秒清零。2.设计过程1原理本设计主要应用了单片机原理,利用单片机的I/O口,由键盘控制I/O口,进展单片机相应的程序处理,再用I/O口控制数码管的显示。利用开关来控制开启,暂停计时,并切换时钟,秒表,倒计时定时器功能。2所需元器件 六位一体数码管,89C51单片机,7407芯片,12M晶振,按键假设干,开关假设干,电阻假设干,电容假设干,导线3电路与程序设计3.1 电路设计:图3.1总体电路图本系统的设计电路如图3.1所示,左边按键控制时分秒加一减一操作,右边开关切换数码管显示时钟,秒表,倒计时定时器等功能。单片机下方按键有复位功能:当在时钟方式时,此按键有清零作用;当在倒计时定时器方式时,此按键按下,时分秒均付为最大值。右上角是六位一体的数码管LED,用于显示。数码管左边的上拉电阻具有自动拉高P0I/O口的功能。数码管下方的7407芯片有限流作用,用于防止数码管电流过大而烧毁。3.2 程序设计 图3-2-1为主程序流程图,图3-2-2为定时器0程序流程图,图3-2-3为定时器1程序流程图。是否有按键拆分,即吧两位数放到数码管上跳到按键子程序While死循环初始化程序图3-2-1主程序流程图此为主程序流程图,初始化后,就一直在while里循环,并把秒,分,时分别拆成各位和十位两个数,放到相应的数码管上显示,并检测是否有按键按下,和定时器T0,T1溢出,来执行相应的键盘子程序和定时器0,1的中断程序。重新初始化T0t+,t0+秒分时计算,ss=60,那么ss=0,mm+。分,时同理计算t0是否为2t0=0数码管循环显示一位显示相应数码管的数值第三个开关是否按下j=10j=610t是否为jt=0开关2是否按下秒加一开关一是否按下开定时器1,关定时器0开定时器0,关定时器1进入主程序图3-2-2定时器0程序流程图此为定时器0流程图,在主程序检测到T0溢出时执行该子程序,该中断主要执行数码管循环显示数字,并检测到一秒后秒加一的功能。重新初始化T1t+,t0+秒分时计算,ss= -1,那么ss=59,mm减一。分,时同理计算t0是否为2t0=0数码管循环显示一位显示相应数码管的数值t是否为jt=0开关2是否按下秒减一开关一是否按下开定时器1,关定时器0开定时器0,关定时器1进入主程序j=610,图3-2-3定时器1程序流程图此为定时器1流程图,在主程序检测到T1溢出时执行该子程序,该中断程序主要执行数码管循环显示数字,并检测到一秒后秒减一的功能。参考文献1 康华光,邹寿彬,臻. 电子技术根底数字局部. 高等教育,2006. 12 毅刚,喜元,董继成. 单片机原理与应用. 高等教育,2003.123 鲲,春亮,黄焱. 单片机C语言入门. 人民邮电,2008年4月第1版.1. 开场函数的定义:#include<reg51.h>#define uchar unsigned char /宏定义#define uint unsigned int /宏定义#include <intrins.h> /循环左移函数库void jian_pan(); /键盘子函数char code duan_ma=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /时钟显示数组int ss,mm,hh,s_shi,s_ge,m_shi,m_ge,h_shi,h_ge,t,t0,zy,j,ds; /zy 为左移的意思sbit p32=P32;sbit p31=P31;sbit p30=P30;sbit p37=P37;2.主程序:void main() ds=1; /定时器初始化 P2=0xfe; /数码管位初始化 P0=0x3f; /如果时时钟,断码初始置0 P1=0xff; /键盘初始 t=0; /1S时,t=700 t0=0; /数码管动态显示一次,t0=2,10ms左右 TH0=(65536-10001)/256;TL0=(65536-10001)%256; TH1=(65536-10001)/256;TL1=(65536-10001)%256; EA=1; ET1=0; /开定时器0 TR1=0; /定时器开场工作 ET0=1; TR0=1; while(1) if (P1!=0xff) /判断是否有键,有键就执行jian_pan子程序 jian_pan(); s_shi=ss/10; /拆分 s_ge=ss%10; m_shi=mm/10; m_ge=mm%10;h_shi=hh/10; h_ge=hh%10;3.定时器0中断程序:void timer0() interrupt 1 if(p32=1) j=610; else j=10;TH0=(65536-10001)/256; /重新初始化T0 TL0=(65536-10001)%256;t+; t0+; if(P2=0xdf) /如果数码管显示到第6个下一个显示第1个数码管 1101 1111 -> 0111 1111 -> 1111 1110 P2=0x7f;/秒分时计算 if(ss=60) /假设ss为60,ss=0,同时mm+1 ss=00; mm+; if(mm=60) /假设mm为60,mm=0,同时hh+1 mm=00; hh+; if(hh=24) /假设hh为24,hh=0 hh=00;/数码管动态显示,t=02时左移一位,并显示那一位相应的值 if(t0=2) t0=0; /P2循环左移一位 zy=P2; zy=_crol_(zy,1); P2=zy; /相应数码管显示相应的数值 if(P2=0xfe) P0=duan_mas_ge; if(P2=0xfd) P0=duan_mas_shi; if(P2=0xfb) P0=duan_mam_ge+10; if(P2=0xf7) P0=duan_mam_shi; if(P2=0xef) P0=duan_mah_ge+10; if(P2=0xdf) P0=duan_mah_shi; if (t=j) t=0; if (p31=1) ss+; if(t>611) t=0; if(p30=0) /转到timer1上去 ET0=0; TR0=0; ET1=1; TR1=1; t=0; 4.定时器1中断程序:void timer1() interrupt 3 j=610; if(ds=1) mm=59; if(ds=0) ds=0; else ds-; TH1=(65536-10001)/256; /重新初始化T1 TL1=(65536-10001)%256;t+; t0+; if(P2=0xdf) /如果数码管显示到第6个下一个显示第1个数码管 1101 1111 -> 0111 1111 -> 1111 1110 P2=0x7f;/秒分时计算 if(ss=-1) /假设ss为60,ss=0,同时mm+1 ss=59; mm-; if(mm=-1) /假设mm为60,mm=0,同时hh+1 mm=59; hh-; /数码管动态显示,t=02时左移一位,并显示那一位相应的值 if(t0=2) t0=0; /P2循环左移一位 zy=P2; zy=_crol_(zy,1); P2=zy; /相应数码管显示相应的数值 if(P2=0xfe) P0=duan_mas_ge; if(P2=0xfd) P0=duan_mas_shi; if(P2=0xfb) P0=duan_mam_ge+10; if(P2=0xf7) P0=duan_mam_shi; if(P2=0xef) P0=duan_mah_ge+10; if(P2=0xdf) P0=duan_mah_shi; if (t=j) t=0; if (p31=1) if(ss|hh|mm)!=0) ss-; if(t>611) t=0; if(p30=1) /转到timer1上去 ET1=0; TR1=0; ET0=1; TR0=1; t=0; 5.键盘子程序:void jian_pan() uint temp; temp=P1; switch(temp) case 0xfe: /秒个位加1 while(P1!=0xff) if(ss=59) ss=00; else ss+; break; case 0xfd: /秒个位减1 while(P1!=0xff) if(ss=00) ss=59; else ss-; break; case 0xfb: /分个位加1 while(P1!=0xff) if(mm=59) mm=00; else mm+; break; case 0xf7: /分个位减1 while(P1!=0xff) if(mm=00) mm=59; else mm-; break; case 0xef: /时个位加1 while(P1!=0xff) if(hh=23) hh=00; else hh+; break; case 0xdf: /时个位减1 while(P1!=0xff) if(hh=00) hh=23; else hh-; break; case 0xbf: ss=0; break; case 0x7f: while(P1!=0xff) if(p30=1) hh=0;mm=0;ss=0; else hh=23;mm=59;ss=59; break; 4.总结体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术开展的日新日异,单片机已经成为当今计算机应用中空前活泼的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。本系统是以单片机AT89C52芯片为核心部件,实现了时钟、倒计时、秒表的功能。此次在软件上是花费时间最多的,我们上网找资料,上图书馆,尽可能的了解有关于单片机这方面的知识。通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我初步了解了单片机的原理,学会了使用仿真软件进展仿真,以与在常用编程设计思路技巧特别是C语言的掌握方面都能向前迈了一大步。通过本次电子技术课程设计,我们充分认识到了课程设计的理要性和必要性,本次设计使们对已学过的根底知识有了更深入的理解。26 / 26

    注意事项

    本文(基于单片机89C51的数码管显示时钟设计说明.doc)为本站会员(知****量)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开