欢?通?初极件动态调路?星?取?片星极多工?修笔容? 画取调?:?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,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。