单片机数字时钟资料汇总
static char LED[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char hour,minute,second; unsigned int C100us; //100us 计数单元 unsigned int M,H,key,J=1,K=1,KK=1,MO,DA,YE,M1=61,H1=25,M2=61,H2=25; ////////////////////////////////////////////////////////////////////////// void wait(unsigned int i) {unsigned int j; for(j=0;j<i;j++); } //////////////////////////////////////////////////// anniu() {key++; wait(2000); } //////////////////////////////////////////////////// void displayled(void) {unsigned char i; for(i=0;i<8;i++) {P0=LEDXS[i]; P2=LEDWEI[i]; wait(100); } } //////////////////////////////////////////////////// void date(void) {unsigned int s; LEDXS[0]=LED[2]; LEDXS[1]=LED[0]; LEDXS[2]=LED[0]; LEDXS[3]=(LED[YE]-0x80); LEDXS[4]=LED[MO/10]; LEDXS[5]=(LED[MO%10]-0x80); LEDXS[6]=LED[DA/10]; LEDXS[7]=LED[DA%10]; s=10; while(s) {s--; displayled(); } } //////////////////////////////////////////////////// void LEDTS(void) {unsigned int q=0,a,b,c,w,s,x,y; if((a1==0)&&(key==1)){q=1;} // 调时函数 // 日期函数 // 显示函数 // 按钮函数 //延时函数
if((q==1)&&(key!=3)) {M++; if(M==60){M=0;H++;} if(H==24){H=0;} } if((a2==0)&&(key==1)){x=1;} if((x==1)&&(key!=3)) {M--; if(M==0){M=59;} } if((a1==0)&&(key==2)){w=1;} if((w==1)&&(key!=3)) {H++; if(H==24){H=0;} } if((a2==0)&&(key==2)){y=1;} if((y==1)&&(key!=3)) {H--; if(H==0){H=23;} if(a4==0){key=1;} } if(a1==1){q=0;w=0;} if(a2==1){x=0;y=0;} LEDXS[0]=LED[H/10]; LEDXS[1]=LED[H%10]; LEDXS[2]=0xbf; LEDXS[3]=LED[M/10]; LEDXS[4]=LED[M%10]; LEDXS[5]=0xbf; LEDXS[6]=LED[0]; LEDXS[7]=LED[0]; if(key==5){a=1;} while(a) {date(); if(a1==0){DA++;if(DA==32){DA=0;}} if(a2==0){DA--;if(DA==0){DA=31;}} if(key!=5){a=0;} if(a0==0){anniu();} } if(key==6){b=1;} while(b) {date(); if(a1==0){MO++;if(MO==13){MO=0;}} if(a2==0){MO--;if(MO==0){MO=12;}}
四、系统总体结构
电路图
工作原理:利用单片机 89S52 作为本系统的中控模块。电路设 有四个按键,一个为功能选择开关,能够选择调节时间、日期、第一 个闹钟、第二个闹钟;第二个为“加”按钮,能够实现数字的累加; 第三个为 “减” 按钮, 能够实现数字的递减; 第四个为确定选择开关。 电路程序取用单片机内部其中一个定时中断系统作为基准秒频, 这样 能够使 CPU 达到最大利用。功能调节时显示电路仍然能够达到同步 显示。 当调节的闹钟时间与时钟显示的时间相等时, 声光报警电路动 作,取用 LM386 能够放大单片机输出的音频信号,推动扬声器发出 乐耳的音乐;利用 80 只不同颜色的发光二极管排列成奥运五环,在 单片机的驱动下能够以不同方式闪烁发光,使人耳目一新。
单片机数字时钟
一、总体概述 摘 要
本设计采用 89S52 系列单片机作为时钟的控制核心, 电路使用了 八个数码管作为时钟显示, 用计数器中断程序作为了一秒钟的精确计 数,并用按钮实现了调闹钟时间和时钟时间的校对功能。 关键词:单片机、控制、显示、调时。
Abstract
This design's adopting a single slice of the 89 S52 serieses machine is the control core of the clock, the electric circuit used eight piece code tubes as the clock manifestations, The precision that used to count the machine interruption procedure conduct and actions for a second count, counteracting a button to carry out to adjust check of the alarm clock time and the clock time function.
方案一: 十六个数码管显示, 这样可以把时钟时间和日期分开显 示,直观性很强,但是资源比较浪费。 方案二:八个数码管显示,用按键实现对时钟和日期的显示,因 为在实际生活中我们对日期显示的需求并不在每时每刻, 所以大可在 需要时再显示。这样就减少了八个数码管的占用空间和成本。 综上理论分析,拟选择了第二种方案。 (3)数码管与单片机的接口选择 方案一:用 74138 和 7447 集成芯片连接,对输出端口进行扩展, 这样可以减少输出端口,但在时钟电路中所需控制的输出设备不多, 用这种方案会使外围电路复杂,而且一些 P 口闲置浪费。 方案二:直接与端口连接,使得外围电路直观简单,在编程序时 也会显得简单明了。 基于上述考虑,拟采用方案二。
4、调试按键模块
方案一:使用键盘控制,它的效果比较直观,能直接根据需要按 键,直接得出所需的数值,而且对程序的要求也不需很大,但使用的 按钮量较多,占的空间也较大,而且实际实用性不强。 方案二: 采用独立式按键电路, 每个键单独占有一根 I/O 接口线, 每个 I/O 口的工作状态互不影响,此类键盘采用端口直接扫描方式。 缺点是当按键较多时占用单片机的 I/O 数目较多, 优点是电路设计简 单, 且编程极其容易。 考虑到时钟控制在实际使用时的资源量并不大, 使用按钮控制可以大大减少按键的使用量。
2、主控制器模块
主控制器的选择对电路功能的实现尤为重要 方案一: 单片机和数字芯片结合使用, 这样的好处是能减少单片 机的工作量, 使电路不单纯的只依赖于单片机工作, 但是如果使用数 字芯片, 就有点违背题目初忠, 单片机的功能也不能直观的显现出来。 而且相对来说成本要高。电路也不够简略。
方案二: 单独使用单片机控制, 它的好处是外围电路比较简单直 观,所有的控制都只需用软件程序来实现,对于单片机来说,时钟程 序远不够它自身的承受量, 所以只要程序编的合理, 就能比较方便的 实现。 基于上述理论分析,拟选择方案二。
综上理论分析,由于该系统采用了常规钟表式的校对方式,用键较 少,系统资源足够用,拟选择了第二种方案作为调时电路的实现。
5、电源模块
方案一:取用单片三端稳压集成 7805,电路简单、稳定可靠, 且成本低,稳压效果好。
6、闹钟声光报警模块
方案一:取用蜂鸣器和数只发光二极管组成,电路简单,单片机 编程容易,调试简单,但电路的可观性与娱乐性不高。 方案二: 取用单片机编程音乐输出, 数十只不同颜色的发光二极 管排列成不同的图形, 利用单片机编程控制发光管作不同的闪烁, 可 观性与娱乐性都大大提高,又能突出单片机在多功能控制的特点。
三、方案选择与论证
根据题目要求, 电路总共可分为以下几个基本模块, 对于各个模 块的实现,有以下一些设计方案,均进行了可行性分析,最终选择了 最实际可行的方案。 软件部分:
1、 计时控制方案
方案一:使用专用时钟芯片。 使用微控制器控制专用时钟芯片实现计时控制, 这种方案有着计时精 度高、控制简单的优点,而且更易于实现日期/时间显示、定时烹调 等计时扩展功能。 方案二:采用 MCU 内部定时器。 AT89S52 内部含有 2 个定时器, 可以利用一个定时器与程序计数器相 结合的方式,在系统晶振的驱动下,产生标准时钟频率。 由于方案二具有较好的灵活性、 较少的电路器件和较高的性价比, 而 且通过精确的软件补偿使精度完全可以满足控制需要, 所以我们选择 该方案完成设计。
2、显示电路
图 12 电源电路设计
1
采用八只共阳数码管作为时钟电路的显示。 数码管的 a~h 分别并 联在一起,由单片机的 P0 口控制,每只数码管的共阳极分别接一只 PNP 三极管驱动,三极管具有电流放大作用。