用闹钟就可以做到。帮你找了好多款,自己看哪个适合
希望能帮到你
1 开心小闹钟 27 Build 0107 SP1
日常生活中常常会遇到由于事务繁忙或要处理的事太多,健忘,无序的事务管理,对个人和单
>
#include<reg52h>
#define uchar unsigned char
#define uint unsigned int
sbit dula=P2^6;
sbit wela=P2^7;
sbit rs=P3^5;
sbit lcden=P3^4;
sbit s1=P3^0;
sbit s2=P3^1;
sbit s3=P3^2;
sbit rd=P3^7;
uchar count,s1num;
char miao,shi,fen;
uchar code table[]=" 2007-7-30 MON";
uchar code table1[]=" 00:00:00";
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
rs=0;
lcden=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_date(uchar date)
{
rs=1;
lcden=0;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
uchar num;
dula=0;
wela=0;
lcden=0;
// fen=59;
// miao=53;
// shi=23;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
write_com(0x80);
for(num=0;num<15;num++)
{
write_date(table[num]);
delay(5);
}
write_com(0x80+0x40);
for(num=0;num<12;num++)
{
write_date(table1[num]);
delay(5);
}
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void write_sfm(uchar add,uchar date)
{
uchar shi,ge;
shi=date/10;
ge=date%10;
write_com(0x80+0x40+add);
write_date(0x30+shi);
write_date(0x30+ge);
}
void keyscan()
{
rd=0;
if(s1==0)
{
delay(5);
if(s1==0)
{ s1num++;
while(!s1);
if(s1num==1)
{
TR0=0;
write_com(0x80+0x40+10);
write_com(0x0f);
}
}
if(s1num==2)
{
write_com(0x80+0x40+7);
}
if(s1num==3)
{
write_com(0x80+0x40+4);
}
if(s1num==4)
{
s1num=0;
write_com(0x0c);
TR0=1;
}
}
if(s1num!=0)
{
if(s2==0)
{
delay(5);
if(s2==0)
{
while(!s2);
if(s1num==1)
{
miao++;
if(miao==60)
miao=0;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}
if(s1num==2)
{
fen++;
if(fen==60)
fen=0;
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
if(s1num==3)
{
shi++;
if(shi==24)
shi=0;
write_sfm(4,shi);
write_com(0x80+0x40+4);
}
}
}
if(s3==0)
{
delay(5);
if(s3==0)
{
while(!s3);
if(s1num==1)
{
/ if(miao==0)
{
miao=59;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}/
miao--;
if(miao==-1)
miao=59;
write_sfm(10,miao);
write_com(0x80+0x40+10);
}
if(s1num==2)
{
fen--;
if(fen==-1)
fen=59;
write_sfm(7,fen);
write_com(0x80+0x40+7);
}
if(s1num==3)
{
shi--;
if(shi==-1)
shi=23;
write_sfm(4,shi);
write_com(0x80+0x40+4);
}
}
}
}
}
void main()
{
init();
while(1)
{
keyscan();
}
// while(1);
}
void timer0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==18)
{
count=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
}
write_sfm(4,shi);
}
write_sfm(7,fen);
}
write_sfm(10,miao);
}
} 自己在网上找个图看哈就差不多了希望采纳
生活中我们会常常遇到需要闹钟提醒;不管是起床还是生活中的事件提醒。
那作为Android开发如何自己开发一个闹钟功能呢,是不是觉得很酷呢?接下来我们就实战一个闹钟。
本示例采用的是RecyclerView,其适配器类与常无二,其异在于继承一个代理类,为适配之后侧滑删除而准备
建立一个内部类ViewHolder实现控件定义申明
实现onCreateViewHolder方法载入子项布局文件
绑定实体类,实现onBindViewHolder获取数据
此处有三处状态,第一种状态:第一次进入程序,默认加载固定闹钟子项;第二种状态:进入添加子项页面,然后返回其主页面,并判断其switch是否为ture,如果为ture则添加子项;第三种状态:程序被系统回收或者用户停止程序,并再次进入程序,防止加载前一时刻闹钟子项;
添加依赖 实现侧滑主要依赖于一个第三方包,然后使用RecyclerView进行子项绑定 依赖如下:
并在目录buildgradle包下添加如下库
其实现侧滑删除主要的玄机在于布局文件当中,使用RelativeLayout布局,将删除按钮固定在布局右方,并使用其他布局将其覆盖,只有滑动时,才将其显示。掩盖侧滑删除按钮与暴露侧滑删除按钮效果对比图如下
然后,在适配器类中,实现WeSwipeHelperSwipeLayoutTypeCallBack接口,实现如下三个方法,第一个方法为获取侧滑删除按钮的宽度;第二个方法为需要滑动的视图,也就是覆盖侧滑删除按钮的布局;第三个方法为当视图正在滑动时,用户触发单击事件,自动还原滑动状态
最后,在需要添加子项的视图中绑定RecyclerView即可
通过监听子项滑动删除按钮点击事件,实现子项删除
跳转新增闹钟子项Acticity需要传输实体类对象,传输对象一般需要序列化改类,其 *** 作如下
定义实体类,并实现序列化
然后通过Intent传输Bundle对象
实现时间选择主要使用系统集成的组件TimePicker,其使用方法如下 其有两种显示方式,第一种为spinner,就是下拉滑动式,第二种为clock,即显示一个时钟,通过滑动指针选择时间
在stylexml文件中申明如下样式
然后再指定Activcty申明即可
获取数据比较简单,实现对应接口即可
将获取的数据通过SharedPreferences存储起来,然后点击存储时,进行页面跳转,然后再该界面进行取出数据
存储数据
首先判断回调的switch数据是否为ture,如果为ture则保存该子项,然后再适配器类中进行数据添加
选中与默认两种状态效果图如下
创建thumb和track样式
创建一个选择器文件,有选中和默认两种状态
创新open_thumbxml文件
创建shut_thumbxml文件
同样创建一个选择器,并用于两种状态
其中AlarmManager为系统主要 *** 作类,参数为提醒模式、提醒时间(long型)、PendingIntent对象 以下有三种时间传入,第一种,直接传入一个Long型时间用于测试,第二种,通过设置系统启动至今而设置时间,第三种,通过取出设置的时间,然后获取系统当前时间,将其差传入其中。
然后再清单文件中注册服务
使用Intent实现服务启动
杀死程序
本示例总共使用到了三个单例类:SP(SharedPreferences封装)、TimeFormat(时间数据格式封装)、KillProcess(杀死所有Activity)
SharedPreferences
KillProcess
文章带这里就完成了一个简单的闹钟;Android开发还有许多更加更多的知识学习。进一步学习Android技术,我这里推荐这份笔记方便学习,我就放在私信, 发送“核心笔记”或“手册”即可获取。朋友们可以免费领取!
我来发一个C语言51单片机时钟程序,希望能帮到你
/ 程序功能:带定时闹铃时钟 /
/---------------------------------------------------------------/
#include <AT89X51H> /包含器件配置文件/
#define uchar unsigned char
#define uint unsigned int
char DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xF8,0x80,0x90,};/0~9的数码管段码/
uchar hour=0,min=0,sec=0; /时、分、秒单元清零/
uchar deda=0; /5mS计数单元清零/
bit d_05s=0; /05秒标志/
uchar set=0; /模式设定标志/
uchar m=0;
uchar flag=0; /RAM掉电标志/
void delay(uint k); /延时函数/
void conv(); /走时单元转换/
void disp(); /走时时间显示函数/
/------------------------走时函数部分 ----------------------/
/定时器T0 5mS初始化/
void init_timer()
{
TMOD=0x01;
TH0=-(4800/256);
TL0=-(4800%256);
IE=0x82;
TR0=1;
}
/---------------------------------/
/5mS定时中断服务函数/
void T0_srv(void) interrupt 1
{
TH0=-(4800/256);
TL0=-(4800%256);
deda++;
}
/----------------------------------/
/时、分、秒单元及走时单元转换/
void conv()
{
if(deda<=100)d_05s=0;
else d_05s=1;
if(deda>=200){sec++;deda=0;}
if(sec==60){min++;sec=0;}
if(min==60){hour++;min=0;}
if(hour==24){hour=0;}
}
/------------------------ 显示函数部分 ----------------------/
/走时时间显示函数/
void disp()
{
P0=DATA_7SEG[hour/10];P2=0xf7;delay(1);
P0=DATA_7SEG[hour%10];P2=0xfb;delay(1);
if(d_05s==1){if(P2_2==0)P0_7=0;else P0_7=1;}
delay(1);
P0=DATA_7SEG[min/10];P2=0xfd;delay(1);
P0=DATA_7SEG[min%10];P2=0xfe;delay(1);
}
/---------------------- 调整时间函数部分 -------------------/
/调整走时时间/
void set_time()
{uchar m;
if(P2_5==0)delay(1);
if(P2_5==0)hour++;
if(hour==24)hour=0;
for(m=0;m<30;m++)
{
disp();
if(P2_2==0)P0_7=0;
else P0_7=1;
delay(1);
}
if(P2_6==0)delay(1);
if(P2_6==0)min++;
if(min==60)min=0;
for(m=0;m<30;m++)
{
disp();
if(P2_2==0)P0_7=0;
else P0_7=1;
delay(1);
}
}
/------------------ 按键扫描、延时等函数部分-------------------/
/走时时间程序函数/
void time()
{
conv(); / 走时单元转换函数 /
disp(); / 走时时间显示函数 /
}
/------------------------------------/
/扫描按键函数/
void scan_key()
{
delay(1);
if(P2_4==0)set++;
if(set>=2)set=0;
if(set==1)flag=0x55;
F0:if(P2_4==0)goto F0; /按键未释放,在此等候/
}
/------------------------------/
/延时函数/
void delay(uint k)
{
uint i,j;
for(i=0;i<k;i++){
for(j=0;j<121;j++)
{;}}
}
/----------------------- 主函数 ------------------------- /
/主函数/
void main()
{
init_timer(); /定时器T0初始化/
while(1) /无限循环/
{
if(P2_4==0)scan_key(); /有按键,调用按键扫描函数/
switch(set) /根据set键值散转/
{
case 0:time(); break; /走时时间程序/
case 1:set_time();break; /走时时间调整/
default:break; /其它退出/
}
if(flag!=0x55) /判断掉电标志/
{
P0=0xc0; P2=0xc0; delay(100);
P2=0xff; delay(400);
}
}
}
用C语言实现的闹钟程序
#include
#include
#include
#include
#include
void
main()
{
int
gd=DETECT,gm;
int
x=320,y=240,r=200,i,h,m,s,thetamin,thetasec;
struct
time
t;
char
n[12][3]={"3","2","1","12","11","10","9","8","7","6","5","4"};
initgraph(&gd,&gm,"g:\\tc\\bgi");//图形驱动器路径,根据自己的系统更换。
circle(x,y,210);
setcolor(4);
settextstyle(4,0,5);
for(i=0;i<12;i++)
{
if(i!=3)
outtextxy(x+(r-14)cos(M_PI/6i)-10,y-(r-14)sin(M_PI/6i)-26,n[i]);
else
outtextxy(x+(r-14)cos(M_PI/6i)-20,y-(r-14)sin(M_PI/6i)-26,n[i]);
}
gettime(&t);
printf("The
current
time
is:
%2d:%02d:%02d%02d\n",tti_hour,
tti_min,
tti_sec,
tti_hund);
while(!kbhit())
{
setcolor(5);
setfillstyle(1,5);
circle(x,y,10);
floodfill(x,y,5);
gettime(&t);
if(tti_min!=m)
{
setcolor(0);
line(x,y,x+(r-60)cos(thetamin(M_PI/180)),y-(r-60)sin(thetamin(M_PI/180
)));
circle(x+(r-80)cos(thetamin(M_PI/180)),y-(r-80)sin(thetamin(M_PI/180))
,10);
line(x,y,x+(r-110)cos(M_PI/6h-((m/2)(M_PI/180))),y-(r-110)sin(M_PI/6h
-((m/2)(M_PI/180))));
circle(x+(r-130)cos(M_PI/6h-((m/2)(M_PI/180))),y-(r-130)sin(M_PI/6h-(
(m/2)(M_PI/180))),10);
}
if(tti_hour>12)
tti_hour=tti_hour-12;
if(tti_hour<4)
h=abs(tti_hour-3);
else&n
bsp;
h=15-tti_hour;
m=tti_min;
if(tti_min<=15)
thetamin=(15-tti_min)6;
else
thetamin=450-tti_min6;
if(tti_sec<=15)
thetasec=(15-tti_sec)6;
else
thetasec=450-tti_sec6;
setcolor(4);
line(x,y,x+(r-110)cos(M_PI/6h-((m/2)(M_PI/180))),y-(r-110)sin(M_PI/6h
-((m/2)(M_PI/180))));
circle(x+(r-130)cos(M_PI/6h-((m/2)(M_PI/180))),y-(r-130)sin(M_PI/6h-(
(m/2)(M_PI/180))),10);
line(x,y,x+(r-60)cos(thetamin(M_PI/180)),y-(r-60)sin(thetamin(M_PI/180
)));
circle(x+(r-80)cos(thetamin(M_PI/180)),y-(r-80)sin(thetamin(M_PI/180))
,10);
setcolor(15);
line(x,y,x+(r-70)cos(thetasec(M_PI/180)),y-(r-70)sin(thetasec(M_PI/180
)));
delay(1000);
setcolor(0);
line(x,y,x+(r-70)cos(thetasec(M_PI/180)),y-(r-70)sin(thetasec(M_PI/180
)));
}
}
该程序已在Turbo
C++30中通过编译
以华为P40、EMUI11为例。有以下步骤:
1、打开手机后,选择手机主界面中的“时钟”图标;
2、选择屏幕左下角的“新建闹钟”按钮,进入设置闹钟界面;
3、根据个人需求,选择自己要设置的时间;设置闹钟铃声、重复周期、响铃时长、再响间隔等
4、在闹钟列表中就会显示出刚才设置的闹钟,旁边有闹钟开关。还是找不到可以下载第三方软件,比如正点闹钟就很好。
以上就是关于电脑闹钟下载全部的内容,包括:电脑闹钟下载、哪位知道这个单片机多功能电子钟怎么做要求如下,功能很多,挑战也很大啊,谢谢啦、怎样用单片机做一个多功能万年历,用12864屏,不能用时钟芯片,万年历有闹钟,计算机秒表等功能,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)