首页 51单片机-数码管-DS1302+闹钟(实验板无秒)

51单片机-数码管-DS1302+闹钟(实验板无秒)

举报
开通vip

51单片机-数码管-DS1302+闹钟(实验板无秒) 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 51 取?片星极多取?片星极多取?片星极多取?片星极多DS1302 星?码?管?画取容源闹?钮?星?码?管?画取容源闹?钮?星?码?管?画取容源闹?钮?星?码?管?画取容源闹?钮? 个?:?画取路?图?:? a a EA/VP31 X119...

51单片机-数码管-DS1302+闹钟(实验板无秒)
欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 51 取?片星极多取?片星极多取?片星极多取?片星极多DS1302 星?码?管?画取容源闹?钮?星?码?管?画取容源闹?钮?星?码?管?画取容源闹?钮?星?码?管?画取容源闹?钮? 个?:?画取路?图?:? a a EA/VP31 X119 X218 RESET9 RD17 WR16 INT012 INT113 T014 T115 P101 P112 P123 P134 P145 P156 P167 P178 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 AT89S52 * 1 2 3 4 5 6 7 8 9 R2 4.7k VCC b b c c d d e e f f g g R1 10k R3 470 R4 470 R5 470 R6 470 R7 470 R8 470 R9 470 R10 1k D1 LED D2 LED VCC S1 SW-PB S2 SW-PB S3 SW-PB S4 SW-PB Q1 8550 Q2 8550 Q3 8550 Q4 8550 VCC C1 10uF VCC VCC Y1 12M C2 22p C3 22p VCC21 X12 X23 GND4 RST 5 I/O 6 SCK 7 VCC1 8 U2 DS1302 BT1 3V Y2 32.768kHz P1 5V VCC Q1 Q2 Q3 Q4 R11 4.7k R12 4.7k R13 4.7k R14 4.7k Q1 Q2 Q3 Q4 Q5 8550R15 4.7k FMQ1 BUZZER beep beep P25 P26 P27 P25 P26 P27 7 6 4 1 3 8 9 a b c d e f g 2 dp 10 com1 a bf c g de dp com2 a bf c g de dp 5 DS1 SEG7A 7 6 4 1 3 8 9 a b c d e f g 2 dp 10 com1 a bf c g de dp com2 a bf c g de dp 5 DS2 SEG7A 件?:?初?件?清?取?:? 初?件?� 取?星?� 星?量?� 初?件?� 取?星?� 星?量?� 画取降始� 1k 1 画取源?插?容片� � 1 画取降始� 4.7k 6 取?片星极多�AT89S52 1 画取降始� 10k 1 蜂?鸣?图蜂� 5V 1 画取降始� 470 7 星?钮?芯?片星� DS1302 1 画取容?� 10uF 1 个?能?极鸣� 1 初? 1 画取容?� 22oF 2 ,& 开?� 40P 1 星?码?管?�2 修止初通降初 2 ,& 开?� 8P 1 按?钮?� � 4 期钮插个� 12MHz 1 个?极?管?� 8550 5 期钮插个� 32.768KHz 1 /('� 缩?� 2 钮?按?画取沿缩� 3V 1 钮?按?画取沿缩开?� � 1 �� 取?片星极多 '6���� 星?码?管?画取容源钮?� 个?:?源?程?开? 1:?件始程?开?:? #include #include #define uchar unsigned char #define uint unsigned int #include"ds1302.c" static uchar i1,n[4]; sbit keyset=P1^0; sbit key1=P1^1; sbit key2=P1^2; sbit keyout=P1^3; sbit beep=P2^4; uchar code tabxt[]={0xf7,0xfb,0xfd,0xfe}; // 通?通?星?插? 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 uchar code tabbh[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xa7,0xa1,0x86,0x8e, 0xff}; //容画模? //0 1 2 3 4 5 6 7 8 9 a b c d e f 笔?格?//初通降初笔?画始星?插? /****************************************************************/ void delay(uint t)//开?星?容源程?开? { uchar i; uint j; for(j=0;j=0x80) n[j]=0x10; else if(i2<0x80) n[j]=i3; if(!keyset) { n[j]=i3; j=j++; if (j==4) j=0; i3=n[j]; delay(800); } if(!key1)//+1 { i3=i3++; if (i3==0x0a) i3=0; n[j]=i3; delay(800); } if(!key2)//-1 { i3=i3-1; if (i3==0xff) i3=9; n[j]=i3; delay(800); } } while(keyout); n[j]=i3; ds1302_send_1(0x8e,0x00); //初态调?初?初?// ds1302_date[1]=n[3]|(n[2]<<4); //min 修?星?值? ds1302_date[2]=n[1]|(n[0]<<4); //hour 修?星?值? ds1302_send_8(0xbe,ds1302_date); //取?通?修?星?值? } } void key_alarm() { uchar i,j,i2,i3; n[0]=ds1302_set[1]>>4; n[1]=ds1302_set[1]&0x0f; n[2]=ds1302_set[0]>>4; n[3]=ds1302_set[0]&0x0f; if(!key1) 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 { j=0; i3=n[j]; delay(800); do { for(i=0;i<4;i++) { P0=tabbh[n[i]];//笔?画始星?插? P2=tabxt[i]; //动?态?点?件?LED delay(1); //调?用?开?星?容源程?开? P2=0xff; } i2=i2++; if(i2>=0x80) n[j]=0x10; else if(i2<0x80) n[j]=i3; if(!keyset) { n[j]=i3; j=j++; if (j==4) j=0; i3=n[j]; delay(800); } if(!key1)//+1 { i3=i3++; if (i3==0x0a) i3=0; n[j]=i3; delay(800); } if(!key2)//-1 { i3=i3-1; if (i3==0xff) i3=9; n[j]=i3; delay(800); } } while(keyout); n[j]=i3; ds1302_send_1(0x8e,0x00); //初态调?初?初?// ds1302_set[0]=n[3]|(n[2]<<4); //min 修?星?值? ds1302_set[1]=n[1]|(n[0]<<4); //hour 修?星?值? 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 ds1302_send_1(0xc0,ds1302_set[0]); //取?通?修?星?值? ds1302_send_1(0xc2,ds1302_set[1]); ds1302_send_1(0x8e,0x80); //程?止能初?初?// } } void main(void) { SP=SP+1; ds1302_send_1(0x8e,0x00); //初态调?初?初?// ds1302_send_1(0x90,0xa5); //清?清态初?画取 ds1302_date[0]=ds1302_receive_1(0x81); //件?DS1302件? 调?初?second ds1302_send_1(0x80,ds1302_date[0]&0x7f); //路闹插个 ds1302_send_1(0x8e,0x80); //程?止能初?初?// ds1302_set[0]=ds1302_receive_1(0xc1); //件?DS1302 的?RAM 件? 调?初?插?动命min ds1302_set[1]=ds1302_receive_1(0xc3); //插?动命星?闹?hour do { ds1302_receive_8(0xbf,ds1302_date); //调?星?闹?// n[0]=ds1302_date[2]>>4; //取?缩?BCD->BCD// n[1]=ds1302_date[2]&0x0f; n[2]=ds1302_date[1]>>4; n[3]=ds1302_date[1]&0x0f; display(); key(); key_alarm(); if ((ds1302_set[0]==ds1302_date[1])&&(ds1302_set[1]==ds1302_date[2])) beep=0; } while (1); } 2.DS1302 驱通动?容源程?开?:? sbit IO =P2^6; sbit RST=P2^7; /********************* ds1302 星?插? ***********************/ //7 修止星?闹?星?插? WP 修?按? 0x80 件多程?止能初?初?// // 程? 初? 星? 星? 期? 星?期? 开? WP // uchar ds1302_date[8]={0x00,0x00,0x9,0x24,0x05,0x4,0x09,0x80}; //星?闹?初?始?值?////星?闹?调? 取?值?// //uchar ds1302_temp[14]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 }; //个?个?星?插?:?取态图?修止 uchar ds1302_set[2]={0x00,0x00};//调?容?闹?钮?星?初? // uchar code 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 w595_temp[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xa7,0xa1,0x 86,0x8e,0xff}; //容画模? //0 1 2 3 4 5 6 7 8 9 a b c d e f 笔?格?//初通降初笔?画始星?插? /***************取?通?容画芯? Byte ************************/ /************** 件?修沿修止开?始?取?**************************/ void send_byte(uchar u) { uchar i; for(i=0;i<8;i++) { u>>=1; IO=CY; _nop_(); SCK=0; _nop_(); SCK=1; //取?通?星?插?个?取星沿?期?星期// } } /************** 插?取?容画芯? Byte **************************/ /*************** 件?修沿修止开?始?插?星命 ************************/ uchar receive_byte(void) { uchar i,date=0; for(i=0;i<8;i++) { date>>=1; SCK=1; _nop_(); SCK=0; //插?星命星?插?个?降止沿?期?星期// if(IO) date|=0x80; } return date; } /************** 取?通?命?件?容画芯? :? 星?插? ****************/ void ds1302_send_1(uchar cmd,uchar date) { RST=0; _nop_(); SCK=0; RST=1; //开?命个DS1302// send_byte(cmd); //取?通?命?件?容画芯?// 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 send_byte(date); //取?通?星?插?// RST=0; //初量闹?DS1302// } /************************* 1 容画芯?插?星命 ***************************/ uchar ds1302_receive_1(uchar cmd) { uchar date; RST=0; SCK=0; RST=1; //开?命个DS1302// send_byte(cmd); //取?通?命?件?容画芯?// date=receive_byte(); //插?星命星?插?// RST=0; //初量闹?DS1302// return date; } /******************多?容画芯?取?通? 8 容画芯? *************************/ /**************** 星?插?修止星? :?命?件?容画芯? :?********************/ void ds1302_send_8(uchar cmd,uchar *s) { uchar i; RST=0; SCK=0; RST=1; //开?命个DS1302// send_byte(cmd); for(i=0;i<8;i++) { send_byte(*s++); } RST=0; //初量闹?DS1302// } /********************* 多?容画芯?插?星命 8 容画芯? *************************/ void ds1302_receive_8(uchar cmd,uchar *s) { uchar i; RST=0; SCK=0; RST=1; //开?命个DS1302// send_byte(cmd); for(i=0;i<8;i++) { *s++=receive_byte(); } 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?13847009752 QQ:?295067997 RST=0; //初量闹?DS1302// }
本文档为【51单片机-数码管-DS1302+闹钟(实验板无秒)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_923758
暂无简介~
格式:pdf
大小:52KB
软件:PDF阅读器
页数:8
分类:互联网
上传时间:2011-08-06
浏览量:73