资源描述:
《基于单片机的数字时钟设计说明书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、word格式整理版郑州航空工业管理学院单片机课程设计2011届电子信息工程专业班级题目基于单片机的数字时钟设计学号姓名指导教师王丹二О一三年十二月二十八日文档可编辑word格式整理版电子时钟的基本原理该课程设计为数字时钟的设计,以STC89C52为核心,配合数码管显示器和按键提供长期、连续、可靠、稳定的工作环境。该数字电子钟有时分秒显示和日期显示以及时间和日期调整的功能。系统软件设计编程主要实现参数设置,实现键盘、数码管显示器等各模块的功能。设计要求:1、单片机内部的定时器实现时钟功能;2、显示小时、分钟、秒钟;3、后初始时间为12-00-00;4、设定
2、时分秒。单片机的接口信号是数字信号。MAX232是一种把电脑的串行口RS-232信号电平(-10,+10v)转换为单片机所用到的TTL信号点平(0,+5)的芯片。系统硬件设计框图如图2-1所示。图2-1系统硬件设计框图文档可编辑word格式整理版一、电子时钟的硬件设计根据要求,利用DXP2004画出数字时钟的原理图如下所示:图1电子时钟原理图数字时钟是一个将“时”、“分”、“秒”显示的计时装置。它的计时周期为24小时,显示满刻度为23时59分59秒,另外还有校时功能。因此,一个基本的数字钟电路主要由显示器“时”,“分”,“秒”和单片机,还有校时电路组成。
3、8个数码管的段选接到单片机的P0口,位选接到单片机的P2口。显示电路通过三极管驱动,文档可编辑word格式整理版将“时”、“分”、“秒”通过七段显示器显示出来。按键KEY1至KEY6由矩阵电路构成,按KEY1键秒加一,按KEY2键秒减一,按KEY3键分加一,按KEY4键分减一,按KEY5键时加一,按KEY6键时减一。通过手动复位键进行复位,手动复位后的初始时间为12-00-00。表1元件清单表文档可编辑word格式整理版一、电子时钟的软件设计程序流程图如下:开始N24小时到?分清零,时加1NNNYY时单元清零时间显示中断返回一秒时间到?60秒时间到?60
4、分钟到?秒单元加1秒清零,分加1YY文档可编辑word格式整理版开始NYNYNY时加减1显示时间结束秒按键按下?秒加减1分按键按下?分加减1时按键按下?源程序如下:#include#defineucharunsignedchar#defineuintunsignedintucharnum=0,SEC=0,MIN=0,HOUR=12,key;ucharcodetab[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xbf};文档可编辑word格式整理版voiddelayms(ui
5、ntz){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
6、>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++){文档可编辑word格式整理版dig=dig&~BIT(i);//dig
7、=BIT(i);
8、=逻辑或switch(i){case0:seg
9、=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
10、=BIT(i);//dig=dig&~BIT(i)}}voidinit()//初始
11、化函数,做初始化工作的{dig=0xFF;//位选seg=0x00;//段选TM