收藏 分销(赏)

电子时钟技术文档.doc

上传人:仙人****88 文档编号:12012679 上传时间:2025-08-27 格式:DOC 页数:13 大小:2.06MB 下载积分:10 金币
下载 相关 举报
电子时钟技术文档.doc_第1页
第1页 / 共13页
电子时钟技术文档.doc_第2页
第2页 / 共13页


点击查看更多>>
资源描述
科协技术文档 题目:电子时钟 学院:自动化与信息工程学院 组员:何明杰 目录 摘要 3 1.系统方案选择和论证 4 1.1 系统基本方案 4 1.2 各模块方案选择和论证 4 1.2.1控制器选择方案 4 1.2.2电源方案 4 1.2.3闹钟方案 5 1.2.4显示模块方案 5 2.系统的电路设计与实现 5 2.1系统硬件的基本组成部分 5 2.2主要单元电路的设计 6 1.2.1最小系统设计 6 1.2.2数码管显示设计 6 1.2.3键盘控制设计 7 2.3系统电路总设计 8 3.程序源代码 9 参考文献 12 电子时钟 作者:何 明 杰 摘要 该作品是基于stc89c52设计的有按键调节时间、设置或取消闹钟的多功能电子时钟。显示模块通过数码管实现;调时功能通过按键开关实现;闹钟通过蜂鸣器的鸣响实现;另有复位按键和4.5v干电池供电。所有功能基于c语言程序对c52单片机进行控制。 关键字: 电子闹钟 89c52 蜂鸣器 数码管 1. 系统方案选择和论证 1.1系统基本方案 该作品以89c52单片机为控制芯片,通过对芯片外部中断定时的控制:给中断寄存器赋初值,当中断溢出时进行计时操作,将时间值通过8位数码管动态显示出来。 1.2各模块方案选择和论证 1.21控制器选择方案 本系统的核心问题是通过何种芯片、什么程序控制硬件的各种功能。 方案一 采用ATmage16芯片,通过程序启用该芯片的中断功能,给中断寄存器赋初值,当中断溢出时进行计时操作,将时间值通过8位数码管动态显示出来从而实现。 方案二 采用STC89C52芯片,通过程序启用该芯片的外部中断功能,给中断寄存器赋初值,当中断溢出时进行计时操作,60秒进1分,60分进1时,将时间值通过8位数码管动态显示出来从而实现。 考虑到方案二程序易于编写,故采用方案二。 1.22电源选择方案 工作电压3-6v,本作品对电压稳定性要求不高,故用三节5号电池或usb接口供电皆可。 1.23闹钟模块方案 方案一 采用喇叭作为闹钟的鸣响器。 方案二 采用蜂鸣器作为闹钟的鸣响器。 考虑到功耗问题和硬件体积大小,采用方案二。 1.24显示模块方案 方案一 采用1602液晶显示时间。 方案二 采用8位共阴数码管显示时间。 考虑到1602程序复杂、功耗大、价格高,故采用8位共阴数码管显示时间。 2. 系统的电路设计与实现 2.1系统硬件的基本组成部分 4.5v干电池 微控制器 Stc89c52 蜂鸣器 按键 8位数码管 2.2主要单元电路的设计 2.21最小系统设计 单片机的最小系统是由电源、复位、晶振、/EA=1组成。 电源引脚 Vcc 40 电源端 GND 20 接地端 2.22数码管显示电路 数码管显示器是现在最常用的显示器之一,如下图所示。 显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第三个和第四个数码管,秒的十位和个位分别显示在第五个和第六个数码管,采用动态扫描的方法进行显示,其硬件连接方式如下图所示。 数码管的硬件连接示意图 数码管使用条件: 2.23 键盘控制电路 该设计需要校对时间,所以用三个按键来实现。按khour来调节小时的时间,按 kmin来调节分针的时间,按 ksec来调节秒的时间。下图是按键硬件连接图。 2.3系统总设计电路 八位数码管 3. 程序源代码 #include<reg52.h> #include<math.h> sbit feng=P1^0; sbit ksec=P3^7;//调节秒的按键3.7 sbit kmin=P3^6;//调分 sbit khour=P3^5;//调时 sbit nao=P3^4;//闹钟设置键 int p,q,m; char z; void naozhong1(); unsigned char secshi=0,secge=0,minshi=0,minge=0,hourshi=0,hourge=0; unsigned int num=0,sec=0,min=0,hour=12; unsigned char code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(unsigned int); void time0(); void display();//时间显示程序 void keyscan(); void main() {TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1; while(1) { bbb:keyscan(); display(); if(nao==0) { delay(10); if(nao==0) {z=1; p=(10*hourshi+hourge); q=(10*minshi+minge); m=10*secshi+secge-1; } } if((p==(10*hourshi+hourge))&&(q==(10*minshi+minge))&&(m==10*secshi+secge)&&(z==1)) goto aaa; } aaa:naozhong1(); goto bbb; } void delay(unsigned int z) {unsigned int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--);} void time0() interrupt 1 {num++; TH0=(65536-46034)/256; TL0=(65536-46034)%256; } void display() { if(num==20) {num=0; sec++; if(sec==60) {sec=0; min++; if(min==60) {min=0; hour++; if(hour==24) {hour=0; min=0; sec=0; } } } } secge=sec%10; secshi=sec/10; minge=min%10; minshi=min/10; hourge=hour%10; hourshi=hour/10; P2=0x7f; P0=table[secge]; delay(1); P2=0xbf; P0=table[secshi]; delay(1); P2=0xdf; P0=0x40; delay(1); P2=0xff;//消隐 P2=0xef; P0=table[minge]; delay(1); P2=0xff;//消隐 P2=0xf7; P0=table[minshi]; delay(1); P2=0xff;//消隐 P2=0xfb; P0=0x40; delay(1); P2=0xff;//消隐 P2=0xfd; P0=table[hourge]; delay(1); P2=0xff;//消隐 P2=0xfe; P0=table[hourshi]; delay(1); P2=0xff;//消隐} void keyscan() {if(ksec==0) {delay(10); if(ksec==0) {sec+=2; feng=1; if(sec>=60) sec=0; } while(ksec==0) display(); } if(kmin==0) {delay(10); if(kmin==0) {min++; if(min>=60) min=0; } while(kmin==0) display(); } if(khour==0) {delay(10); if(khour==0) {hour++; if(hour>=24) hour=0; } while(khour==0) display(); } } void naozhong1() {char x; feng=0; z=0;} 参考文献 l 《C程序设计》清华大学出版社 第三版 l 《例说51单片机(C语言版)》人民邮电出版社 - 13 -
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服