问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ds1302时钟保护程序怎么写,如果能加调时,闹钟功能就更好了

发布网友 发布时间:2022-07-18 05:07

我来回答

2个回答

热心网友 时间:2023-10-09 14:34

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit SCK=P3^6;
sbit SDA=P3^4;
sbit RST=P3^5;// DS1302复位
sbit set=P3^0;//定义按键端口
sbit s1=P3^1;
sbit s2=P3^2;
sbit s3=P3^3;
/************液晶口定义*******/
sbit RS=P2^4;//RS为数据/指令选择1/0
sbit RW=P2^5;//读写
sbit E=P2^6;//E为使能信号
bit flag;//是否读取时间的标志位
uchar setn=0;//复位键、增加键、减少键按下次数
uchar code time0[]="DATE: - - ";
uchar code time1[]="TIME: : : ";
uchar l_tmpdate[7]={0,55,16,22,8,6,9};//秒分时日月周年// 可随时更改
uchar code write_add[7]={0x80,0x82,0x84,0x86,
0x88,0x8a,0x8c}; //秒分时日月周年 写的寄存器地址
uchar code read_add[7]={0x81,0x83,0x85,0x87,
0x89,0x8b,0x8d}; //秒分时日月周年 读的寄存器地址
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d
,0x7d,0x07,0x7f,0x6f,0x40}; //共阴数码管 0-9加'-'熄灭表
void delay(uint z)
{
while(--z);
}
void write_com(uchar com)//液晶写命令函数
{
RS=0;//写命令使能
RW=0;//写
delay(5000);
/****在高脉冲下命令输入*****/
E=0;
P0=com;
delay(500);
E=1;
delay(500);
E=0;
}
void write_data(uchar dat)//液晶写数据函数
{
RS=1;//写数据使能
RW=0;
delay(5000);
/****在高脉冲下数据输入*****/
E=0;
P0=dat;
delay(500);
E=1;
delay(500);
E=0;
}
void init()//液晶初始化
{
uchar num;
E=0;
write_com(0x38);//显示模式设置
delay(500);
write_com(0x38);
delay(500);
write_com(0x38);
write_com(0x08);//显示关闭
delay(500);
write_com(0x01);//显示清屏
write_com(0x06);//光标移动设置整屏不移动
write_com(0x0c);//屏幕开、光标不闪(0)不显示(0)
delay(500);
write_com(0x80);
for(num=0;num<16;num++)
{
write_data(time0[num]);
delay(5);
}
write_com(0x80+0x40);
for(num=0;num<13;num++)
{
write_data(time1[num]);
delay(5);
}
}
void Write_Ds1302_Byte(uchar temp) //写一个字节
{
uchar i;
for (i=0;i<8;i++) //循环8次写入数据
{
SCK=0;
SDA=temp&0x01; //每次传输低字节
temp>>=1; //右移一位
SCK=1;
}
}
/****************************************************************************/
void Write_Ds1302(uchar add,uchar dat )//向寄存器写数据
{
RST=0;
_nop_();
SCK=0;
_nop_();
RST=1;//启动
_nop_();
Write_Ds1302_Byte(add); //发送地址
Write_Ds1302_Byte(dat); //发送数据
RST=0; //恢复
}
uchar Read_Ds1302_Byte()//读一个字节
{
uchar i,temp=0x00;
for (i=0;i<8;i++) //循环8次 读取数据
{
if(SDA)
temp|=0x80; //每次传输低字节
SCK=0;
temp>>=1; //右移一位
SCK=1;
}
return(temp);
}
uchar Read_Ds1302(uchar address )//从寄存器读数据
{
uchar date;
RST=0;
_nop_();
SCK=0;
_nop_();
RST=1;
_nop_();
Write_Ds1302_Byte(address);
date=Read_Ds1302_Byte();
RST=0;
_nop_(); //以下为DS1302复位的稳定时间
RST=0;
SCK=0;
_nop_();
SCK=1;
_nop_();
SDA=0;
_nop_();
SDA=1;
_nop_();
return (date);
}
/*********************************************************/
void Read_RTC(void) //读取日历
{
uchar i,*p;
p=read_add; //读的地址传递
for(i=0;i<7;i++) //分7次读取 秒分时日月周年
{
l_tmpdate[i]=Read_Ds1302(*p);
p++;
}
}
/******************************************************/
void Set_RTC(void) //设定日历
{
uchar i,*p,tmp;
for(i=0;i<7;i++)
{ //BCD处理,将十六进制转换成十进制
tmp=l_tmpdate[i]/10;
l_tmpdate[i]=l_tmpdate[i]%10;
l_tmpdate[i]=l_tmpdate[i]+tmp*16;
}
Write_Ds1302(0x8E,0X00);//关闭写保护
p=write_add;//传要写的寄存器地址
for(i=0;i<7;i++) //7次写入秒分时日月周年
{
Write_Ds1302(*p,l_tmpdate[i]);
p++;
}
Write_Ds1302(0x8E,0x80);//打开写保护
}
void write_lcd()
{
static uchar i,temp[2];
switch(i)
{
case 0: write_com(0x80+0x40+0x0b);break;//秒
case 1: write_com(0x80+0x40+8);break;//分
case 2: write_com(0x80+0x40+5);break;//时
case 3: write_com(0x80+0x0b);break;//日
case 4: write_com(0x80+8);break;//月
case 5: write_com(0x80+0x0e);break;//星期
case 6: write_com(0x80+5);break;//年
}
temp[0]=l_tmpdate[i]/16;//数据的转换
temp[1]=l_tmpdate[i]&0x0f;
write_data(0x30+temp[0]);
write_data(0x30+temp[1]);
i++;
if(i==7)
i=0;
}
uchar change(uchar x)//十进制转换成十六进制
{
uchar tep,y;
y=x;
tep=y/16;
y=y%16;
y=y+tep*10;
return y;
}
void keyscan()
{

uchar tem[2],tp,Flag;//存储要更改的时间数据
if(set==0)
{
flag=1;//时间停止
delay(500);//去键盘按下抖动
if(set==0)
{
delay(500);
while(!set);
delay(500);//去键盘抬起时抖动
while(!set);
delay(500);
setn++;
if(setn==1)
{
write_com(0x80+0x40+12);//将光标移动到秒个位
write_com(0x0f);//显示光标并且闪烁

}
if(setn==2)
{
write_com(0x80+0x40+9);//将光标移动到分个位
write_com(0x0f);//显示光标并且闪烁
}
if(setn==3)
{

write_com(0x80+0x40+6);//将光标移动到时个位
write_com(0x0f);//显示光标并且闪烁
}
if(setn==4)
{
write_com(0x80+15);
write_com(0x0f);
}
if(setn==5)
{
write_com(0x80+12);
write_com(0x0f);
}
if(setn==6)
{
write_com(0x80+9);
write_com(0x0f);
}
if(setn==7)
{
write_com(0x80+6);
write_com(0x0f);
}
if(setn==8)
{
setn=0;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[0],l_tmpdate[0]);
Write_Ds1302(0x8E,0x80);//打开写保护
flag=0;//时钟正常运行
write_com(0x0c);//光标停止闪烁
}
}

}
if(setn!=0)//更改时间
{
if(s1==0)//增加时间
{
delay(5000);
if(s1==0)
{

while(!s1);
delay(5000);//去键盘抬起时抖动
while(!s1);
if(setn==1)
{
l_tmpdate[0]=change(l_tmpdate[0]);
l_tmpdate[0]++;
if(l_tmpdate[0]>=60)
l_tmpdate[0]=0;
{
tp=l_tmpdate[0]/10;
l_tmpdate[0]=l_tmpdate[0]%10;
l_tmpdate[0]=l_tmpdate[0]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[0],l_tmpdate[0]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+0x40+11);
tem[0]=l_tmpdate[0]/16;//数据的转换
tem[1]=l_tmpdate[0]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+0x40+12);
Flag=1;
}
if(setn==2)
{ l_tmpdate[1]=change(l_tmpdate[1]);
l_tmpdate[1]++;
if(l_tmpdate[1]==60)
l_tmpdate[1]=0;
{
tp=l_tmpdate[1]/10;
l_tmpdate[1]=l_tmpdate[1]%10;
l_tmpdate[1]=l_tmpdate[1]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[1],l_tmpdate[1]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+0x40+8);
tem[0]=l_tmpdate[1]/16;//数据的转换
tem[1]=l_tmpdate[1]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+0x40+9);
}
if(setn==3)
{ l_tmpdate[2]=change(l_tmpdate[2]);
l_tmpdate[2]++;
if(l_tmpdate[2]>=24)
l_tmpdate[2]=0;
{
tp=l_tmpdate[2]/10;
l_tmpdate[2]=l_tmpdate[2]%10;
l_tmpdate[2]=l_tmpdate[2]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[2],l_tmpdate[2]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+0x40+5);
tem[0]=l_tmpdate[2]/16;//数据的转换
tem[1]=l_tmpdate[2]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+0x40+6);
}
if(setn==4)
{
l_tmpdate[5]=change(l_tmpdate[5]);
l_tmpdate[5]++;
if(l_tmpdate[5]==8)
l_tmpdate[5]=1;
{
tp=l_tmpdate[5]/10;
l_tmpdate[5]=l_tmpdate[5]%10;
l_tmpdate[5]=l_tmpdate[5]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[5],l_tmpdate[5]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+14);
tem[0]=l_tmpdate[5]/16;//数据的转换
tem[1]=l_tmpdate[5]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+15);
}

