ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:246.86KB ,
资源ID:10287032      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10287032.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数字电子钟.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数字电子钟.docx

1、数字电子钟 单片机技术课程设计说明书 数字电子钟 系 、 部: 电气与信息工程 学生姓名: XXXXX 指导教师: XXX 专 业: 电子信息工程 班 级: XXXXXXXX 完成时间: 2011-1-1 摘 要数字电子钟广泛应用于生活生产中,因此对其深入了解很有必要,在此用单片机设计了一个简单的数字电子钟。本设计为基于AT89S52单片机,辅以必要的外围电路,设计了一个简单的数字电子时钟。在硬件方面,除了CPU外,用数码管来进行显示,LED采用动态扫描显示。通过LED能够比较准确显示时、分、秒,四个简单的按键实现对时间的调整。软件方面采用汇编语言编程。整个电子钟系统能完成时间的显示,调时,调

2、分,调秒,复位等功能。本次设计的电子钟带有独立式键盘,用共阴数码管显示,现在生活中液晶显示器用的比较多,所以此电子钟在生活中推广的现实意义不是很大。关键词 数字电子钟;AT89S52;汇编语言ABSTRACTDigital electronic clock is widely used in the production of life, so it is necessary for its understanding, in this single chip microcomputer designed a simple digital electronic clock.This desig

3、n is based on the AT89S52 microcontroller, combined with the necessary peripheral circuits, design a simple digital electronic clocks. On the hardware side, in addition to CPU, to carry a digital tube display, LED display dynamic scan. Through the LED can accurately display hours, minutes, seconds,

4、four simple keys to realize the time adjustment. Software using assembly language programming. The completion of the entire electronic time clock system to the display, transfer, the transfer points, transfer seconds, reset and other functions. The design of the electronic clock with a stand-alone k

5、eyboard, with a total of Yin digital tube display, liquid crystal displays now used in daily life are moreTherefore, the electronic clock in life to promote the practical significance is not great.Keywords: Digital electronic clock; AT89S52; Assembly Language目 录1、整体设计方案4 1.1 课题设计内容与要求4 1.2 功能设计要求4 1

6、.3 设计方案及工作原理42、硬件系统的设计.62.1 硬件电路简介62.2 硬件系统各模块功能简介.62.3 电路元器件简介.103、软件系统的设计.113.1 使用单片机资源的情况.113.2 软件系统各模块功能简介.113.3 软件系统程序流程框图.114、设计结论、分析.154.1 设计结论及使用说明.154.2 仿真结果.154.3 误差分析.164.4 设计体会.16参考文献.17致谢18附录.191、整体设计方案1.1课题设计内容与要求1.1.1设计任务数字电子钟设计一个具有特定功能的电子钟。通过理论与实践解决相应问题,巩固和应用在单片机技术中所学知识,掌握单片机一般设计方法,提

7、高设计和动手能力,为以后从事电子电路设计,研发电子产品打下良好基础。1.1.2设计要求1、编程语言:汇编或C51;2、计算机打印单片机技术课程设计说明书一份;3、设计时间:一周;4、实物制作;5、人员分组:一人一组一实物。1.2 功能设计要求设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“P.”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从0时0分0秒开始运行,进入时钟运行状态;再次按电子钟启动/调整键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按启动/调整键再次进入时钟运行状态。1.3 设计方案及工作原理1.3.1单片机的选择

8、单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。1.3.2电子钟工作原理 数字电子钟是一个将“ 时”,“分”,“秒”显示于人的视觉器官的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,

9、另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。数码管按照数码管动态显示的工作原理工作,将标准秒信号送入“秒单元”,“秒单元”采用60进制计数器,每累计60秒发出一个“分脉冲”信号,该信号将作为“分单元”的时钟脉冲。“分单元”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时单元”。“时单元”采用24进制计时器,可实现对一天24小时的累计。显示电路将“时”、“分”、“秒”通过七段显示器显示出来。校时电路时用来对“时”、“分”、“秒”显示数字进行校对

