《基于单片机的数字时钟设计课件》由会员分享,可在线阅读,更多相关《基于单片机的数字时钟设计课件(23页珍藏版)》请在金锄头文库上搜索。
1、 基于单片机的数字时钟设计设计简介 本设计选择的是以本设计选择的是以STC90C51单片机为控制核单片机为控制核心。配备其他外围电路构成了一个具有时间显示、心。配备其他外围电路构成了一个具有时间显示、按键调时、闹铃定时功能的数字时钟。系统采用按键调时、闹铃定时功能的数字时钟。系统采用七七段式数码管段式数码管作为显示器,软件程序采用均采用作为显示器,软件程序采用均采用C语语言编写,便于移植与升级。报告详细介绍了整个系言编写,便于移植与升级。报告详细介绍了整个系统的硬件组成结构、工作原理和系统的软件程序设统的硬件组成结构、工作原理和系统的软件程序设计。计。 系统设计 系统框图系统框图报时电路 单片
2、机 电源电路 时钟电路复位电路显示电路控制电路硬件设计 系统仿真电路图系统仿真电路图系统硬件组成及其功能一、电源电路一、电源电路二、时钟电路二、时钟电路其输入引脚为18(XTA2)、19(XTAL1).电路有2个电容(C1/C2)其容量约为30pF还有一个晶体振荡器(1.212mHz)。时钟电路用于产生单片机工作所需要的时钟信号三、按键电路三、按键电路 单片机引脚默认输出为高电平,当开关按下时引脚与地相连,引脚电平为低电平,单片机采集到低电平做出反应。四、复位电路四、复位电路a a、上电复位、上电复位b b、按键复位、按键复位五、显示电路五、显示电路六、报时电路六、报时电路74HC573OE:
3、三态允许控制端低电平有效LE :数据锁存使能,1D8D为数据输入端1Q8Q为数据输出端功能:芯片74HC573是8位三态锁存器.可锁存地址,数据,可作缓冲器用。在本设计中采用74HC573提高对数码管的驱动能力。软件设计一、主程序流程图一、主程序流程图二、按键程序流程图二、按键程序流程图三、程序及其功能三、程序及其功能#include unsigned char Seg=0X3f,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07,0X7f,0X6f,0x40;/数码管显示1-9和的断码unsigned char Com=0xfe,0xfd,0xfb,0xf7,0xef,0x
4、df,0xbf,0x7f,0xff; /数码管亮灭的数组/*定义全局变量*/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; /按键P1
5、7实现报时 /*延时函数*/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=Seg1
6、0; 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)&(flag) flag=0;mode+;if(mode=3) mode=0; if(mode=1) if(ADD=0) ADD_bit=1; /加按键 if(ADD)&(ADD_bit) ADD_bit=0;minute+;if(minute=60)m
7、inute=0; if(DEC=0) DEC_bit=1; /减按键 if(DEC)&(DEC_bit=1) DEC_bit=0;if(minute=0)minute=60;minute-; if(mode=2) if(ADD=0)ADD_bit=1; if(ADD)&(ADD_bit) ADD_bit=0;hour+;if(hour=24) hour=0; if(DEC=0) DEC_bit=1; if(DEC)&(DEC_bit=1) DEC_bit=0;if(hour=0)hour=24;hour-;/*报时扫描*/void didi() if(second=0&minute=0) SP
8、K=1; delay(20); SPK=0; /*中断初始化*/void time0() TMOD=0x01; /设置定时器模式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=(
9、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; 结 论利用单片机来控制共阴极数码管显示时钟(时、利用单片机来控制共阴极数码管显示时钟(时、分、秒),并且用三个按键(第一个开关控制调分、秒),并且用三个按键(第一个开关控制调整时和分,第二个按键控制时或分的加一,第三整时和分,第二个按键控制时或分的加一,第三个按键控制时或分的减一),同时用蜂鸣器来产个按键控制时或分的减一),同时用蜂鸣器来产生整点报时的功能。从而进一步加强了对单片机生整点报时的功能。从而进一步加强了对单片机的认识和了解,和对数码管的结构进行更深一步的认识和了解,和对数码管的结构进行更深一步的认识。利用单片机仿真软件初步实现了可调数的认识。利用单片机仿真软件初步实现了可调数字钟整点报时电路的功能。字钟整点报时电路的功能。