久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
51鬧鐘程序
[打印本頁]
作者:
小瑞
時間:
2015-8-17 19:43
標(biāo)題:
51鬧鐘程序
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
char shi,fen,miao,shi0=-1,fen0,miao0=1, shi1,fen1,miao1,
numt0,numt1,numt2,num,num1,num2,num3,i=1,aa,nian,yue=1,ri=1;
char shi2=-1,shi3=-1,fen2,fen3,miao2=2,miao3=3,num4,num5,flag;
uchar code table[]=
{
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
void delayms(uint xms) //延時
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display(char shi,char fen,char miao) //顯示子函數(shù)
{
char shi1,shi2,fen1,fen2,miao1,miao2;
shi1=shi%10;
shi2=shi/10;
fen1=fen%10;
fen2=fen/10;
miao1=miao%10;
miao2=miao/10;
dula=1;
P0=0x80;
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(1);
dula=1;
P0=0x80;
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(1);
dula=1;
P0=table[miao1];
dula=0;
P0=0xff;
wela=1;
P0=0xdf;
wela=0;
delayms(1);
dula=1;
P0=table[miao2];
dula=0;
P0=0xff;
wela=1;
P0=0xef;
wela=0;
delayms(1);
dula=1;
P0=table[fen1];
dula=0;
P0=0xff;
wela=1;
P0=0xf7;
wela=0;
delayms(1);
dula=1;
P0=table[fen2];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
delayms(1);
dula=1;
P0=table[shi1];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delayms(1);
dula=1;
P0=table[shi2];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delayms(1);
}
void tiaoshi() //二十四小時制調(diào)時
{
if(key1==0)
{
delayms(5);
if(key1==0)
{
num++;
while(!key1);
if(num==3)
num=0;
}
}
}
void tiaobiao()
{
if(num==0)
{
led1=0;led3=1;led2=1;
if(key2==0)
{
delayms(5);
if(key2==0)
shi++;
shi1++;
while(!key2);
if(shi==24)
shi=0;
if(shi1==13)
shi1=1;
}
if(key3==0)
{
delayms(5);
if(key3==0)
shi--;
shi1--;
while(!key3);
if(shi==-1)
shi=23;
if(shi1==0)
shi1=12;
}
}
if(num==1)
{
led2=0;led1=1;led3=1;
if(key2==0)
{
delayms(5);
if(key2==0)
fen++;
fen1++;
while(!key2);
if(fen==60)
fen=0;
if(fen1==60)
fen1=0;
}
if(key3==0)
{
delayms(5);
if(key3==0)
fen--;
fen1--;
while(!key3);
if(fen==-1)
fen=59;
if(fen1==-1)
fen1=59;
}
}
if(num==2)
{
led3=0;led2=1;led1=1;
if(key2==0)
{
delayms(5);
if(key2==0)
miao++;
miao1++;
while(!key2);
if(miao==60)
miao=0;
if(miao1==60)
miao1=0;
}
if(key3==0)
{
delayms(5);
if(key3==0)
miao--;
miao1--;
while(!key3);
if(miao==-1)
miao=59;
if(miao1==-1)
miao1=59;
}
}
}
void moshi() //模式選擇
{
if(key4==0)
{
delayms(5);
if(key4==0)
{
aa++;
if(aa==7)
aa=0;
while(!key4);
}
}
}
void naozhong() //鬧鐘設(shè)置
{
if(key1==0)
{
delayms(5);
if(key1==0)
num1++;
num4++;
num5++;
if(num1==2)
num1=0;
if(num4==2)
num4=0;
if(num5==2)
num5=0;
while(!key1);
}
}
void sznz()
{
if(num1==0)
{
led1=0;led2=1;led3=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
shi0++;
if(shi0==24)
shi0=0;
while(!key2);
}
}
}
if(num1==1)
{
led2=0; led1=1;led3=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
fen0++;
if(fen0==60)
fen0=0;
while(!key2);
}
}
}
if(key3==0)
{
delayms(5);
if(key3==0)
{
flag++;
P1=0;
if(flag==2)
flag=0;
while(!key3);
}
}
}
void sznz1()
{
if(num4==0)
{
led1=0;led2=1;led3=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
shi2++;
if(shi2==24)
shi2=0;
while(!key2);
}
}
}
if(num4==1)
{
led2=0; led1=1;led3=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
fen2++;
if(fen2==60)
fen2=0;
while(!key2);
}
}
}
if(key3==0)
{
delayms(5);
if(key3==0)
{
flag++;
P1=0;
if(flag==2)
flag=0;
while(!key3);
}
}
}
void sznz2()
{
if(num5==0)
{
led1=0;led2=1;led3=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
shi3++;
if(shi3==24)
shi3=0;
while(!key2);
}
}
}
if(num1==1)
{
led2=0; led1=1;led3=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
fen3++;
if(fen3==60)
fen3=0;
while(!key2);
}
}
}
if(key3==0)
{
delayms(5);
if(key3==0)
{
flag++;
P1=0;
if(flag==2)
flag=0;
while(!key3);
}
}
}
void riqi() //調(diào)日期
{
if(key1==0)
{
delayms(5);
if(key1==0)
{
num2++;
if(num2==3)
num2=0;
while(!key1);
}
}
}
void xgrq()
{
if(num2==0)
{
led1=0;led3=1;led2=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
nian++;
while(!key2);
}
}
if(key3==0)
{
delayms(5);
if(key3==0)
{
nian--;
while(!key3);
}
}
}
if(num2==1)
{
led2=0;led1=1;led3=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
yue++;
if(yue==13)
yue=1;
while(!key2);
}
}
if(key3==0)
{
delayms(5);
if(key3==0)
{
yue--;
if(yue==0)
yue=12;
while(!key3);
}
}
}
if(num2==2)
{
led3=0; led2=1;led1=1;
if(key2==0)
{
delayms(5);
if(key2==0)
{
ri++;
if(ri==32)
ri=1;
while(!key2);
}
}
if(key3==0)
{
delayms(5);
if(key3==0)
{
ri--;
if(ri==0)
ri=31;
while(!key3);
}
}
}
}
void init()
{
TMOD=0x11;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
EA=1;
ET0=1;
ET1=1;
TR0=1;
TR1=1;
}
void main()
{
init();
while(1)
{
moshi();
if(aa==0) //時鐘24小時制
{
display(shi,fen,miao);
tiaobiao();
tiaoshi();
}
if(aa==1) //時鐘12小時制
{
display(shi1,fen1,miao1);
tiaobiao();
tiaoshi();
}
if(aa==2) //日期
{
display(nian,yue,ri);
riqi();
xgrq();
}
if(aa==3) //鬧鐘 1
{
display(shi0,fen0,miao0);
naozhong();
sznz();
}
if(aa==4) //鬧鐘 2
{
display(shi2,fen2,miao2);
naozhong();
sznz1();
}
if(aa==5) //鬧鐘 3
{
display(shi3,fen3,miao3);
naozhong();
sznz2();
}
if(aa==6)
{
if(key1==0)
{
delayms(5);
if(key1==0)
{
TR1=~TR1;
beep=1;
P0=0xf7;
while(!key1);
}
}
if(key2==0)
{
delayms(5);
if(key2==0)
beep=1;
delayms(10000);
beep=0;
delayms(5000);
}
}
}
}
void T0_time() interrupt 1
{
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
numt0++;
if(numt0==20)
{
numt0=0;
miao++; //二十四小時制
if(miao==60)
{
miao=0;fen++;
if(fen==60)
{
fen=0;shi++;
if(shi==24)
{
shi=0 ;
ri++;
if(
(ri==32&&yue==1)||(ri==30&&yue==2)||(ri==32&&yue==3)||(ri==31&&yue==4)||
(ri==32&&yue==5)||(ri==31&&yue==6)||(ri==32&&yue==7)||(ri==32&&yue==8)||
(ri==31&&yue==9)||(ri==32&&yue==10)||(ri==31&&yue==11)||(ri==32&&yue==12)
)
{
ri=1;
yue++;
}
if(yue==13)
{
yue=1;
nian++;
}
}
}
}
miao1++;
if(miao1==60) //十二小時制
{
miao1=0;
fen1++;
if(fen1==60)
{
fen1=0;
shi1++;
if(shi1==13)
{
i++;
if(i%2==0)
{
led8=0;
led7=1;
}
if(i%2!=0)
{
led8=1;
led7=0;
}
shi1=1;
}
}
}
}
}
void T1_time() interrupt 3
{
TH1=(65536-45872)/256;
TL1=(65536-45872)%256;
numt1++;
if(flag==0)
{
if(numt1==20)
{
numt1=0;
if(
(shi0==shi&&fen0==fen&&miao<10)||
(shi2==shi&&fen2==fen&&miao<10)|| //鬧鐘響
(shi3==shi&&fen3==fen&&miao<10)
)
beep=0;
else
beep=1;
}
}
if(flag==1)
{ beep=1;
if(numt1==20)
{
numt1=0;
if(
(shi0==shi&&fen0==fen&&miao<12)||
(shi2==shi&&fen2==fen&&miao<12)|| //鬧鐘響
(shi3==shi&&fen3==fen&&miao<12)
)
beep=0;
}
}
}
作者:
GUOPK
時間:
2015-8-18 09:07
實(shí)踐成功??有沒有電路圖。
作者:
南天白云
時間:
2015-8-18 17:56
樓主:你用51單片機(jī)定時與實(shí)際時間相差多少?不過你思路可以,玩玩還是可以的,拿來做成實(shí)際東西可能不能吧?
作者:
wangxiaomi
時間:
2015-11-1 19:53
要是有圖就好了
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文字幕国产视频
|
国产九九精品视频
|
欧洲av一区
|
看a网站
|
欧美日韩在线成人
|
久久国产精品视频
|
91网站在线观看视频
|
欧美激情区
|
国产做a爱免费视频
|
av官网在线
|
伊人久久一区二区
|
毛色毛片免费看
|
日韩亚洲欧美一区
|
狠狠ri
|
91精品国产91
|
一区二区在线观看免费视频
|
欧美一级在线
|
成人性生交大片免费看r链接
|
亚洲国产高清高潮精品美女
|
一区亚洲
|
有码在线
|
欧美色999
|
国精产品一区一区三区免费完
|
一级黄色日本片
|
91精品国产综合久久久久久丝袜
|
日韩中文一区二区
|
国产欧美日韩一区二区三区
|
能看的av
|
亚洲欧美激情国产综合久久久
|
日本韩国电影免费观看
|
夜夜爽99久久国产综合精品女不卡
|
国产精品1区
|
国产精品美女在线观看
|
免费国产精品久久久久久
|
久久久精品一区
|
日本网站在线看
|
在线视频一区二区
|
成人综合视频在线观看
|
少妇一级淫片免费放播放
|
日韩成人
|
亚洲精品美女在线观看
|