基于DS1302的多功能数字钟_第1页
基于DS1302的多功能数字钟_第2页
基于DS1302的多功能数字钟_第3页
基于DS1302的多功能数字钟_第4页
基于DS1302的多功能数字钟_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、多功能数字钟一、 多功能数字钟硬件电路简介该数字钟是一款基于STC89C52单片机控制的多功能数字钟,利用串行时钟芯片DS1302进行精确计时,并有纽扣电池作为其备用电源,保证在单片机系统掉电后,时间依然准确无误。使用LED数码管作为显示器件,设计简单可靠,外观显示效果清晰明了,使用两片74LS373作为数码管的驱动电路,保证LED数码管的亮度很高,即使在室外强光条件下,显示依然清晰。该数字钟的声光提示部分,使用了一路继电器控制蜂鸣器和一个高亮度LED,蜂鸣器的驱动方波来源于一个555定时器芯片,并由一个可调电阻来根据需要,调节方波频率。作息时间或定时闹钟时间到后,可以产生清晰明了的声光提示,

2、并采用了反射式红外发送接收传感器,以实现非接触止闹,通过调试,传感距离可达10cm左右,效果明显,使用方便。二、 多功能数字钟功能简介 该数字钟具有时间,日期,星期显示和调节功能,操作简单可靠,按键都采用了防抖动程序,以防按一次造成多次输入。该数字钟可对预设的18个作息时间点进行准确声光提示,提示时间为10秒,在该声光提示期间,将手放在电路板上方(与电路板的距离不能大于15cm),可实现非接触止闹,使用相当方便。该数字钟还带有一个定时闹钟,可以自定闹钟时间与闹钟开关。该数字钟具有断电时间保护功能,当单片机系统掉电后,纽扣电池可以保持至少两个月的准确时间,一般来说,数字钟的时间设置一次后,以后几

3、乎不用再次设置。三、 多功能数字钟硬件电路图1、 非接触止闹部分 ST178实物图ST178属于反射式红外传感器,它由一个红外发射管和一个红外三极管组成,工作的时候,红外发射管发射红外线,当它前方一定范围内有障碍物的时候,发射出的红外线遇到障碍物发射回去,被红外三极管接受,红外三极管由断开变为导通,P32端口上的电压变为低电平,从而被单片机检测到。其中电阻R1作为限流电阻,如果不用限流电阻,ST178会在瞬间被烧毁。电阻R2作为上拉电阻,其电阻值大小直接决定该传感器的检测范围,其值越小,检测范围越小。2、 串口时钟芯片部分 DS1302实物图DS1302简介DS1302 是美国DALLAS公司

4、推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当

5、Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才

6、能将RST置为高电平。3、 声光提示部分555定时器简介555定时器成本低,性能可靠,只需要外接几个电阻、电容,就可以实现多谐振荡器、单稳态触发器及施密特触发器等脉冲产生与变换电路。它也常作为定时器广泛应用于仪器仪表、家用电器、电子测量及自动控制等方面。555 定时器的内部电路框图和外引脚排列图分别如图 2.9.1 和图 2.9.2 所示。它内部包括两个电压比较器,三个等值串联电阻,一个 RS 触发器,一个放电管 T 及功率输出级。它提供两个基准电压VCC /3 和 2VCC /3 555 定时器的功能主要由两个比较器决定。两个比较器的输出电压控制 RS 触发器和放电管的状态。在电源与地之间加

7、上电压,当 5 脚悬空时,则电压比较器 C1 的同相输入端的电压为 2VCC /3,C2 的反相输入端的电压为VCC /3。若触发输入端 TR 的电压小于VCC /3,则比较器 C2 的输出为 0,可使 RS 触发器置 1,使输出端 OUT=1。如果阈值输入端 TH 的电压大于 2VCC/3,同时 TR 端的电压大于VCC /3,则 C1 的输出为 0,C2 的输出为 1,可将 RS 触发器置 0,使输出为 0 电平。 P34端口用于单片机控制响铃方式,可以根据个人喜好,用软件实现不同的响铃方式,P33用于控制继电器的断开与闭合,该电路中由于使用的继电器的驱动电流比较大,故采用两级放大以实现对

8、继电器的控制。其中的可调电阻用于调节蜂鸣器的发生声频率调节。4、 主电路部分 该数字钟是以STC89C52单片机为核心控制器件,用来读取DS1302芯片的信息,处理数码管显示控制,处理按键等重要工作。为了保证数码管的亮度足够,采用了两片74LS373作为驱动电路。该电路中设计了四个按键开关,用于对数字钟进行调整、设定。复位电路采用比较常见的上电复位方式,简单可靠。单片机采用的是24M晶振,这样会使单片机的运算速度较快,即使单片机任务很多的时候,也能够对数码管进行快速扫描,不会出现闪烁的情况。四、 程序控制部分#include unsigned char code seg=0x7f,0xbf,0

9、xdf,0xef,0xf7,0xfb,0xfd,0xfe;unsigned char const dofly=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,/ 0F 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xf9,0xf1,0x40; /带小数点 0Fchar year,mon,day,hour,min,sec,week;unsigned int ms50=0;unsig

