苹果手机,下载小丸子时钟,设置完闹钟没反应

苹果手机,下载小丸子时钟,设置完闹钟没反应,第1张

 1、首先,先设置一下闹钟响铃时间,然后查看状态栏处的闹钟图标是否显示,若显示说明则说明闹钟正在后台运行。

2、打开360手机卫士或其他优化软件,在忽略名单里查看是否忽略了闹钟程序,若没有,那么一旦执行清理内存时便结束了闹钟程序。

3、还有可能是闹钟铃声静音了。打开闹钟程序,按手机底部的menu键,打开“设置”,然后点击“闹钟音量”,加大闹钟的音量,不要静音。

4、点击“默认闹钟设置”,查看是否没有选择闹钟铃声,将其设置成“无”了,若是,则设置一个有声音的铃声。

回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢

/

文件名 : 时钟DS1302c

描述 : 该文件实现用DS1302来实现日历和时钟功能,数码管上显示出来。

/

#include<reg52h>

#include<intrinsh>

#define uchar unsigned char

#define uint unsigned int

uchar code table[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbit ACC0 = ACC^0;

sbit ACC7 = ACC^7;

sbit P3_2 = P3^2;

sbit P3_5 = P3^4;

sbit T_CLK = P1^6; /实时时钟时钟线引脚 /

sbit T_IO = P3^5; /实时时钟数据线引脚 /

sbit T_RST = P1^7; /实时时钟复位线引脚 /

/

名称 : delay()

功能 : 延时,延时时间大概为140US。

输入 : 无

输出 : 无

/

void delay()

{

int i,j;

for(i=0; i<=10; i++)

for(j=0; j<=2; j++)

;

}

/

名称 : Delay_1ms()

功能 : 延时子程序,延时时间为 1ms x

输入 : x (延时一毫秒的个数)

输出 : 无

/

void Delay_1ms(uint i)//1ms延时

{

uchar x,j;

for(j=0;j<i;j++)

for(x=0;x<=148;x++);

}

/

名称 : v_RTInputByte()

功能 : 往DS1302写入1Byte数据

输入 : ucDa 写入的数据

输出 : 无

/

void v_RTInputByte(uchar ucDa)

{

uchar i;

ACC = ucDa;

T_RST = 1;

for(i=8; i>0; i--)

{

T_IO = ACC0;

T_CLK = 1;

T_CLK = 0;

ACC = ACC >> 1;

}

}

/

名称 : uc_RTOutputByte()

功能 : 从DS1302读取1Byte数据

输入 : 无

返回值: ACC

/

uchar uc_RTOutputByte(void)

{

uchar i;

T_RST = 1;

for(i=8; i>0; i--)

{

ACC = ACC >>1;

T_IO=1;

ACC7 = T_IO;

T_CLK = 1;

T_CLK = 0;

}

return(ACC);

}

/

名称 : v_W1302(uchar ucAddr, uchar ucDa)

功能 : 往DS1302写入数据

输入 : ucAddr: DS1302地址, ucDa: 要写的数据

返回值 : 无

/

void v_W1302(uchar ucAddr, uchar ucDa)

{

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_RTInputByte(ucAddr); // 写地址

_nop_();

_nop_();

v_RTInputByte(ucDa); // 写1Byte数据

T_CLK = 1;

T_RST = 0;

}

/

名称 : uc_R1302(uchar ucAddr)

功能 : 读取DS1302某地址的数据

输入 : ucAddr: DS1302地址

返回值 : ucDa :读取的数据

/

uchar uc_R1302(uchar ucAddr)

{

uchar ucDa;

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_RTInputByte(ucAddr); //写地址,命令

_nop_();

_nop_();

ucDa = uc_RTOutputByte(); //读1Byte数据

T_CLK = 1;

T_RST = 0;

return(ucDa);

}

/

名称 : v_BurstW1302T

功能 : 往DS1302写入时钟数据(多字节方式)

输入 : pSecDa: 时钟数据地址 格式为: 秒 分 时 日 月 星期 年 控制

8Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B 1B

返回值 : 无

/

void v_BurstW1302T(uchar pSecDa)

{

uchar i;

v_W1302(0x8e, 0x00); //控制命令,WP=0,写 *** 作

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_RTInputByte(0xbe); //0xbe:时钟多字节写命令

for(i=8; i>0; i--) //8Byte = 7Byte 时钟数据 + 1Byte 控制

{

v_RTInputByte(pSecDa); //写1Byte数据

pSecDa++;

}

T_CLK = 1;

T_RST = 0;

}

/

名称 : v_BurstR1302T(uchar pSecDa)

功能 : 读取DS1302时钟数据

输入 : pSecDa: 时钟数据地址 格式为: 秒 分 时 日 月 星期 年

7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B

返回值 : ucDa :读取的数据

/

void v_BurstR1302T(uchar pSecDa)

{

uchar i;

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_RTInputByte(0xbf); //0xbf:时钟多字节读命令

for(i=8; i>0; i--)

{

pSecDa = uc_RTOutputByte(); //读1Byte数据

pSecDa++;

}

T_CLK = 1;

T_RST = 0;

}

/

名称 : v_BurstW1302R(uchar pReDa)

功能 : 往DS1302寄存器数写入数据(多字节方式)

输入 : pReDa: 寄存器数据地址

返回值 : 无

/

void v_BurstW1302R(uchar pReDa)

{

uchar i;

v_W1302(0x8e,0x00); //控制命令,WP=0,写 *** 作

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_RTInputByte(0xfe); //0xbe:时钟多字节写命令

for(i=31; i>0; i--) //31Byte 寄存器数据

{

v_RTInputByte(pReDa); //写1Byte数据

pReDa++;

}

T_CLK = 1;

T_RST = 0;

}

/

名称 : v_BurstR1302R(uchar pReDa)

功能 : 读取DS1302寄存器数据

输入 : pReDa: 寄存器数据地址

返回值 : 无

/

void v_BurstR1302R(uchar pReDa)

{

uchar i;

T_RST = 0;

T_CLK = 0;

T_RST = 1;

v_RTInputByte(0xff); //0xbf:时钟多字节读命令

for(i=31; i>0; i--) //31Byte 寄存器数据

{

pReDa = uc_RTOutputByte(); //读1Byte数据

pReDa++;

}

T_CLK = 1;

T_RST = 0;

}

/

名称 : v_Set1302(uchar pSecDa)

功能 : 设置初始时间

输入 : pSecDa: 初始时间地址。初始时间格式为: 秒 分 时 日 月 星期 年

7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B

返回值: 无

/

void v_Set1302(uchar pSecDa)

{

uchar i;

uchar ucAddr = 0x80;

v_W1302(0x8e, 0x00); //控制命令,WP=0,写 *** 作

for(i=7; i>0; i--)

{

v_W1302(ucAddr, pSecDa); // 秒 分 时 日 月 星期 年

pSecDa++;

ucAddr += 2;

}

v_W1302(0x8e, 0x80); //控制命令,WP=1,写保护

}

/

名称 : v_Get1302(uchar ucCurtime[])

功能 : 读取DS1302当前时间

输入 : ucCurtime: 保存当前时间地址。当前时间格式为: 秒 分 时 日 月 星期 年

7Byte (BCD码) 1B 1B 1B 1B 1B 1B 1B

返回值 : 无

/

void v_Get1302(uchar ucCurtime[])

{

uchar i;

uchar ucAddr = 0x81;

for(i=0; i<7; i++)

{

ucCurtime[i] = uc_R1302(ucAddr); //格式为: 秒 分 时 日 月 星期 年

ucAddr += 2;

}

}

/

名称 : dectobcd(uchar dec)

功能 : DEC码转换为BCD码

输入 : dec码

输出 : bcd码

/

uchar dectobcd(uchar dec)

{

uchar bcd;

bcd = 0;

while(dec >= 10)

{

dec -= 10;

bcd++;

}

bcd <<= 4;

bcd |= dec;

return bcd;

}

/

名称 : bcdtodec(uchar bcd)

功能 : BCD码转换为DEC码

输入 : bcd码

输出 : dec码

/

uchar bcdtodec(uchar bcd)

{

uchar data1;

data1 = bcd & 0x0f; //取BCD低4位

bcd = bcd & 0x70; //剔除BCD的最高位和低4位。

data1 += bcd >> 1;

data1 += bcd >> 3; //用位移代替乘法运算

return data1;

}

/

名称 : Write_DS1302Init()

功能 : 往DS1302中写入数据。最开始显示的数据就是在这里设置的。

输入 : 无

输出 : 无

/

void Write_DS1302Init(void)

{

v_W1302(0x8e,0);

v_W1302(0x80,0x50); //写入秒

v_W1302(0x8e,0);

v_W1302(0x82,0x59); //写入分

v_W1302(0x8e,0);

v_W1302(0x84,0x07); //写入小时

v_W1302(0x8e,0);

v_W1302(0x86,0x08); //写入日

v_W1302(0x8e,0);

v_W1302(0x88,0x08); //写入月

v_W1302(0x8e,0);

v_W1302(0x8a,0x05); //写入星期

v_W1302(0x8e,0);

v_W1302(0x8c,0x08); //写入年

}

/

名称 : Run_DS1302(void)

功能 : 读出DS1302中的数据,并在液晶1602上进行显示

输入 : 无

输出 : 无

/

void Run_DS1302(void)

{

uchar sec, min, hour, day, month, year;

while(1)

{

v_W1302(0x8f, 0);

sec = bcdtodec(uc_R1302(0x81)); //读出DS1302中的秒

v_W1302(0x8f, 0);

min = bcdtodec(uc_R1302(0x83)); //读出DS1302中的分

v_W1302(0x8f, 0);

hour = bcdtodec(uc_R1302(0x85)); //读出DS1302中的小时

v_W1302(0x8f, 0);

day = bcdtodec(uc_R1302(0x87)); //读出DS1302中的日

v_W1302(0x8f, 0);

month = bcdtodec(uc_R1302(0x89)); //读出DS1302中的月

v_W1302(0x8f, 0);

year = bcdtodec(uc_R1302(0x8d)); //读出DS1302中的年

P0 = table[hour / 10 % 10];

P2 = 0;

Delay_1ms(2);

P0 = table[hour % 10];

P2 = 1;

Delay_1ms(2);

P0 = 0x80;

P2 = 2;

Delay_1ms(2);

P0 = table[min / 10 % 10];

P2 = 3;

Delay_1ms(2);

P0 = table[min % 10];

P2 = 4;

Delay_1ms(2);

P0 = 0x80;

P2 = 5;

Delay_1ms(2);

P0 = table[sec / 10 % 10];

P2 = 6;

Delay_1ms(2);

P0 = table[sec % 10];

P2 = 7;

Delay_1ms(2);

}

}

/

名称 : Main(void)

功能 : 主函数

输入 : 无

输出 : 无

/

void Main(void)

{

Write_DS1302Init();

Run_DS1302();

}

#include<graphicsh>

#include<mathh>

#include<dosh>

#define PI 31415926

//屏幕中心的坐标(640X480模式下)

#define mid_x 320

#define mid_y 240

int main()

{ int graphdriver=DETECT,graphmode;

int end_x,end_y;

struct time curtime;

float th_hour,th_min,th_sec;

initgraph(&graphdriver,&graphmode,"C:\\TC2"); //初始化VGA屏幕模式

setbkcolor(BLACK); //使用黑色的背景色

while(!kbhit(0)) //若有键盘输入,则跳出,即是结束程序

{ setcolor(GREEN); //把画笔设为绿色

circle(mid_x,mid_y,180); //钟的外圆

circle(mid_x,mid_y,150); //钟的内圆

circle(mid_x,mid_y,1); //画出钟的圆心

gettime(&curtime); //取得系统当前时间

th_sec=(float)curtimeti_sec01047197551; //把秒针的角度化为弧度,为以后绘制时方便,下同

th_min=(float)curtimeti_min01047197551+th_sec/600; //分针的弧度

th_hour=(float)curtimeti_hour05235987755+th_min/120; //时度的弧度,注意整时是12等分的,所时乘的是314/1805

//计算出时针的尾的坐标(时针长70)

end_x=mid_x+70sin(th_hour);

end_y=mid_y-70cos(th_hour);

setcolor(RED);

line(mid_x,mid_y,end_x,end_y); //用红色线画出时针

//计算出分针坐标(分针长110)

end_x=mid_x+110sin(th_min);

end_y=mid_y-110cos(th_min);

setcolor(RED);

line(mid_x,mid_y,end_x,end_y); //用红色画出分针

end_x=mid_x+140sin(th_sec);

end_y=mid_y-140cos(th_sec);

setcolor(RED);

line(mid_x,mid_y,end_x,end_y); //同上,画出秒针,长为140

//画出钟盘上的刻度,刻度长20

line(140,240,160,240); //9点对应的大刻度

line(320,60,320,80); //12点对应的大刻度

line(500,240,480,240); //3点的刻度

line(320,420,320,400); //6点的刻度

line(410,3957,400,3784); //5点

line(4757,330,4584,320); //4点

line(4757,150,4584,160); //2点

line(410,843,400,1016); //1点

line(230,843,240,1016); //11点

line(1643,150,1816,160); //10点

line(1643,330,1816,320); //8点

line(230,3957,240,3784); //7点

sleep(BLUE); //这里应该是打错,停止一秒,应为sleep(1000)

cleardevice(); //清除屏幕上的显示

}

closegraph(); //关闭VGA屏幕,即返回文本方式

return 0;

}

如果你从可信赖的应用商店或官方网站下载时钟屏保,通常不会有额外费用。然而,如果你从未知来源下载时钟屏保,则可能存在风险。

一些恶意软件开发者可能会将广告、间谍软件或其他恶意代码捆绑在免费的屏幕保护程序中,并试图通过这种方式获取用户信息或收取隐藏费用。因此,在下载任何软件之前,请务必查看评价和评论以确保其安全性和可靠性,并避免从未知来源下载软件。

另外,某些时钟屏保可能需要连接互联网才能正常工作(例如更新时间),这可能会导致数据使用量增加并产生网络流量费用。请注意检查相关设置以了解是否需要连接互联网,并根据自己的需求选择合适的选项。

自己把按键接口改一下,加一个ROM,这是8051的程序只要改一下就可以用在8031 因为它们的指令系统是一样的 你看着办吧。

要是悬赏分多的话 我可以帮你改。嘎嘎

HOUR EQU 40H ;存放时信息的单元

MINUTE EQU 41H ;存放分信息的单元

SECOND EQU 42H ;存放秒信息的单元

NUM EQU 43H ;存放T0溢出次数的单元

ORG 0000H ;程序入口

AJMP MAIN

ORG 0030H ;主程序入口

MAIN:MOV SP,#60H ;指定堆栈栈底

MOV HOUR,#00H

MOV MINUTE,#00H

MOV SECOND,#00H ;将时、分、秒分别清零

MOV NUM,#0

MOV TMOD,#01H ;设T0工作于方式1,用于定时

MOV TH0,#4CH ;设置T0的初始值

MOV TL0,#00H

MOV IE,#00H ;关中断

SETB TR0 ;开启定时器T0

LOOP:NOP

NOP

ACALL DISPLAY ;调用显示子程序

NOP

NOP

LOOP1:JB TF0,TIME ;等待定时溢出

LJMP LOOP1

TIME:CLR TR0 ;关闭定逼

PUSH DPL ;保护现场

PUSH DPH

PUSH ACC

MOV TH0,#4CH ;重新设置T0的值

MOV TL0,#00H

SETB TR0 ;开启T0

MOV A,NUM

INC A ;溢出次数+1

MOV NUM,A

CJNE A,#0AH,TT1 ;检测键盘

MOV P1,#0FH ;设键盘初值

MOV R0,#04H ;延时消抖

LCALL DELAY

JNB P10,T0C1 ;为0表示P10按下,转T0C1调整秒

JNB P11,T0C2 ;为0表示P11按下,转T0C2调整分

JNB P12,T0C3 ;为0表示P12按下,转T0C3调整时

TT1: CJNE A,#140,RR4

MOV NUM,#00H

T0C1:MOV A,SECOND

INC A ;秒单元内容加1

DA A ;调整为BCD码

MOV SECOND,A

CJNE A,#60H,RR4 ;不为60秒继续等待

setb flag:

clr flag

RR1: MOV SECOND,#00H ;为60秒将秒单元清零

T0C2:MOV A,MINUTE

INC A ;分单元内容加1

DA A ;调整为BCD码

MOV MINUTE,A

CJNE A,#60H,RR4 ;不为60分继续等待

RR2: MOV MINUTE,#00H ;为60分,分单元清零

T0C3:MOV P1,#0F0H ; 1小时闪一次

LCALL DELAY ;延时

MOV P1,#0FH

MOV A,HOUR

INC A ;时单元内容加1

DA A ;调整为BCD码

MOV HOUR,A

CJNE A,#24H,RR4 ;不为24小时继续等待

RR3: MOV HOUR,#00H ;为24小时,时单元清零

RR4: POP ACC ;恢复现场

POP DPH

POP DPL

LJMP LOOP

DELAY:MOV R1,#10H ;延时子程序

DELAY1:MOV R2,#20H

DJNZ R2,$

DJNZ R1,DELAY1

DJNZ R0,DELAY

RET

DISPLAY:MOV DPTR,#TAB ;送表头基地址

MOV A,HOUR

ANL A,#0FH ;屏蔽时高位

MOVC A,@A+DPTR ;查时高位

MOV P0,A

CLR P26 ;开显示

MOV R0,#1 ;延时消除鬼影

LCALL DELAY

SETB P26 ;关显示

MOV A,HOUR

ANL A,#0F0H

SWAP A

MOVC A,@A+DPTR

MOV P0,A

CLR P27

MOV R0,#1

LCALL DELAY

SETB P27

MOV A,MINUTE

ANL A,#0FH

MOVC A,@A+DPTR

MOV P0,A

CLR P24

MOV R0,#1

LCALL DELAY

SETB P24

MOV A,MINUTE

ANL A,#0F0H

SWAP A

MOVC A,@A+DPTR

MOV P0,A

CLR P25

MOV R0,#1

LCALL DELAY

SETB P25

MOV A,SECOND

ANL A,#0FH

MOVC A,@A+DPTR

MOV P0,A

CLR P22

MOV R0,#1

LCALL DELAY

SETB P22

MOV A,SECOND

ANL A,#0F0H

SWAP A

MOVC A,@A+DPTR

MOV P0,A

CLR P23

MOV R0,#1

LCALL DELAY

SETB P23

RET

TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

END

以上就是关于苹果手机,下载小丸子时钟,设置完闹钟没反应全部的内容,包括:苹果手机,下载小丸子时钟,设置完闹钟没反应、求开发板上的实时时钟程序、求时钟C语言程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10073447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存