简易秒表时钟的设计_第1页
简易秒表时钟的设计_第2页
简易秒表时钟的设计_第3页
简易秒表时钟的设计_第4页
简易秒表时钟的设计_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※2009级学生单片机课程设计单片机课程设计报告书课题名称简易时钟/秒表计时器姓名董天奇学号2009010545院、系、部物理与电子科学系专业电子信息科学与技术指导教师丁雷2011年12月12日一、设计任务及要求:设计任务:1、用6位LED数码管显示时、分、秒,以24h〔小时〕计时方式显示;显示格式为:13.:25:15或自行设计显示格式。2、通过按键进展时钟/秒表功能的转换,时钟计时每1s进展加1操作,秒表计时每10ms进展加1操作。3、按键实现计时启动、暂停及清零功能。要求:指导教师签名:年月日二、指导教师评语:指导教师签名:年月日三、成绩指导教师签名:年月日目录一、引言………………………31.1秒表概述………………31.2设计任务………………31.3系统主要功能…………3二、系统的硬件设计…………52.1秒表时钟计时器的硬件电路…………52.2电路原理图……………62.3AT89C2052单片机及其引脚说明……………………6三、系统软件设计……………93.1秒表时钟计时器主程序………………93.2秒表时钟计时器显示子程序…………93.3定时器中断效劳程序…………………103.4调时功能程序…………103.5秒表时钟功能程序……………………10四、控制源程序………………11五、简易秒表时钟仿真………………………11六、完毕语……………………19七、参考文献…………………19引言1.1秒表概述秒表是电器制造,电国,工业自动化控制、国防、实验室及科研单位理想的计时仪器,它广泛应用于各种继电器、电磁开关,控制器、廷时器、定时器等的时间测试。目前所使用的电秒表大多是指针式或集成电路型的,构造相对复杂、测试功能单一。本仪器还具有实时时钟、手动计时的功能。1.2本设计任务1、以24h〔小时〕计时方式,显示格式为:13-25-152、用八位LED数码管显示时、分、秒3、使用按键开关可实现时分调整4、使用按键开关可实现时分秒表/时钟功能转换通过按键进展时钟/秒表功能的转换,时钟计时每1s进展加1操作,秒表计时每10ms进展加1操作。按键实现计时启动、暂停及清零功能。省电模式1.3系统主要功能1.3.1时钟功能对于时钟功能,需要在数码管上显示小时、分钟和秒钟,因此,可以在内部存储空间分别定义它们的显示缓存空间,来存放小时、分钟和秒钟的BCD码,各2个字节。由于时钟是不能停顿的,因此需要采用内部定时器自动计时,并使用定时器中断处理程序来定时进展时间数值的刷新。52单片机的2个定时器都具有16位定时器的工作模式。当晶振为12MHz时,16位定时器的最大定时值为65.536mS;要到达1秒钟,可以采用两种方法:采用一个定时器定时与软件计数相结合的方法;或者采用两个定时器级联的方法。由于秒表在计时功能时也需要用到1个定时器,因此,我们采用第一个方法,只使用1个定时器,例如使用T0。为了到达较为准确的计时,使T0的溢出时间为50ms,使用一个字节作为软件计数器ST,计数值为20。定时器的中断处理程序对ST进展减1操作,当ST为0时,1秒到达,此时更新存放小时、分钟、秒钟的显示缓存区。1.3.2计时功能当秒表用作计时功能时,也需要一个定时器进展10MS的定时,在本例中使用单片机的TIMER1。在TIMER1的中断处理程序中对SS和ss的缓存空间进展更新,与上面类似。1.3.3功能按键再看按键的处理。可以采用查询的方法来识别。对于A键,主要功能在于功能切换。对于B键,主要功能是时钟的时分秒调整的转换和秒表的启动和暂停,对于C、D键用于秒表的复位和调整。1.3.4中断嵌套和控制现在在我的方案中有2个中断,T0、T1中断。这3个中断的特点是:T0的工作是连续的,可以在误差*围内可以被打断但不可以停顿。系统硬件设计2.1秒表/时钟计时器的硬件电路秒表/时钟计时器的硬件电路如下图,采用AT89C52单片机,最小化应用设计;采用共阳七段LED显示器,P0口输出段码数据,P2.0-P2.5口作列扫描输出,P1.0、P1.1、P1.2口接三个按钮开关,用以调时及功能设置。为了提供共阳LED数码管的驱动电压,用三极管8550作电源驱动输出。采用12M晶振,有利于提高秒计时的准确性。六位LED显示器六位LED显示器列驱动AT89C52P0单片机控制器P2图2.1硬件系统的总体设计框架P3口引脚特殊功能P3.0R*D〔串行输入口〕P3.1T*D〔串行输出口〕P3.2〔外部中断0〕P3.3〔外部中断1〕P3.4T0〔定时器0外部输入〕P3.5T1〔定时器1外部输入〕图2.2P3口特殊功能2.2电路原理图设计

电路原理图设计最根本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。