10、ned char gn=0;unsigned char zuoxi=7,50,8,0,8,50,9,0,9,50,10,10,11,0,11,10,12,0,13,30,14,20,14,30,15,20,15,30,16,20,16,30,17,20;/作息时间表 bit on_off=1;char nao=12,0,61;sbit SCK=P37;sbit IO=P36;sbit RST=P35;sbit speaker=P34;sbit J=P33;sbit IR=P32; sbit key1=P10;sbit key2=P11;sbit key3=P12;sbit key4=P13;

11、/*向DS1302写入一字节数据*/delay(int t)int i,j;for (i=0;it;i+)for (j=0;j120;j+);void time(unsigned char h,unsigned char m,unsigned char s,unsigned char n) unsigned char b8,i; b0=h/10;b1=h%10;b2=16;b3=m/10;b4=m%10;b5=16;b6=s/10;b7=s%10;if(s=61)b6=16;b7=12;else if(s=62)b6=16;b7=0;switch(n)case 1: b0+=17;b1+=17

12、;break;case 2: b3+=17;b4+=17;break;case 3: b6+=17;b7+=17;break;default: ; for(i=0;i8;i+) P0=doflybi;/取显示数据,段码 P2=segi; /取位码 delay(2); P2=0xff; void ds1302_write_byte(unsigned char addr, unsigned char d) unsigned char i;RST=1;/*启动DS1302总线*/*写入目标地址:addr*/addr = addr & 0xFE;/*最低位置零*/for (i = 0; i 1;/*写

13、入数据:d*/d=d/10*16+d%10;for (i = 0; i 1;RST=0;/*停止DS1302总线*/*从DS1302读出一字节数据*/unsigned char ds1302_read_byte(unsigned char addr) unsigned char i;unsigned char temp;RST=1;/*启动DS1302总线*/*写入目标地址:addr*/for (i = 0; i 1;/*输出数据:temp*/for (i = 0; i 1;if (IO) temp |= 0x80;else temp &= 0x7F;SCK=1;SCK=0;RST=0;/*停

14、止DS1302总线*/temp=temp/16*10+temp%16;return temp;/*向DS302写入时钟数据*/ds1302_write_time(unsigned char year,mon,day,hour,min,sec,week) ds1302_write_byte(0x8e,0x00);/关闭写保护 ds1302_write_byte(0x80,0x80);/暂停 ds1302_write_byte(0x90,0xa9); /涓流充电 ds1302_write_byte(0x8c,year);/年 ds1302_write_byte(0x8a,week);/周 ds13

15、02_write_byte(0x88,mon); /月 ds1302_write_byte(0x86,day);/日 ds1302_write_byte(0x84,hour);/时 ds1302_write_byte(0x82,min);/分ds1302_write_byte(0x80,sec);/秒ds1302_write_byte(0x8e,0x80);/打开写保护 /*从DS302读出时钟数据*/void ds1302_read_time(void) year=ds1302_read_byte(0x8d); /年 week=ds1302_read_byte(0x8b); /周 mon=d

16、s1302_read_byte(0x89);/月 day=ds1302_read_byte(0x87);/日 hour=ds1302_read_byte(0x85);/时 min=ds1302_read_byte(0x83);/分 sec=ds1302_read_byte(0x81); /秒 /*DS302初始化函数*/void ds1302_init(void) RST=0;/*RST脚置低*/SCK=0;/*SCK脚置低*/ /显示部分 void display() if(key4=0&gn=0)|(gn=20&gn=30&gn=10&gn20) time(hour,min,sec,gn%

17、10); else ds1302_read_time(); time(hour,min,sec,gn%10); /按键防抖动 void shake() unsigned char i; for(i=0;i25;i+) display(); void main()unsigned char i;TH0=0x3c;TL0=0x10;TH1=0x3c;TL1=0xb0;TMOD=0x11;ET0=1;TR0=1;TR1=1;EA=1;ds1302_init();J=0;if(key1=0)ds1302_write_time(11,1,1,12,0,0,1);while(1) display(); /

18、作息闹铃开关控制装置 if(key3=0&key4=0) for(i=0;i=10) shake(); gn+; if(gn%10)3) gn=gn/10*10+1; /小时调整 if(key3=0&gn=11) shake(); hour+; if(hour23) hour=0; ds1302_write_time(year,mon,day,hour,min,sec,week); if(key4=0&gn=11) shake(); hour-; if(hour59) min=0; ds1302_write_time(year,mon,day,hour,min,sec,week); if(ke

19、y4=0&gn=12) shake(); min-; if(min59) sec=0; ds1302_write_time(year,mon,day,hour,min,sec,week); if(key4=0&gn=13) shake(); sec-=10; if(sec12) mon=1; ds1302_write_time(year,mon,day,hour,min,sec,week); if(key4=0&gn=21) shake(); mon-; if(mon31) day=1; ds1302_write_time(year,mon,day,hour,min,sec,week); if(key4=0&gn=22) shake(); da

温馨提示

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

评论

0/150

提交评论