if(setn==5)
{
l_tmpdate[3]=change(l_tmpdate[3]);
l_tmpdate[3]++;
if(l_tmpdate[3]==32)
l_tmpdate[3]=0;
{
tp=l_tmpdate[3]/10;
l_tmpdate[3]=l_tmpdate[3]%10;
l_tmpdate[3]=l_tmpdate[3]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[3],l_tmpdate[3]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+11);
tem[0]=l_tmpdate[3]/16;//数据的转换
tem[1]=l_tmpdate[3]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+12);
}
if(setn==6)
{
l_tmpdate[4]=change(l_tmpdate[4]);
l_tmpdate[4]++;
if(l_tmpdate[4]==13)
l_tmpdate[4]=0;
write_com(0x80+8);
{
tp=l_tmpdate[4]/10;
l_tmpdate[4]=l_tmpdate[4]%10;
l_tmpdate[4]=l_tmpdate[4]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[4],l_tmpdate[4]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
tem[0]=l_tmpdate[4]/16;//数据的转换
tem[1]=l_tmpdate[4]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+9);
}
if(setn==7)
{
l_tmpdate[6]=change(l_tmpdate[6]);
l_tmpdate[6]++;
if(l_tmpdate[6]==100)
l_tmpdate[6]=0;
write_com(0x80+5);
{
tp=l_tmpdate[6]/10;
l_tmpdate[6]=l_tmpdate[6]%10;
l_tmpdate[6]=l_tmpdate[6]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[6],l_tmpdate[6]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
tem[0]=l_tmpdate[6]/16;//数据的转换
tem[1]=l_tmpdate[6]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+6);
}
}
}
if(s2==0)//减少时间
{
delay(5000);
if(s2==0)
{
while(!s2);
delay(5000);//去键盘抬起时抖动
while(!s2);
if(setn==1)
{
l_tmpdate[0]=change(l_tmpdate[0]);
if(l_tmpdate[0]!=0)
l_tmpdate[0]--;
if(l_tmpdate[0]==0)
l_tmpdate[0]=59;
{
tp=l_tmpdate[0]/10;
l_tmpdate[0]=l_tmpdate[0]%10;
l_tmpdate[0]=l_tmpdate[0]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[0],l_tmpdate[0]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+0x40+11);
tem[0]=l_tmpdate[0]/16;//数据的转换
tem[1]=l_tmpdate[0]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+0x40+12);
}
if(setn==2)
{
l_tmpdate[1]=change(l_tmpdate[1]);
if(l_tmpdate[1]!=0)
l_tmpdate[1]--;
if(l_tmpdate[1]==0)
l_tmpdate[1]=59;
{
tp=l_tmpdate[1]/10;
l_tmpdate[1]=l_tmpdate[1]%10;
l_tmpdate[1]=l_tmpdate[1]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[1],l_tmpdate[1]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+0x40+8);
tem[0]=l_tmpdate[1]/16;//数据的转换
tem[1]=l_tmpdate[1]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+0x40+9);
}
if(setn==3)
{ l_tmpdate[2]=change(l_tmpdate[2]);
if(l_tmpdate[2]!=0)
l_tmpdate[2]--;
if(l_tmpdate[2]==0)
l_tmpdate[2]=23;
{
tp=l_tmpdate[2]/10;
l_tmpdate[2]=l_tmpdate[2]%10;
l_tmpdate[2]=l_tmpdate[2]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[2],l_tmpdate[2]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+0x40+5);
tem[0]=l_tmpdate[2]/16;//数据的转换
tem[1]=l_tmpdate[2]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+0x40+6);
}
if(setn==4)
{
l_tmpdate[5]=change(l_tmpdate[5]);
if(l_tmpdate[5]!=0)
l_tmpdate[5]--;
if(l_tmpdate[5]==0)
l_tmpdate[5]=7;
{
tp=l_tmpdate[5]/10;
l_tmpdate[5]=l_tmpdate[5]%10;
l_tmpdate[5]=l_tmpdate[5]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[5],l_tmpdate[5]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+14);
tem[0]=l_tmpdate[5]/16;//数据的转换
tem[1]=l_tmpdate[5]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+15);
}
if(setn==5)
{
l_tmpdate[3]=change(l_tmpdate[3]);
if(l_tmpdate[3]!=0)
l_tmpdate[3]--;
if(l_tmpdate[3]==0)
l_tmpdate[3]=31;
{
tp=l_tmpdate[3]/10;
l_tmpdate[3]=l_tmpdate[3]%10;
l_tmpdate[3]=l_tmpdate[3]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[3],l_tmpdate[3]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
write_com(0x80+11);
tem[0]=l_tmpdate[3]/16;//数据的转换
tem[1]=l_tmpdate[3]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+12);
}
if(setn==6)
{
l_tmpdate[4]=change(l_tmpdate[4]);
if(l_tmpdate[4]!=0)
l_tmpdate[4]--;
if(l_tmpdate[4]==0)
l_tmpdate[4]=12;
write_com(0x80+8);
{
tp=l_tmpdate[4]/10;
l_tmpdate[4]=l_tmpdate[4]%10;
l_tmpdate[4]=l_tmpdate[4]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[4],l_tmpdate[4]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
tem[0]=l_tmpdate[4]/16;//数据的转换
tem[1]=l_tmpdate[4]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+9);
}
if(setn==7)
{
l_tmpdate[6]=change(l_tmpdate[6]);
if(l_tmpdate[6]!=0)
l_tmpdate[6]--;
if(l_tmpdate[6]==0)
l_tmpdate[6]=99;
write_com(0x80+5);
{
tp=l_tmpdate[6]/10;
l_tmpdate[6]=l_tmpdate[6]%10;
l_tmpdate[6]=l_tmpdate[6]+tp*16;
Write_Ds1302(0x8E,0X00);//关闭写保护
Write_Ds1302(write_add[6],l_tmpdate[6]);
Write_Ds1302(0x8E,0x80);//打开写保护
}
tem[0]=l_tmpdate[6]/16;//数据的转换
tem[1]=l_tmpdate[6]&0x0f;
write_data(0x30+tem[0]);
write_data(0x30+tem[1]);
write_com(0x80+6);
}
}
}
}
}
/*******************************************************/
void main(void)
{
//Set_RTC();//在第一次使用时给ds1302赋初值
init();
while(1)
{
if(flag==0)
{
Read_RTC();
write_lcd();
}
keyscan();
}
}

