[C] 纯文本查看 复制代码#include
#define lsd_seg P0
#define ledx P1
#define lsd_pos P2
#define adjust_offset 2789
sbit key2=P3^4;
sbit key3=P3^5;
sbit key4=P3^6;
sbit key5=P3^7;
sbit led1=P1^0;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led7=P1^6;
sbit beep=P2^3;
int fiftyms_count=0,pendulum,flash,set_mode,hour_alarm,adjust=0;
int hour,min,sec;
unsigned char code lsd_list[]= {0x8f,0x4f,0x2f,0x1f};
unsigned char code charset[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(int i)
{
int j,k;
for(j=i; j>0; j--)
for(k=124; k>0; k--);
}
void lsd_display(int which,int body)
{
lsd_seg=0x00;
lsd_pos|=0xf0;
lsd_pos=lsd_pos&lsd_list[which];
switch(set_mode)
{
case 0:
if(which==2&&pendulum)
lsd_seg=charset[body]+0x80;
else
lsd_seg=charset[body];
break;
case 1:
if((which==2||which==3)&&pendulum)