基于单片机的数字时钟设计课件.ppt
基于单片机的数字时钟设计,设计简介,本设计选择的是以STC90C51单片机为控制核心。配备其他外围电路构成了一个具有时间显示、按键调时、闹铃定时功能的数字时钟。系统采用七段式数码管作为显示器,软件程序采用均采用C语言编写,便于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设计。,系统设计 系统框图,硬件设计 系统仿真电路图,系统硬件组成及其功能一、电源电路,二、时钟电路,其输入引脚为18(XTA2)、19 (XTAL1).电路有2个电容(C1/C2)其容量约为30pF还有一个晶体振荡器 (1.212mHz)。时钟电路用于产生单片机工作所需要的时钟信号,三、按键电路,单片机引脚默认输出为高电平,当开关按下时引脚与地相连,引脚电平为低电平,单片机采集到低电平做出反应。,四、复位电路,a、上电复位,b、按键复位,五、显示电路,六、报时电路,74HC573,OE:三态允许控制端低电平有效LE :数据锁存使能,1D8D为数据输入端1Q8Q为数据输出端功能:芯片74HC573是8位三态锁存器.可锁存地址,数据,可作缓冲器用。在本设计中采用74HC573提高对数码管的驱动能力。,软件设计一、主程序流程图,二、按键程序流程图,三、程序及其功能,#include unsigned char Seg=0X3f,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07,0X7f,0X6f,0 x40;/数码管显示1-9和的断码unsigned char Com=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f,0 xff; /数码管亮灭的数组/*定义全局变量*/unsigned int counter=0; /定义计数数据unsigned char mode; /定义模式unsigned char second=0,minute=0,hour=0; /定义秒分时的初值unsigned char ADD_bit=0,DEC_bit=0,flag=0; /加标志位和减标志位赋初值0,,/* 定义按键*/,sbit ms=P10; /按键P0调节模式变化sbit ADD=P11; /按键P11实现加一sbit DEC=P12; /按键P12实现减一sbit SPK=P17; /按键P17实现报时,/*延时函数*/void delay(unsigned int t) while(t-);,/*数码管扫描*/void Segplay() P0=Segsecond%10; P3=Com7;delay(100);P3=Com8; P0=Segsecond/10; P3=Com6;delay(100);P3=Com8; P0=Seg10; P3=Com5;delay(100);P3=Com8; P0=Segminute%10; P3=Com4;delay(100);P3=Com8; P0=Segminute/10; P3=Com3;delay(100);P3=Com8; P0=Seg10; P3=Com2;delay(100);P3=Com8; P0=Seghour%10; P3=Com1;delay(100);P3=Com8; P0=Seghour/10; P3=Com0;delay(100);P3=Com8; ,/*按键扫描*/void Keyget() /通过标志位来控制模式 if(ms=0)flag=1; if(ms),/*报时扫描*/void didi() if(second=0 ,/*中断初始化*/void time0() TMOD=0 x01; /设置定时器模式1 TH0=(65536-50000)/256; /高八位赋初值 TL0=(65536-50000)%256; /低八位赋初值 TR0=1; /启动定时器0计数 ET0=1; /使能定时器中断 EA=1; /使能总中断 ,/*主函数*/void main() time0(); while(1) Keyget(); /加减控制 Segplay(); /数码管显示 didi(); /报时控制 ,/*中断服务程序*/void timer0() interrupt 1 TH0=(65536-50000)/256; /高八位赋初值 TL0=(65536-50000)%256; /低八位赋初值 counter+; if(counter=20) counter=0;second+; if(second=60) second=0;minute+; /秒进位 if(minute=60) minute=0;hour+; /分进位 if(hour=24) hour=0; ,结 论,利用单片机来控制共阴极数码管显示时钟(时、分、秒),并且用三个按键(第一个开关控制调整时和分,第二个按键控制时或分的加一,第三个按键控制时或分的减一),同时用蜂鸣器来产生整点报时的功能。从而进一步加强了对单片机的认识和了解,和对数码管的结构进行更深一步的认识。利用单片机仿真软件初步实现了可调数字钟整点报时电路的功能。,