热心网友 时间:2023-10-09 14:35

oid ds1302_ini()

{
T_CLK_DS1302=0;
T_RST_DS1302=0;
//Delay_100uS(1);
T_RST_DS1302=1;

time[0]=0x00; //秒 BCD码
time[1]=0x51; //分
time[2]=0x12; //时
time[3]=0x15; //日
time[4]=0x08; //月
time[5]=0x05; //周
time[6]=0x09; //看

SetData_DS1302(time);
ds1302时钟保护程序怎么写,如果能加调时,闹钟功能就更好了

void Write_Ds1302(uchar add,uchar dat )//向寄存器写数据 { RST=0; _nop_(); SCK=0; _nop_(); RST=1;//启动 _nop_(); Write_Ds1302_Byte(add); //发送地址 Write_Ds1302_Byte(dat); //发送数据 RST=0; //恢复}uchar Read_Ds1302_Byte()//读一个字节{ uchar i,temp=0x00; for ...

实时时钟模块选哪家?

实时时钟模块可以选择许多不同的制造商和型号,具体选择取决于您的应用需求和预算。一些流行的实时时钟模块品牌包括DS1302、MA电商平台6925和MCP7941。这些模块都具有精度高、稳定性好、功耗低等优点,并具有不同的功能和特性,可以满足各种不同的应用需求。您可以根据您的具体要求和预算选择最适合的实时时钟模块。实时时钟模块可以找深圳市兴威帆电子技术有限公司,本公司具有经验丰富的开发工程师和应用工程师,致力于公司自主知识产权IC等产品的研发和技术支持,已开发出多款成熟的产品并大量生产、销售及出口,我公司高精度实时时钟模块产品获得多项国家专利,...

求一个DS1302的闹钟程序,显示当前时间,用LED显示的程序

Ds1302_Write_Byte(ds1302_control_add,0x00); //关闭写保护 Ds1302_Write_Byte(ds1302_sec_add,0x80); //暂停 //Ds1302_Write_Byte(ds1302_charger_add,0xa9); //涓流充电 Ds1302_Write_Byte(ds1302_year_add,time_buf[1]); //年 Ds1302_Write_Byte(ds1302_month_add,time_buf[2]); ...

跪求单片机c51一个多功能时钟设计。要闹钟。调整时间、秒表、就行了...

void DS1302_SetProtect(bit flag) //是否写保护{ if(flag) Write1302(0x8E,0x10); //WP=1,不能写入 else Write1302(0x8E,0x00);//WP=0,可以写入 }void DS1302_SetTime(unsigned char Address, unsigned char Value) // 设置时间函数{ DS1302_SetProtect(0); Write1302(Address, ((Value/10)&lt;&lt;...

单片机时钟程序:通过键设计当前时间,设定闹钟,时间一到,报警

ucData = DS1302_RD_Byte(); // 读1Byte数据 DS1302_CLK = 1;DS1302_RST = 0;return(ucData);} void DS1302_SetTime(uchar Address, uchar Value) // 设置时间函数 { DS1302_Write(0x8E,0x00); //写保护 DS1302_Write(Address, ((Value/10)&lt;&lt;4 | (Value%10)));} ...

51单片机用ds1302芯片闹钟。要求按键k1,k2,k3控制调节时分秒。

给你提供个思路,你这闹钟系统是单片机读取时钟芯片的数据进行显示从而完成时钟功能的。你现在需要更改时间,其实是要通过单片机更改时钟芯片内部的数据。这样就需要你看下是否更改了时钟芯片的数据,以及程序是否正确。

基于51单片机,DS1302,1602实现万年历(年月日时分秒)及闹钟功能的C程序...

1、按键调试设置闹钟 2、带备用电池(断电继续走时)3、整点语音报时 ☆已作出的实物优酷视频演示地址:http://v.youku.com/v_show/id_XMTQ3OTMwMjM0OA==.html [3]单片机红外遥控电子表语音报时语音播报温湿度 功能描述:1、红外遥控调时间设定闹钟 2、带备用电池(断电继续走时)3、整点语音...

51单片机“世界时间” 程序设计 求助 要求如下

1 显示部分,六位数码管,置于连接方式可以选择动态扫描、串行静态显示、并行静态显示 2 rtc时钟,时钟芯片可以选择ds1302,这个最常用了用于保存时间,连接上备用电源,掉电数据不丢失 3 按键部分,这个是整个程序的精髓,按键处理不好这个系统也就没什么意思了,按键扫描可以使用状态机的方式 4 系统时钟...

跪求51单片机+12864液晶+1302时钟制成的万年历c程序?

DS1302_RST = 0; return(ucData);}void DS1302_SetProtect(bit flag) //是否写保护{ if(flag) Write1302(0x8E,0x10); else Write1302(0x8E,0x00);}void DS1302_SetTime(unsigned char Address, unsigned char Value) // 设置时间函数{ DS1302_SetProtect(0); Write1302(Address, ((Value/10)&lt;...

