p;
/***********************************************************
显示
***********************************************************/
void display(unsigned char hour,unsigned char minute)
{
P0=0xFF;
switch(position)
{
case 0:
smg_g=1;
smg_q=0;
P0=table[hour/10];
delay(3);
smg_q=1;
break;
case 1:
smg_q=1;
smg_b=0;
P0=table[hour%10];
if(tt>=10)
P0|=0x80;//小数点以半秒的时间闪烁
delay(3);
smg_b=1;
break;
case 2:
smg_b=1;
smg_s=0;
P0=table[minute/10];
delay(3);
smg_s=1;
break;
case 3:
smg_s=1;
smg_g=0;
P0=table[minute%10];
delay(3);
smg_g=1;
break;
}
position++;
if(position>3)
position=0;
}
/***********************************************************
延时
***********************************************************/
void delay(unsigned int time)
{
unsigned int x,y;
for(x=time;x>0;x--)
for(y=105;y>0;y--);
}
/***********************************************************
定时器TO中断
***********************************************************/
void t0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
/***********************************************************
定时器T1中断
***********************************************************/
void int1() interrupt 3 //?????
{
TH1=(65536-10000)/256; TL1=(65536-10000)%256;
m++;
if(m==100)
{
m=0;
s++;
if(s==100)
{
s=0;
}}}
void XS(int xs,int xm )//?????
{
d1=(xs/1)%10; d2=(xs/10)%10; d3=(xm/1)%10; d4=(xm/10)%10;
P0=table[d1]; smg_g=0; delay(1);smg_g=1;
P0=table[d2]; smg_s=0; delay(1); smg_s=1;
P0=table[d3]|0x80; smg_b=0; delay(1);smg_b=1;
P0=table[d4]; smg_q=0; delay(1);smg_q=1;
}
void set_miaobiao()
{
if(up==0)
{
delay(1);
if(up==0)
{
TR1=~TR1;
while(!up);
}
}
if(down==0)
{
delay(1);
if(down==0)
{
TR1=0;
m=0;s=0;
while(!down);
}
}
}
#include<reg52.h>
#define uchar unsigned char;#define uint unsigned int;//四盏灯sbit P13 = P1^3;sbit P35 = P3^5;sbit P36 = P3^6;sbit P37 = P3^7;//beepsbit beep = P1^1;
uchar position; uchar tt; static uchar second; static uchar minute;static uchar hour; static uchar set_second; static uchar set_minute;static uchar set_hour;static uchar t_mode;//-----------------秒表-------------------------------------
void XS(int xs,int xm); void set_miaobiao();int n=0,m=0,s=0; static char d1,d2,d3,d4;//-------------------------------------------------------
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0--9uchar beepTimes[23][2]={{6,50},{7,0},{7,25},{8,20},{8,30},{9,15},{9,25},{10,10},{10,30},{11,15},{11,25},{12,10},{13,20},{13,30},{14,15},{14,25},{15,10},{16,30},{17,0},{17,50},{18,0},{21,30},{23,0}};sbit smg_q = P2^4; sbit smg_b = P2^5;sbit smg_s = P2^6;sbit smg_g = P2^7;
sbit mode=P2^0; //按键定义sbit up=P2^1;sbit down=P2^2;sbit ent=P3^2;
//函数声明void keyscan();void setMinutes() ;void setHours();void