10、调整,按一下ksec,秒单元就加1 ,按一下kmin,分就加1,按一下khour,时就加1。2、硬件系统的设计2.1 硬件电路简介硬件电路能够完成以下功能:时间设置控制功能,当按下控制键后,进入设置状态,再次按下,结束并返回显示时间。对时间进行设置,当按下时加一键时,时数字加一;当时数字大于等于24时,自动变为零。当按下分加一键时,分数字加一;当分数字大于等于60时,自动变为零,同时实数字加一。2.1.1 硬件电路原理图图2-1 系统硬件电路原理图2.2 硬件系统各模块功能简介2.2.1 LED显示电路显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显

11、示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如下图所示。图2-2 数码管的硬件连接示意图2.2.2 共阳数码管显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示

12、器是现在最常用的显示器之一,如下图所示。图2-3 LED显示器的符号图发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。图是共阳式、共阴式LED数码管的原理图和符号.图2-4 共阳式、共阴式LED数码管的原理图和数码管的符号图数码管使用条件:a、段及小数点上加限流电阻 b、使用电压:段:根据发光颜色决定; 小数点

13、:根据发光颜色决定c、使用电流:静态:总电流 80mA(每段 10mA);动态:平均电流 4-5mA 峰值电流 100mA数码管使用注意事项说明:(1)数码管表面不要用手触摸,不要用手去弄引角;(2)焊接温度:度;焊接时间:(3)表面有保护膜的产品,可以在使用前撕下来。2.2.3 键盘控制电路该设计需要校对时间,所以用三个按键来实现。按khour来调节小时的时间,按 kmin来调节分针的时间,按 ksec来调节秒的时间。下图是按键硬件连接图。图2-5 按键控制电路的硬件连接图当用手按下一个键时,如图2-6所示,往往按键在闭合位置和断开位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也回会

14、出现类似的情况。这就是抖动。抖动的持续时间随键盘材料和操作员而异,不过通常总是不大于10ms。很容易想到,抖动问题不解决就会引起对闭合键的识别。用软件方法可以很容易地解决抖动问题,这就是通过延迟10ms来等待抖动消失,这之后,在读入键盘码。图2-6按键抖动信号波形2.3电路元器件简介2.3.1 原理图 见附录二。2.3.2 PCB图 见附录三。2.3.3 数字电子钟元器件清单表2.1 数字电子钟元器件清单名称型号数量备注单片机AT89S521块含插座电阻2009个电阻1k 1个电阻4.7k 4个上拉排阻84.7k1片数码管2块4位一体电容30pF2个电解电容22F1个下载线接口1个双列10针针

15、按键5个3、软件系统的设计3.1 使用单片机资源的情况 P0口接数码管段控,P2口接数码管位控,P1.0,P1.1,P1.2口为控制按键。3.2 软件系统各模块功能简介 (1)显示程序:显示程序通过数码管显示时钟数字的时,分,秒。(2)延时程序:用于延时(3)数字转换程序:转换数字用于数码管显示3.3 软件系统程序流程框图 这次的数字电子钟设计用到很多子程序,它们的流程图如下所示。 主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。图3-1 主程序流程图按键处理是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按

16、下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。 图3-2 按键处理流程图定时器中断时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。 图3-3 定时器中断流程图时间显示是先秒个位计算显示,然后是秒十位计算显示,再是分个位计算显示,再然后是分十位显示,再就是时个位计算显示,最后是时十位显示。 图3-4 时间显示流程图4、设计结论、分析4.1 设计结论及使用说明4.1.1 PROTUES软件介绍Prot

17、eus软件是Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB的设计,而ISIS模块用来完成电路原理图的布图与仿真。Proteus的软件仿真基于VSM技术,它与其他软件最大的不同也是最大的优势就在于它能仿真大量的单片机芯片,比如MCS-51系列、PIC系列等等,以及单片机外围电路,比如键盘、LED、LCD等等。通过Proteus软件的使用我们能够轻易地获得一个功能齐全、实用方便的单片机实验室。4.1.2 设计结论由于时间关系,本设计的硬件电路还有需要改进,按键处理,稳定性不高。4.2 仿真结果用PROTUE

