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

    基于51单片机的简易电子时钟(共47页).docx

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

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

    基于51单片机的简易电子时钟(共47页).docx

    精选优质文档-倾情为你奉上基于51单片机的简易电子时钟设计摘 要今天,电子时钟是生活中不可或缺的一部分。电子时钟通过数码管显示,具有整点报时等功能,可以使得我们的生活变得更加有序。电子时钟也通过不断地改进,变得功能越来越强大。本次设计的电子时钟利用单片机STC89C51进行控制的,利用单片机自身的定时器功能,采用数码管显示,可对电子时钟进行调整校准。此设计具有相当重要的现实意义和实用价值。基于单片机STC89C51的电子时钟,采用数码管显示“时“分“秒”而且可用按键进行调整校准。此次设计与传统的机械表相比,它具有走的更精准,显示更直观等特点,而且单片机的数字时钟具有灵活编程,便于功能扩充等特点。本次所设计主要有三个模块:显示模块,按键模块,闹铃模块。该时钟采用STC89C51单片机自身定时器进行计时,按键模块采用独立式键盘(4个按键),闹铃部分由8550三极管和蜂鸣器构成,显示时、分、秒用两个四位共阴极数码管显示,具有可调整时间功能和设定闹钟功能,在设计过程中硬件和软件应同时进行。关键词:电子时钟,单片机,闹钟,蜂鸣器SIMPLE ELECTRONIC CLOCK DESIGN BASED ON 51 MCUABSTRACTToday , the electronic clock is an integral part of life . Through the digital display electronic clock , with the whole point timekeeping function , can make our life more orderly . The electronic clock also through continuous improvement , has become more and more powerful .The design of the electronic clock using STC89C51 MCU to control the use of single-chip , self timer function , the use of digital tube display , can adjust the calibration of the electronic clock . Has very important realistic significance and practical value of this design .The electronic clock based on MCU STC89C51 , using digital tube display " when " " seconds " and the button can be used to adjust the calibration . And the design of the traditional mechanical watch , it has to go more accurate , more intuitive display characteristics , and the digital clock has flexible programming , easy to function expansion and so on .This design has three main modules : the display module , keyboard module , alarm module . The clock uses STC89C51 microcontroller timer timing , key module with separate keyboard (4 buttons), the alarm is composed of 8550 transistors and a buzzer , when the display is divided by two seconds , four common cathode digital display , which can adjust the time and set the alarm function , hardware and software in the design process should be carried out at the same time .Key Words : electronic clock , microcontroller , alarm clock , a buzzer专心-专注-专业目 录第一章 绪论1.1 课题背景及意义二十一世纪的今天,电子时钟已经融入到千千万万户家庭中,它已经成为了人们生活中不可或缺的一部分。电子时钟通过数码管显示,使其直观明了,更能实现整点报时等功能,使其更符合当今人们的生活需求,电子时钟的出现使人们的生活更加的有条不紊。目前市场上的电子时钟很多,为了迎合市场的需要,满足广大的消费人群,人们通过自己的DIY设计让电子时钟富有创意。电子时钟通过不断地改进,使其更具有市场。本次设计的电子时钟利用单片机STC89C51进行控制的,利用单片机自身的定时器功能,采用数码管显示,可对电子时钟进行调整校准。电子时钟既可广泛应用于家庭,也可应用于银行、邮电、宾馆、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。因而,此设计具有相当重要的现实意义和实用价值。1.2 课题内容1.2.1 题目及要求基于51单片机的电子时钟设计与制作。利用单片机的计时、校时等功能,设计并制作出一个以单片机STC89C51为核心组件,采用数码管显示“时“分“秒”的电子时钟,要求能正常显示,并可用按键进行调整校准。此次设计与传统的机械表相比,它具有走的更精准,显示更直观等特点,同时具有不同的操作方式,让此次设计更符合现代生活的需求,而且单片机的数字时钟具有编程灵活,便于功能扩充等特点。1.2.2 主要部分本次设计可分为两部分:软件部分、硬件部分。硬件部分包括: STC89C51单片机模块,数码管模块,蜂鸣器模块,按键模块,闹铃模块。通过正确连接电路以及单片机的编程来实现上述要求。软件部分的主程序包括:数码管显示程序,按键控制程序。使其实现时分秒正常显示,并可通过按键进行调试功能。第二章 方案2.1 功能要求1、能显示时、分、秒2、通过按键可以对电子时钟进行调整校准3、可实现设定闹钟并报警功能4、上电后,电子钟显示“12-59-00”,蜂鸣器同时发出声音2.2 数字时钟方案在本次设计中,数字时钟是最主要的部分:采用单片机本身的定时器进行计时,来实现数字时钟功能。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。该方案具有硬件电路简单的特点。但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。2.3 数码管显示方案采用动态显示。所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。调整参数可以实现较高稳定度的显示。动态显示节省了I/O口,降低了能耗。第三章 电子时钟的硬件设计3.1 电子时钟的组成本次设计制作的电子时钟组成部分为:STC89C51主控制模块,按键模块,复位电路,数码管显示模块,闹铃模块。组成图如图3-1所示。图3.1 电子时钟系统组成3.2 单片机最小系统图单片机最小系统又称为最小应用系统,即用最少的元器件组成单片机可以工作的系统。一般应包括:电源、单片机、晶振电路、复位电路等。如图3.2所示为单片机最小系统图。图3.2 单片机最小系统图3.3 STC89C51引脚功能图3.3 STC89C51引脚如图3.3所示,STC89C51主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为功能控制端口,分别与其相应功能管脚相连接,13 脚定义为IR输入端。3.4 数码管显示模块图3.4 数码管显示模块如图3.4所示,在这次的设计中,数码管接在单片机的P0和P2口,P0控制段选信号,P2控制位选信号。通过位选信号依次点亮各个数码管,由于人眼有视觉暂留的特性,因此如果第一个数码管灭和第二个数码管亮之间的时间足够短,人眼是感觉不出数码管的变化的。3.5 闹铃部分图3.5 闹铃图闹铃如下图3.5所示,主要由8550三极管和蜂鸣器构成,可通过手动设置来实现闹铃功能。3.6 按键模块如图3.6所示,本次设计是采用四个独立式按键,分别为“时间设置”键,“闹钟设置”键,“+”键,“-”键,通过这四个按键来调整电子时钟的时间显示和闹钟响应。“时间设置” “闹钟设置” “+” “-”图3.6按键图第四章 电子时钟的软件设计本次设计主要是对单片机,数码管,按键和闹铃部分进行编写的。4.1 电子时钟程序流程框图图4.1 系统程序流程框图本次的设计主程序是根据每个模块的特性来进行编写,先对各个模块进行初始化,然后再按照各自不同来分模块编写,最后得出总的流程图。4.2 按键调整流程图图4.2 按键调整流程图进入程序后,先将单片机,数码管,按键等进行初始化,数码管显示固定数值“12-59-00”,程序开始等待按键按下,当有按键按下,单片机检测一次,确定按下,单片机调用程序,同时数码管刷新一次,显示当前操作结果。完后,程序返回按键等待,如此循环执行。4.3 子程序的设计4.3.1 数码管显示模块4位独立数码管显示,电路相对简单,主要特点,简单易用,显示清晰,性价比高。数码管显示程序:(见附录2.1)4.3.2 按键子模块本次设计是采用四个独立式按键,分别为“设置”键,“+”键,“-”键,“复位”键,通过这四个按键来调整电子时钟的时间显示和闹钟响应。按键操作子程序:(见附录2.2)图4.3按键抖动新号波形当用手按下一个键时,如图4.3所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。此次设计过程中电路的工作原理:数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。数码管按照数码管动态显示的工作原理工作, 将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。校时电路时用来对“时”、“分”、“秒”显示数字进行校对调整,按一下设置键进入时设置,按下“+”时加一次,按下“-”键,时减一次,同理,按设置键两次即进行分调整,按下三次进行秒调整。4.3.3 主程序(见附录2.3)第5章 硬件的制作与测试分析5.1 电子时钟的硬件制作此次的电子时钟是根据所设计的原理图,把每个部分都焊接好,连接起来,然后接入电源,上电,最后将所编写的程序烧入单片机中。5.2 硬件测试电子时钟的硬件相对简单,只用几个模块构成,但在检查电路的时候容易因掉以轻心而出错,主要检查电路连接是否有短路或者短路现象(通过万用表检测),元器件的型号和规格是否使用合理。其次,检测电源。检测方法:一种是断开稳压电源的输出端,检查空载时电源工作情况;另一种是拔下电源上的主要集成芯片,检查电源的负载能力(用假负载),确保电源无故障并性能符合设计要求。检测完电路,确保其不发生电路故障的前提下才可上电。5.3 软件调试电子时钟虽然看着硬件比较少,但是写起程序来并非那么简单,在设计阶段,因为我们是刚入手单片机没多久的,所以对挺多的程序并不是很了解,我们查阅了很多资料,研究了很多关于按键,数码管等方面的内容,我们通过参考查阅到的资料,根据自己的删改添加终于完成了自己的程序。在电子时钟的程序设计阶段,让数码管显示“12-59-00”,由于对十六进制不够熟练,所以在实现显示的时候总是出现乱码,后面静下心慢慢算,终于能够正常显示,不过只是实现数码管的静态显示,动态显示才是关键,通过我们在课上讲的数码管累加计时,仿照其原理,通过改进,也实现了动态显示。在按键方面,按键因为是独立的,所以我一个个按键的功能慢慢实现,先做加减后做调整和复位,刚开始做按键的时候因为考虑的不够全面,虽然按键能够实现加减,但是出现按一次跳很多次的现象,经过查找资料并观看视频,原来按下去的时候会出现所谓的“抖动”,这时候就需要多添加几句程序来进行消抖,最终数码管才正常加减,同样道理实现选择位跟复位功能,在一步步添加程序的同时也一步步地掌握了按键的使用方法。5.4 测试结果分析与结论5.4.1 数码管测试结果分析数码管主要是分清楚共阴还是共阳,在写程序的时候一定要注意,通过肉眼看数码管是否出现亮度不够判断其电路是否供电异常或者程序占用太多CPU,进行电路调整及程序修改,让数码管正常显示。5.4.2 按键测试结论在对按键进行测试的时候主要出现按键按下去有时候会出现连续加跟连续减的现象,经过查找相关资料,原来按键按下去的时候会出现“抖动”,所以我们就要在程序中进行删改,做“消抖”处理。5.4.3测试结论经过多次的反复测试,分析跟修改,程序越来越完善,我也对电路的原理跟功能更加熟悉,同时在编程方面也更加的熟练,很多平时老师没有教到的知识我通过自学,也都能基本掌握,可说在编程上得到了很大的提高,以及对所学的知识也得到很大的巩固。调试展示如下5.1图所示:图5.1 调试展示图总结与致谢在这2016年的年末,经过我们的努力,我们圆满的完成了本学期的课程设计。此次我们的课程设计是微机原理与单片机接口技术课程设计,而我们小组做的是基于51单片机的简易电子时钟设计。电子时钟与我们的生活息息相关,尽管它作为我们的日常用品,但说实话我们对其很不了解。这种很熟悉却又很遥远的感觉激发了我的求知欲望。经过我们认真的查阅资料,我们了解了电子时钟和51单片机的原理以及如何使用51单片机设计电子时钟。然后我们开始设计属于我们自己的电子时钟,我们通过仿真软件设计了原理图,编写了C语言程序。本次课程设计我和另外两位同学主要负责硬件部分,即按照原理图购买和焊接实物电路并烧写单片机和最后调试。这真正做之前我感觉并不难,但是真正上手之后却是错漏百出。比如我们在焊接排阻时,由于不仔细没有注意到它的极性,最后才发现焊反了,还有部分地方存在虚焊等问题。虽然最后在大家的努力下一一得以解决,但是这也说明我们还存在很多问题。类似于对原理不是特别懂,还有就是粗心不仔细,再就是动手能力极差。看的时候感觉很简单,但是自己动手焊接时却发现非常不容易。总而言之,通过这次课程设计我感觉收获颇丰。不仅仅是学习能力的提升,还有动手能力的提升,更重要的是收获了一份钻研精神以及一种不畏困难勇往直前的勇气!参考文献1郭天祥.新概念51单片机C语言教程M.北京:电子工业出版社,20092张靖武,周灵斌.单片机原理、应用与PROTEUS仿真M.北京:电子工业出版社,20083张道德.单片机接口技术M.北京:中国水利水电出版社,2007附录附录一 分组表任务/人设计电路编写程序焊接烧写调试备注焊接烧写焊接烧写焊接烧写总体电路设计总体程序编写数码管显示模块程序设计按键模块程序设计复位模块与电源开关模块数码显示模块和蜂鸣器电路模块晶振电路模块和单片机电路模块附录二 程序数码管显示程序:void display(void)P0=ledhour/10; /p0口送数据 拆数显示P2=0xFE; /片选delay(); /延时P2=0xFF; /片选关P0=ledhour%10;P2=0xFD;delay();P2=0xFF;P0=0x40;P2=0xFB;delay();P2=0xFF;P0=ledminit/10;P2=0xF7;delay();P2=0xFF;P0=ledminit%10;P2=0xEF;delay();P2=0xFF;P0=0x40;P2=0xDF;delay();P2=0xFF;P0=ledsecond/10;P2=0xBF;delay();P2=0xFF;P0=ledsecond%10;P2=0x7F;delay();P2=0xFF;按键操作子程序:void display(void)P0=ledhour/10; /p0口送数据 拆数显示P2=0xFE; /片选delay(); /延时P2=0xFF; /片选关P0=ledhour%10;P2=0xFD;delay();P2=0xFF;P0=0x40;P2=0xFB;delay();P2=0xFF;P0=ledminit/10;P2=0xF7;delay();P2=0xFF;P0=ledminit%10;P2=0xEF;delay();P2=0xFF;P0=0x40;P2=0xDF;delay();P2=0xFF;P0=ledsecond/10;P2=0xBF;delay();P2=0xFF;P0=ledsecond%10;P2=0x7F;delay();P2=0xFF;void Keykonzhi()if(time=0) /键盘时间设定键按下delay();delay();if(time=0)while(!time);timenum1+; /标记+TR1=0;f2=0;if(timenum1=1) /如果timenum1=1 调时dsflg=0;st=0;if(add=0) /加键按下delay();delay();if(add=0)while(!add); /松手检测hour+; /小时+if(dec=0)/减键按下delay();delay();if(dec=0)while(!dec); /松手检测hour-; /小时-if(hour>23) /限位hour=0;P0=ledhour/10;/显示小时函数P2=0xFE;delay();P2=0xFF;P0=ledhour%10; /显示小时函数P2=0xFD;delay();P2=0xFF;if(timenum1=2) /如果timenum1=2调分/以下也是和调时一样的方法dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);minit+;if(dec=0)delay();delay();if(dec=0)while(!dec);minit-;if(minit>60)minit=0;P0=ledminit/10;P2=0xF7;delay();P2=0xFF;P0=ledminit%10;P2=0xEF;delay();P2=0xFF;if(timenum1=3)/如果timenum1=3 调秒dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);second+;if(dec=0)delay();delay();if(dec=0)while(!dec);second-;if(second>60)second=0;P0=ledsecond/10;P2=0xBF;delay();P2=0xFF;P0=ledsecond%10;P2=0x7F;delay();P2=0xFF;if(timenum1=4) /如果timenum1=4 退出 TR1=1;timenum1=0;dsflg=1;f2=1;st=1;void almset()timenum1=0;if(timer=0) /键盘上的闹钟键按下 delay();delay();if(timer=0)while(!timer); /松手timenum2+; /标记+f1=0;if(timenum2=1)/如果timenum2=1设定脑钟的小时dsflg=0;st=0;if(add=0) /加键按下delay();delay();if(add=0)while(!add);/松手hour1+;/小时+if(dec=0) /减键按下delay();delay();if(dec=0)while(!dec);/松手hour1-; /小时-if(hour1>23) /限位hour1=0;P0=ledhour1/10;/小时显示P2=0xFE;delay();P2=0xFF;P0=ledhour1%10;P2=0xFD;delay();P2=0xFF;P0=0x77; /显示 一P2=0xBF;delay();P2=0xFF; /显示 一P0=0x38;P2=0x7F;delay();P2=0xFF;if(timenum2=2) /如果timenum2=1设定脑钟的分钟 和上面小时一样dsflg=0;st=0;if(add=0)delay();delay();if(add=0)while(!add);minit1+;if(dec=0)delay();delay();if(dec=0)while(!dec);minit1-;if(minit1>60)minit1=0;P0=ledminit1/10;P2=0xF7;delay();P2=0xFF;P0=ledminit1%10;P2=0xEF;delay();P2=0xFF;P0=0x77;P2=0xBF;delay();P2=0xFF;P0=0x38;P2=0x7F;delay();P2=0xFF;if(timenum2=3)/如果timenum2=3退出timenum2=0;dsflg=1;f1=1;st=1;主程序:void main(void)second=59; /时间初始化为00:00:00minit=59;hour=13;second1=0;/闹钟默认为12:00:00minit1=05;hour1=14;count0=0x00;count1=0x00;timenum1=0;f1=1;f2=1;dsflg=1;m=0;f=0;st=1;P1=0xFF;TMOD=0x11;TL1=tl;TH1=th;EA=1;TR1=1;ET1=1;IT1=1;TH0=0;TL0=0;TR0=1; EX1=1;while(1)if(zhengdian=1) speaker=0;delay1(1);speaker=1;delay1(1);if(f1=1)Keykonzhi ();if(f2=1)almset();almkozi();if(dsflg=1)display();if(st=1)if(add=0)delay();delay();if(add=0)while(!add);second=00; /时间初始化为00:00:00minit=00;hour=00;附录三 电子时钟实物图实物图a实物图b

    注意事项

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

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




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

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

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

    收起
    展开