那要如何在用DS1302与1602LCD设计的可调式电子日历与时钟的程序里加上...

DS1302_SCK=1;DS1302_SCK=0;x&gt;&gt;=1;} } uchar GetAByteFromDS1302(void){ uchar i,b=0X00,t;for(i=0;i&lt;8;i++){ b&gt;&gt;=1;t=DS1302_SDA;b|=t&lt;&lt;7;DS1302_SCK=1;DS1302_SCK=0;} return (b/16*10+b%16);} void ResetDS1302(void){ DS1302_RST=0;DS1302_SCK=0;DS1302...

猛!还有分加。求时钟电路设计图与简单说明,最好有整个方案

若set=0,运行走时程序;若set=1,进入调整闹时时间程序;若set=2,进入调整走时时间程序;若set=3,显示已调好的闹时时间,同时进入启/停闹时程序。散转完后,进行判断掉电标志flag是否等于55H。若不等,说明刚开机上电或运行过程中掉过电,这时四个数码管以1Hz的频率闪烁四个8字,提示时间不准;若相等,说明未掉...

实时时钟ds1302程序详解 ds1302时钟程序 ds1302时钟程序详解 基于ds1302数字时钟程序 ds1302数码管时钟程序 ds1302时钟芯片功能 ds1302可调时钟 单片机ds1302时钟历程 ds1302时钟芯片显示是跳时间
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...显现喷发迹象,夏威夷政府向居民发出警告,火山喷发的概率有多大?_百 ... 夏威夷火山还在燃烧吗 福州的西湖要门票吗 《西游记》节选甲是什么?你是什么? 庆祝建党90周年的 美术作品 适合小学生的,有什么好的素材? 求建党90周年的绘画!急急急急急急急急急!!! 泰式芒果糯米饭怎么制作口感更好? 今年考研缺考一门的我,现在应该怎么办 考研的时候没去,过后可以补考吗 今年哪些明星不参加世界杯? ds1302读不了数值啊,感觉那个time[]全是0 啊,求高手解答 DS1302实时时钟的问题 ds1302_write(0x8e,0x80);括号里的是什么意思 四川绵阳有没有汉中米皮,在哪? 四川人喜欢吃米皮吗 zenly可以冻结自己的位置吗- 问一问 会计电算化应收应付借项贷项怎么区分 华为加湿器不出雾是什么原因 驾驶机动车在高速公路、城市快速路以外的道路上不按规定车道行驶的扣分吗 win8升级win10后电脑里本来下的东西还有吗?还是等于恢复出厂设置了? 我感冒了吃过药,流出的鼻涕是黄颜色的,但不是浓的鼻涕,请问这是正常的吗? 简单粗暴三鲜馄饨怎么做 “闪击战”理论是谁提出的? 道氏普洱茶06年的老班章怎么样 06年普粹生产的普洱砖茶(生茶)1公斤全球通礼品装的茶放到现在多钱?还能喝么? 在中国移动公司买的小米10s和在小米有品上买的同款机有什么差别吗? 手机话费可以充CF会员吗?怎么充??? 怎样可以用手机话费直接充CF点 怎么用别人的找到他的抖音号? 怎么用别人的找到他的抖音号? void set_ds1302(uchar addr,uchar *p,uchar n) { write_ds1302(0x8e,0x00); 中的*p什么意思 DS1302时钟中怎么加入按键调时功能? 观修时脸发热,感觉半个身子热可是摸摸还不热 用完护肤品,感觉脸好烧,但是摸着又不热,还凉凉的,是过敏还是护肤品的问题 用了水密码补水明星系列,感觉脸有点热,但是摸着不热 脸蛋发热别的地方不热是怎么回事 电动自行车,套餐1裸车.若卖,请问自身有电池吗和充电器吗 电瓶车的整备质量包不包括电瓶? 买一辆电动车怎么买啊?看电瓶,电池,控制器,怎么看?到底是买多少瓦的? 死神vs火影2.4剑心变身技能表 死神vs火影1.1剑心怎么变身? 火影vs死神2.4剑心变身按那个键可以变身 足球比赛中,哪些情况下守门员不能在禁区内用手触足球? 门将不能在禁区外用手拿球吗? gc检测法什么意思 1049元挂绿荔枝2天卖空!挂绿荔枝为何能卖到这么贵? 成语 退尖杀生 杀什么生什么的词语 用一个成语来形容电影《杀生》 猫咪内驱外驱可以一起做吗?