1、使用單片機(jī)定時(shí)器制作分表;
2、分、秒;
3、可任意調(diào)節(jié)設(shè)置時(shí)間;
4、可設(shè)置一個(gè)鬧鐘;
5、整點(diǎn)報(bào)時(shí)功能。
it L4=P2^7;
sbit k1=P3^2;//按鈕
sbit k2=P3^3;
sbit k3=P3^4;
sbit k4=P3^5;
sbit beep=P3^6;//蜂鳴器
uchar code Lduan0[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};//無(wú)小數(shù)點(diǎn)
uchar code Lduan1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//有小數(shù)點(diǎn)
uchar time=0,miao=0,fen=0;//正常計(jì)時(shí)
uchar moshi=0; //系統(tǒng)模式
uchar fen_nao=0,miao_nao=30;//鬧鐘時(shí)間
uchar buzzr=0;//蜂鳴器報(bào)警時(shí)間
//延時(shí)函數(shù)
void delay_us(uint i)
{
uchar j=0;
for(j=0;j<i;j++);
}
//主函數(shù)
void main()
{
uchar k=0;
TMOD|=0X01;//設(shè)置定時(shí)器0
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
while(1)
{
if(!k1 &&(k!=1))//設(shè)置
{
k=1;
if(buzzr==0)
{
if(moshi<4)
moshi++;
else
moshi=0;
}
else
{
buzzr=0;
}
}
if(!k4)//OK
{
moshi=0;
buzzr=0;
}
if(moshi==1)//設(shè)置當(dāng)前分鐘
{
if(!k2 &&(k!=2))//加
{
k=2;
if(fen<59)
fen++;
else
fen=0;
}
if(!k3 &&(k!=3))//減
{
k=3;
if(fen>0)
fen--;
else
fen=59;
}
}
if(moshi==2)//設(shè)置當(dāng)前秒
{
if(!k2 &&(k!=2))//加
{
k=2;
if(miao<59)
miao++;
else
miao=0;
}
if(!k3 &&(k!=3))//減
{
k=3;
if(miao>0)
miao--;
else
miao=59;
}
}
if(moshi==3)//設(shè)置鬧鐘分鐘
{
if(!k2 &&(k!=2))//加
{
k=2;
if(fen_nao<59)
fen_nao++;
else
fen_nao=0;
}
if(!k3 &&(k!=3))//減
{
k=3;
if(fen_nao>0)
fen_nao--;
else
資料借鑒于此紛傳
閱讀全文