ÄúµÄλÖãºÍøÕ¾Ê×Ò³ > µçÆ÷άÐÞ×ÊÁÏÍø > ÕýÎÄ >
¿ÉÒÔµ÷Õûʱ¼äµÄµç×ÓʱÖÓµÄCÓïÑÔ
À´Ô´£º ÈÕÆÚ£º2013-12-12 11:13:47 ÈËÆø£º±êÇ©£º
ʹÓÃstc89c52µ¥Æ¬»ú£¬µç·ºÜ¼òµ¥£¬²ÉÓðËλ¹²ÑôÊýÂë¹Ü£¬p0¿ÚΪÊýÂë¹ÜµÄ¶ÎÑ¡£¬p2¿ÚΪλѡ. ͨ¹ýkey1-key3À´µ÷Õûʱ¼ä
ÖØµã£º
1¡¢º¯ÊýµÄÄ£¿é»¯
2¡¢ÖжÏ
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit p2_0=P2^0;
sbit p2_1=P2^1;
sbit p2_2=P2^2;
sbit p2_3=P2^3;
sbit p2_4=P2^4;
sbit p2_5=P2^5;
sbit p2_6=P2^6;
sbit p2_7=P2^7;
sbit key0=P3^2;
sbit key1=P3^3;
sbit key2=P3^4;
sbit key3=P3^5;
sbit p17=P1^7;
uint t=0;
uint key=0;
uchar set=0;
uchar second=00,minter=55,hour=11;
uchar second_1,second_2,minter_1,minter_2,hour_1,hour_2;
const uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf} ; //0~~9ÊýÂë±í
void delay() //ÑÓʱÑÓʱ×Ó³ÌÐò
{ uint i;
for(i=0;i<240;i++);
}
void time_0(void) interrupt 1 using 0 //ÄÚ²¿¶¨Ê±Æ÷0ÄÚ²¿¶¨Ê±50ms
{
TH0=0x3c;
TL0=0xb0;
t++; // tÊǼǶ¨Ê±´ÎÊý
}
void display(uchar secondd,uchar minterr,uchar hourr) //ÏÔʾʼÖÕʱ¼äµÄ×Ó³ÌÐò
{
second_1=secondd/10;
second_2=secondd%10;
minter_1=minterr/10;
minter_2=minterr%10;
hour_1=hourr/10;
hour_2=hourr%10;
P0=tab[second_2];
p2_0=0;
delay();
p2_0=1;
P0=tab[second_1];
p2_1=0;
delay();
p2_1=1;
p2_2=0;
P0=0xbf;
delay();
p2_2=1;
P0=tab[minter_2];
p2_3=0;
delay();
p2_3=1;
P0=tab[minter_1];
p2_4=0;
delay();
p2_4=1;
p2_5=0;
P0=0xbf;
delay(); //ÑÓʱ ÊÇΪÁËʹ— “——”ÏÔʾ³öÀ´£¬·ñÔòʱ¼äÌ«¿ì£¬—
p2_5=1;
P0=tab[hour_2];
p2_6=0;
delay();
p2_6=1;
P0=tab[hour_1];
p2_7=0;
delay();
p2_7=1;
}
void time()
{
//¶¨Ê±1sµÄʱ¼äÊÇ·ñµ½£¿
if(t==19) //1sµ½£¬Ôò¼ÓÒ»Ãë
{ t=0;
second++;
if(second==60) // ÊÇ·ñΪ60Ãë £¬ÊÇÃëÇåÁ㣬·Ö¼ÓÒ»Ã룬²»µ½ÔòÌø³ö
{
second=0;
minter++;
if(minter==60) // ·ÖÊÇ·ñΪ60·Ö£¬ÊÇ £¬·ÖÇåÁ㣬ʱ¼ÓÒ»£»²»ÊÇÔòÌø³ö
{ minter=0;
hour++;
if(hour==24)
{
hour=0;
}
}
}
}
display(second,minter,hour); //µ÷ÓÃÏÔʾº¯Êý À´ÏÔʾʱ¼äʱ¼ä
}
uint sCAN_key() //µ÷Õûʱ¼ä °´¼ü ɨÃè º¯Êý
{ //ÑÓʱ
delay(); //ÅÐ¶Ï Èç¹û°´¼ü °´key3ÏÂÔò·µ»Ø1 À´µ÷Óà µ÷Õûʱ¼äº¯Êý£¬²»ÎªÁãÔò·µ»Ø0 ²»±ä²»µ÷Õû
if(key0==0)
set=1;
if(key0==1)
set=0;
return set;
}
void set_time() //µ÷Õûʱ¼äº¯Êý
{ uchar m;
if(key1==0) delay(); //µ÷ÕûСʱ,È·¶¨key1½¡°´ÏÂ
if(key1==0) hour++; // xСʱÊýµÝÔö
if(hour==24) hour=0; //СʱÊýµ½24£¬´ÓÁ㿪ʼ
for(m=0;m<20;m++) //Ñ»·20´Î
{ time(); //µ÷ÓÃÏÔʾº¯Êý À´ÏÔʾʱ¼äʱ¼ä
}
if(key2==0) delay(); //µ÷Õû·ÖÖÓ
if(key2==0) minter++;
if(minter==60) minter=0;
delay();
time(); //µ÷ÓÃʱ¼äº¯Êý À´ÏÔʾʱ¼äʱ¼ä
if£¨key0==0£©
time();
}
void main() //Ö÷º¯Êý É趨 ÄÚ²¿Ê±¼ä¶¨Ê±
{
TMOD=0X01;
TH0=0X10;
TL0=0X00;
EA=1;
ET0=1;
TR0=1;
P2=0xff;
while(1)
{
if(key0==0) // pÅÐ¶Ï µ÷Õûʱ¼äµÄ°´¼üÊÇ·ñ°´Ï ¼´ ÊÇ·ñÐèÒª µ÷Õûʱ¼ä
{
p17=0;
delay();
delay();
delay();
p17=1;
delay();
delay();
key=scan_key();
}
switch(key)
{ //¶¨Ê±1sµÄʱ¼äÊÇ·ñµ½£¿
case 0: time(); break;
case 1: set_time();break;
default :break;
}
}
}
¡¾¿´¿´ÕâÆªÎÄÕÂÔڰٶȵÄÊÕ¼Çé¿ö¡¿
Ïà¹ØÎÄÕÂ
- ÉÏһƪ£º NECÖÆÊ½ºìÍâÏß½âÂë³ÌÐò
- ÏÂһƪ£º »ã±àµç×ÓÖÓµÄÉè¼Æ±à³Ì