基于单片机的数字时钟设计_第1页
基于单片机的数字时钟设计_第2页
基于单片机的数字时钟设计_第3页
基于单片机的数字时钟设计_第4页
基于单片机的数字时钟设计_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

郑州航空工业管理学院单片机课程设计2011届电子信息工程专业班级题目基于单片机的数字时钟设计学号姓名指导教师王丹二О一三年十二月二十八日

电子时钟的基本原理该课程设计为数字时钟的设计,以STC89C52为核心,配合数码管显示器和按键提供长期、连续、可靠、稳定的工作环境。该数字电子钟有时分秒显示和日期显示以及时间和日期调整的功能。系统软件设计编程主要实现参数设置,实现键盘、数码管显示器等各模块的功能。设计要求:1、单片机内部的定时器实现时钟功能;2、显示小时、分钟、秒钟;3、后初始时间为12-00-00;4、设定时分秒。单片机的接口信号是数字信号。MAX232是一种把电脑的串行口RS-232信号电平(-10,+10v)转换为单片机所用到的TTL信号点平(0,+5)的芯片。系统硬件设计框图如图2-1所示。图2-1系统硬件设计框图电子时钟的硬件设计根据要求,利用DXP2004画出数字时钟的原理图如下所示:图1电子时钟原理图数字时钟是一个将“时”、“分”、“秒”显示的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。显示电路通过三极管驱动,将“时”、“分”、“秒”通过七段显示器显示出来。按键KEY1至KEY6由矩阵电路构成,按KEY1键秒加一,按KEY2键秒减一,按KEY3键分加一,按KEY4键分减一,按KEY5键时加一,按KEY6键时减一。通过手动复位键进行复位,手动复位后的初始时间为12-00-00。表1元件清单表电子时钟的软件设计程序流程图如下:开始开始NN24小时到?分清零,时加1NNNYY时单元清零时间显示中断返回一秒时间到?60秒时间到?60分钟到?秒单元加1秒清零,分加1YY开始开始NNYNYNY时加减1显示时间结束秒按键按下?秒加减1分按键按下?分加减1时按键按下?源程序如下:#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharnum=0,SEC=0,MIN=0,HOUR=12,key;ucharcodetab[]={0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,0x80,0x90,0xbf};voiddelayms(uintz){ uintx,y; for(x=z;x>0;x--) for(y=110;y>0;y--);}/*********************************函数名:keyscan()功能描述:矩阵键盘扫描*********************************/voidkeyscan()//矩阵键盘扫描函数{ucharx,y;P3=0xf0; if(P3!=0xf0) { delayms(10); if(P3!=0xf0) { switch(key) { case0x7e:key=1;SEC++; break; case0x7d:key=2;if(SEC>0)SEC--; break; case0x7b:key=3;MIN++; break; case0x77:key=4;if(MIN>0)MIN--; break; case0xbe:key=5;HOUR++; break; case0xbd:key=6;if(HOUR>0)HOUR--; break; default:key=100; break; } } }}voiddisplay(void){ uchari; for(i=0;i<8;i++) { dig=dig&~BIT(i); //dig|=BIT(i);|=逻辑或 switch(i) { case0: seg=tab[SEC%10]; break; case1: seg=tab[SEC/10]; break; case2: seg=tab[10]; break; case3: seg=tab[MIN%10]; break; case4: seg=tab[MIN/10]; break; case5: seg=tab[10]; break; case6: seg=tab[HOUR%10]; break; case7: seg=tab[HOUR/10]; break; default: break; } delayms(3); dig|=BIT(i); //dig=dig&~BIT(i) }}voidinit() //初始化函数,做初始化工作的{ dig=0xFF;//位选 seg=0x00;//段选 TMOD|=0X01;//定时器0方式1 IE|=0X82;//EA=1,T0=1 TCON|=0X10;//定时器控制寄存器TR0=1}voidmain(){ init();//初始化子程序 while(1) { keyscan(); if(SEC==60) { SEC=0; MIN++; } if(MIN==60) { MIN=0; HOUR++; } if(HOUR==24) { HOUR=0; } display(); }}voidT0_time()interrupt1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; if(num==20)//50ms*20=1s { num=0; SEC++; if(SEC==60) { SEC=0; MIN++; if(MIN==60) { MIN=0; HOUR++; if(HOUR==24) { HOUR=0; } } } }}课程设计总结这次课程设计为使我得到了很大收获:不仅学到了许多了关于单片机方面的知识,熟悉了与单片机相关的两款软件KEIL和STC-ISPV35,提高了实验技能;而且也使我的动手能力和电路设计能力得到了极大的提高。在此次设计中,我的难点是程序的调试,由于以前仅仅学了一点皮毛,所以编一个完整的程序很是吃力!但是经过这一段时间的学习,我还是解决了一些问题。软件调

温馨提示

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

评论

0/150

提交评论