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

下载本文档

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

文档简介

1、基于单片机的数字时钟设计,小组成员: 航空学院 马创 材料学院 黄鹏 材料学院 张凌,设计简介,控制核心STC90C51单片机 显示器七段式数码管 软件keil编写程序,导入proteus仿真 功能时间显示、按键调时、闹铃定时(待定),系统设计 系统框图,硬件设计 系统仿真电路图,系统硬件组成及其功能 一、电源电路,二、时钟电路,其输入引脚为18(XTA2)、19 (XTAL1).电路有2个电容(C1/C2)其容量约为30pF还有一个晶体振荡器 (1.212mHz)。时钟电路用于产生单片机工作所需要的时钟信号,三、按键电路,单片机引脚默认输出为高电平,当开关按下时引脚与地相连,引脚电平为低电平

2、,单片机采集到低电平做出反应。,四、复位电路,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和

3、的断码 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调节模式变

4、化 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; P

5、3=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 ,/* 中断初始

6、化 */ 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; ,结 论,利用单片机来控制共阴极数码管显示时钟(时、分、秒),并且用三个按键(第一个开关控制调整时和分,第二个按键控

温馨提示

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

评论

0/150

提交评论