设计电路原理图:图2.3电路原理图2.3AT89C52单片机及其引脚说明AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器〔RAM〕,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。图2.4AT89C52芯片AT89C52有40个引脚,32个外部双向输入/输出〔I/O〕端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进展编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。主要功能特性:•兼容MCS51指令系统 •8k可反复擦写(>1000次〕FlashROM•32个双向I/O口 •256*8bit内部RAM•3个16位可编程定时/计数器中断 •时钟频率0-24MHz•2个串行中断 •可编程UART串行通道•2个外部中断源 •共6个中断源•2个读写中断口线•3级加密位•低功耗空闲和掉电模式 •软件设置睡眠和唤醒功能3、系统程序的设计3.1主程序本设计中,计时采用定时器T0中断完成,其余状态循环调用显示子程序,当端口开关按下时,转入相应功能程序。其主程序执行流程见下列图nnyy调用显示子程序开场显示单元清0T0,T1设为16位计数器模式允许T0中断进入功能程序键按下.调用整点报时图3.13.2显示子程序数码管显示的数据存放在内存单元70H-75H中。其中70H-71H存放秒数据,72H-73H存放分数据,74H-75H存放时数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,先取出70H-75H*一地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。为了显示小数点及“-〞、“A〞等特殊字符,在显示班级及计时时采用不同的显示子程序。3.3定时器T0、T1中断效劳程序定时器TO、T1用于时间计时,定时溢出中断周期可分别设为50ms和10ms.中断进入后,现判断是时钟计时还是秒表计时,时钟计时累计中断20次〔即1s〕时,对秒计数单元进展加1操作,秒表计时每10ms进展加1操作。在计数单元中采用十进制BCD码计数,满60〔秒表功能时有100〕进位,T0中断效劳程序执行流程见下列图图3.2定时器T0、T1溢出周期为50ms(10ms),T0为秒计数用,T1为调整时闪烁用;P1.0,P1.1,P1.2为调整按钮,P0口为字符输出口,采用共阳显示管。3.4调时功能程序调时功能程序的设计方法时:按下P3.1口按键,时钟进入调秒状态,等待操作,此时计时器停顿走动。再按下P3.2、P3.3按钮时,则时间加一或减一秒;假设再按下P3.1,则进入分钟调整状态,分钟小时调整如上。再按P3.1进入小时调整,再按此键退出调整状态,时钟继续走动。3.5时钟/秒表功能程序在正常计时状态下,假设按下P3.0口按键,则进展时钟/秒表功能的转换,转换后计时从开场。当按下P3.1口的按键时,可实现计时启动、暂停功能。按P3.2可实现清零。4、控制源程序清单*include"reg52.h"*defineuintunsignedint*defineucharunsignedcharsbitkey1=P3^1;sbitkey2=P3^2;sbitkey3=P3^3;sbitkey4=P3^0;uintaa,bb;uintcount,count1,count2,count3,countkey,count11,count22,count33,countkey1;uintcount4=10;uchartable[]={0*3F,0*06,0*5B,0*4F,0*66,0*6D,0*7D,0*07,0*7F,0*6F,};voiddelay(uintz){ uint*,y; for(*=z;*>0;*--) for(y=110;y>0;y--);}voidkeyscan1(){if(key4==0){delay(5);if(key4==0){while(!key4);count++;if(count==3){ count=0;}}}if(count==1){if(key2==0){count11=0;count22=0;count33=0;}if(key1==0){delay(5);if(key1==0){while(!key1);countkey1++;if(countkey1==2){ countkey1=0;}}}if(countkey1==1){TR1=1;}if(countkey1==0)TR1=0;}if(count==0){if(key1==0){delay(5);if(key1==0){while(!key1);TR0=0;countkey++;if(countkey==4){TR0=1; countkey=0;}}}if(countkey==1){if(key2==0){delay(5);if(key2==0){while(!key2);count1++;}}if(key3==0){delay(5);if(key3==0){while(!key3);count1--;}}}if(countkey==2){if(key2==0){delay(15);if(key2==0){while(!key2);count2++;}}if(key3==0){delay(15);if(key3==0){while(!key3);count2--;}}}if(countkey==3){if(!key2){delay(5);if(!key2){while(!key2);count3++;if(count3==24)count3=0;}}if(!key3){delay(5);if(!key3){while(!key3);count3--;if(count3==0)count3=24;}}}if(count4==0){if(!key2){delay(5);if(!key2){while(!key2);count4++;}}if(!key3){delay(5);if(!key3){while(!key3);count4--;}}}}}/*voidkeyscan(){ if(key1==0) { delay(10); if(key1==0) {TR0=0; while(!key); delay(10); while(!key); if(key2==0) { delay(key2==0); if(key2==0) { } } } }}*/voiddisplay(uintsecond1,uintsecond10,uintminute1,uintminute10,uinthour1,uinthour10){ P1=table[hour10]; P2=0*fe;delay(1); P2=0*ff; P1=table[hour1]; P2=0*fd; delay(1); P2=0*ff; P1=0*40; P2=0*fb; delay(1); P2=0*ff; P1=table[minute10]; P2=0*f7; delay(1); P2=0*ff; P1=table[minute1]; P2=0*ef; delay(1); P2=0*ff; P1=0*40; P2=0*df; delay(1); P2=0*ff; P1=table[second10]; P2=0*bf; delay(1); P2=0*ff; P1=table[second1]; P2=0*7f; delay(1); P2=0*ff;}voidtime0()interrupt1{TH0=(65536-40000)/256;TL0=(65536-40000)%256;bb++; if(bb==20) { bb=0; count1++; } if(count1==60) { count1=0; count2++; } if(count2==60) { count2=0; count3++; } if(count3==24) { count3=0; }}voidtime1()interrupt3{TH1=(65536-400)/256;TL1=(65536-400)%256;aa++; if(aa==20) { aa=0; count11++; } if(count11==100) { count11=0; count22++; } if(count22==60) { count22=0; count33++; } if(count33==60) { count33=0; }}voidmain(){key1=1;key2=1;key3=1;key4=1;TMOD=0*11;TH0=(65536-40000)/256;TL0=(65536-40000)%256;TH1=(65536-400)/256;TL1=(65536-400)%256;EA=1;ET1=1;ET0=1;TR0=1; while(1) {keyscan1(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论