18、S软件,根据数字电子钟的原理图,画出仿真图,得到的图如下所示。图5-1 数字钟的PROTES仿真4.3 误差分析时间是一个基本物理量,具有连续、自动流逝、不重复等特性。我国时间基准来自国家授时中心,人们日常使用的时钟就是以一定的精度与该基准保持同步的。结合时间概念和误差理论,可以定义电子钟的走时误差S=S1-S2,S1表示程序实际运行计算所得的秒;S2表示客观时间的标准秒。S0时表示电子钟秒单元数值刷新滞后,即走时误差为“慢”;反之,S0表示秒单元数值的刷新超前,即走时误差为“快”。本次设计的单片机电子钟系统中,其误差主要来源包括晶体频率误差,定时器溢出误差,延迟误差。晶体频率产生震荡,容易产

19、生走时误差;定时器溢出的时间误差,本应这一秒溢出,但却在下一秒溢出,造成走时误差;延迟时间过长或过短,都会造成与基准时间产生偏差,造成走时误差。4.4 设计体会本次做课程设计,从硬件方面说,我认为本次设计的重点在于单片机的最小系统,若单片机的最小系统不能正常工作,那后面一切都免谈;从软件方面说,我编程的思路就是从简单到难,一步一步实现各个功能。这个电子钟的程序重点在于显示程序和中断服务程序的编写,这两个小模块编好了,就很容易了。 在做课程设计的过程中,学到很多东西,比如说做PCB板的技术有了很大的提高,再比如说,自己通过编电子钟的程序,使自己对汇编指令的应用越来越熟练,编程的能力也有了较大提高

20、。在制作电子钟的过程中,遇到的问题都能尝试去自己解决,比如说调试程序,检查线路等等,使自己发现问题、解决问题的能力大大提高。参考文献 1 李广第,朱月秀,冷祖祁.单片机基础M.第三版.北京:航空航天大学出版社,2007.18-152 2 马忠梅,籍顺心,张凯,马岩. 单片机的C语言应用程序设计4.北京:北京航空航天大学出版社,2007.致 谢在本课程设计进行过程中得到吴乐老师的悉心指导,还有很多同学的帮助。吴老师严谨求实的治学态度,踏实坚韧的工作精神,将使我终生受益。在此,谨向老师和帮助我的同学致以诚挚的谢意和崇高的敬意。附 录(一)数字电子钟程序清单#include sbit k0=P10;

21、 sbit ksec=P13; sbit kmin=P12; sbit khour=P11; unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0; unsigned int num=0,sec=0,min=0,hour=0; unsigned char code table10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; void delay(unsigned int); void keyscan(); void display(); main() whi

22、le(k0) P2= 0x7f; P0= 0x0c; delay(135); k0=1; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; ET0=1; EA=1; TR0=1; while(1) display(); if(k0=0) delay(130); k0=1; loop: while(1) display(); keyscan(); if(k0=0) delay(90); k0=1; while(1) display(); if (k0=0) k0=1; delay(190); k0=1; goto loop; voi

23、d delay(unsigned int z) unsigned int x,y; for(x=z;x0;x-) for(y=110;y0;y-);void time0() interrupt 1 num+; TH0=(65536-50000)/256; TL0=(65536-50000)%256; void display() if(num=20) num=0; sec+; if(sec=60) sec=0; min+; if(min=60) min=0; hour+; if(hour=24) hour=0; min=0; sec=0; secge=sec%10; secshi=sec/10

24、; minge=min%10; minshi=min/10; hourge=hour%10; hourshi=hour/10; P2=0xfe; P0=tablesecge; delay(2); P2=0xfd; P0=tablesecshi; delay(2); P2=0xfb; P0=0xbf; delay(2); P2=0xf7; P0=tableminge; delay(2); P2=0xef; P0=tableminshi; delay(2); P2=0xdf; P0=0xbf; delay(2); P2=0xbf; P0=tablehourge; delay(2); P2=0x7f

25、; P0=tablehourshi; delay(2);void keyscan() if(ksec=0) delay(10); if(ksec=0) sec+; if(sec=60) sec=0; while(ksec=0) display(); if(kmin=0) delay(10); if(kmin=0) min+; if(min=60) min=0; while(kmin=0) display(); if(khour=0) delay(10); if(khour=0) hour+; if(hour=24) hour=0; while(khour=0) display(); (二)原理图(三)硬件电路PCB图(四)实物图

copyright@ 2008-2022 冰豆网网站版权所有

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