本着免费打样的福利,郑重声明我不是厂商托,
不是广告
不是广告
不是广告,
重要的事说三遍。
拿出了十几年不用的STC,翻箱倒柜两星期,终于找齐了原件,  ,打算给孩子做个玩具,本以为一两天就搞定的事情,结果搞了一星期,  。最后也是终于在参考论坛后,找到BUG,本着搬运他人,现回馈他人的原则,贡献电路代码。
单片机源程序如下:
#include "STC12C5A60S2.h"
#include<intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
/* define constants */
#define FOSC 11059200L
//#define MODE1T //Timer clock mode, comment this line is 12T mode, uncomment is 1T mode
#ifdef MODE1T
#define T1MS (65536-FOSC/500) //2ms timer calculation method in 1T mode
#else
#define T1MS (65536-FOSC/12/50) //50ms timer calculation method in 12T mode
#endif
#define F4KHz (256-FOSC/2/12/1000) //CLOCKOUT1
sfr WAKE_CLKO = 0x8f;
//数码管共阴极端口选择,低电平
sbit S1 = P0^7;
sbit S2 = P0^6;
sbit S3 = P0^5;
sbit S4 = P0^4;
//LED共阴极,低电平
sbit S5 = P0^2;
sbit S6= P0^1;
sbit S7 = P0^0;
sbit S8 = P1^2;
sbit S9 = P1^3;
sbit S10 = P1^7;
sbit S11 = P1^6;
sbit S12 = P0^3;
//蜂鸣器
sbit fmq = P3^5;
// 按键
sbit KEY_IN_1 = P1^4;
sbit KEY_IN_2 = P1^5;
//sbit KEY_IN_3 = P3^1;
//sbit KEY_IN_4 = P3^0;
//DS1302
sbit sclk = P3^2;
sbit sda = P3^3;
sbit rst = P3^4;
//共阴极数码管显示码,0-9,a-f,-,全灭,code区常数
unsigned char code smg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,
0x77,0x7C,0x39,0x5E,0x79,0x71,0x40,0x00};
unsigned char num[4]={0,0,0,0};//显示缓冲区
unsigned char alarm_num[4]={0,0,0,0};//alarm显示缓冲区
//60位LED流水灯控制
unsigned char data led_smg [8]= {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
/* define variables */
unsigned char miao = 0,fen =0,shi =0; //TIME
unsigned char alarm_fen = 0; alarm_shi =12; //alarm time
unsigned int count1; //counter for 1s
unsigned int key_count; //按键次数计数,状态切换
bit alarm = 0; //时钟启动控制位
bit dq =0; //设置时间模式
unsigned char mod = 0; //设置分=1 设置时=2 ,设置闹钟分=3,设置闹钟时=4,
//------------------------------------------------------
/*----------------------------函数声明-------------------*/
void led_display();
void display();
void alarm_display();
void time();
void KeyScan();
void alarm_prc();
void time_prc();
void delay(unsigned int T) //us延时函数
{
unsigned char b,c;
for(c=T;c>0;c--)
for(b=5;b>0;b--);
}
void delayms(uint z) //delayms
{
uint x,y;
for(x=z;x>0;x--)
for(y=848;y>0;y--);
}
/* Timer0 interrupt routines,2ms */
void tm0_isr() interrupt 1
{
TL0 = T1MS; //reload timer0 low byte
TH0 = T1MS >> 8; //reload timer0 high byte
count1++;
time(); //定时器时钟
}
//-----------------------------------------------
/* main program */
void main()
{
P2M1 = 0x00;
P2M0 = 0xff; // P2强推挽
P2 = 0x00; // 全关闭
#ifdef MODE1T
AUXR = 0x80; //timer0 work in 1T mode,timer1 work 12T mode
#endif
TMOD = 0x21; //set timer0 as mode1 (16-bit),set timer1 as mode2 (8-bit auto-reload)
TL0 = T1MS; //initial timer0 low byte
TH0 = T1MS >> 8; //initial timer0 high byte
TL1 = F4KHz; //initial timer1
TH1 = F4KHz; //initial timer1
ET0 = 1; //enable timer0 interrupt
EA = 1; //open global interrupt switch
TR0 = 1; //timer0 start running
while (1)
{
KeyScan();
if (dq)
{
time_prc(); //设置时钟
display();
}
if(alarm)
{
alarm_prc(); //设置闹钟
alarm_display(); //显示设置时间
}
if((dq == 0) && (alarm ==0))
{
display();
led_display();
if((alarm_shi==shi)&&(alarm_fen==fen)) { WAKE_CLKO= 0x02; TR1 = 1 ;}
if(fen == (alarm_fen+1)) // 1s
{
WAKE_CLKO= 0x00;TR1 = 0;
}
}
}
}
//-------------------- control time function --------------------
void time_prc()
{
num[3] = fen%10; //分钟个位
num[2] = fen/10; //分钟十位
num[1] = shi%10;
num[0] = shi/10;
}
//-----------------------alarm time function------------------
void alarm_prc()
{
alarm_num[3] = alarm_fen%10; //分钟个位
alarm_num[2] = alarm_fen/10; //分钟十位
alarm_num[1] = alarm_shi%10;
alarm_num[0] = alarm_shi/10;
}
//--------------------------------key Scan-----------------------
void KeyScan()
{
if (KEY_IN_1 == 0)
{
delayms(10);
if (KEY_IN_1 == 0) //按键确认
{
key_count++; //按键次数计数
while(!KEY_IN_1); //等待释放
if(key_count ==1) // first key
{
TR0 =0; //关闭定时器
P0 = P0|0x0f;
P1 = P1|0xcc; //关闭LED
dq =1; //时间设置模式
alarm = 0; //闹钟设置关闭
mod =1; // 时间分设置
}
if(key_count == 2)
{
mod = 2; //时间时设置
}
if(key_count == 3)
{
dq = 0; //时间设置关闭
alarm = 1; //闹钟设置开
mod = 3; //闹钟分设置
}
if(key_count == 4)
{
mod = 4; //闹钟时设置
}
if(key_count == 5) //退出设置,开始记时
{
key_count =0 ; //
alarm = 0;
dq = 0;
mod =0;
TL0 = T1MS; //initial timer0 low byte
TH0 = T1MS >> 8; //initial timer0 high byte
TR0=1;
}
}
}
if(key_count != 0) //进入设置模式
{
if(KEY_IN_2== 0)
{
delayms(10);
if(KEY_IN_2 == 0) //确认KEY2按键
{
while(!KEY_IN_2); //等待释放
if(mod == 1)
{
fen++;
if(fen == 60)
{
fen = 0;
}
}
if(mod == 2)
{
shi++;
if(shi == 24)
{
shi = 0;
}
}
if(mod == 3)
{
alarm_fen++;
if(alarm_fen == 60)
{
alarm_fen =0;
}
}
if(mod == 4)
{
alarm_shi++;
if(alarm_shi == 24)
{
alarm_shi =0;
}
}
}
}
}
}
//-----------------------------auto 时间更新函数-----------------------------------
void time()
{
if(count1 == 50) // 1s
{
count1 = 0;
miao++;
switch(miao)
{
case 1: led_smg[0] = 0x01;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 2: led_smg[0] = 0x02;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 3: led_smg[0] = 0x04;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 4: led_smg[0] = 0x08;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 5: led_smg[0] = 0x10;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 6: led_smg[0] = 0x20;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 7: led_smg[0] = 0x40;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 8: led_smg[0] = 0x80;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 9: led_smg[0] = 0x00;led_smg[1] = 0x01;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 10: led_smg[0] = 0x00;led_smg[1] = 0x02;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 11: led_smg[0] = 0x00;led_smg[1] = 0x04;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 12: led_smg[0] = 0x00;led_smg[1] = 0x08;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 13: led_smg[0] = 0x00;led_smg[1] = 0x10;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 14: led_smg[0] = 0x00;led_smg[1] = 0x20;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 15: led_smg[0] = 0x00;led_smg[1] = 0x40;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 16: led_smg[0] = 0x00;led_smg[1] = 0x80;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 17: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x01;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 18: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x02;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 19: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x04;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 20: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x08;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 21: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x10;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 22: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x20;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 23: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x40;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 24: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x80;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 25: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x01;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 26: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x02;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 27: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x04;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 28: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x08;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 29: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x10;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 30: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x20;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 31: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x40;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 32: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x80;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 33: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x01;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 34: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x02;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 35: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x04;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 36: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x08;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 37: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x10;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 38: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x20;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 39: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x40;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 40: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x80;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 41: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x01;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 42: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x02;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 43: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x04;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 44: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x08;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 45: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x10;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 46: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x20;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 47: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x40;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 48: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x80;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
case 49: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x01;led_smg[7] = 0x00; break;
case 50: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x02;led_smg[7] = 0x00; break;
case 51: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x04;led_smg[7] = 0x00; break;
case 52: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x08;led_smg[7] = 0x00; break;
case 53: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x10;led_smg[7] = 0x00; break;
case 54: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x20;led_smg[7] = 0x00; break;
case 55: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x40;led_smg[7] = 0x00; break;
case 56: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x80;led_smg[7] = 0x00; break;
case 57: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x01; break;
case 58: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x02; break;
case 59: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x04; break;
case 60: led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x08; break;
default : led_smg[0] = 0x00;led_smg[1] = 0x00;led_smg[2] = 0x00;led_smg[3] = 0x00;
led_smg[4] = 0x00;led_smg[5] = 0x00;led_smg[6] = 0x00;led_smg[7] = 0x00; break;
}
if(miao == 60) //1min
{
miao = 0;
fen++;
if(fen == 60)
{
fen = 0;
shi++;
if(shi == 24)
{
shi = 0;
}
}
}
}
num[3] = fen%10; //分钟个位
num[2] = fen/10; //分钟十位
num[1] = shi%10;
num[0] = shi/10;
}
//数码管显示函数
void display()
{
P2 = smg[num[0]];
S1= 0;
delay(1);
P2 = smg[17];
S1 = 1 ;
P2 = smg[num[1]];
S2 = 0;
delay(1);
P2 = smg[17];
S2 = 1;
P2 = smg[num[2]];
S3 = 0;
delay(1);
P2 = smg[17];
S3 = 1;
P2 = smg[num[3]];
S4 = 0;
delay(1);
P2 = smg[17];
S4 = 1;
}
//alarm数码管显示函数
void alarm_display()
{
P2 = smg[alarm_num[0]];
S1= 0;
delay(1);
P2 = smg[17];
S1 = 1 ;
P2 = smg[alarm_num[1]];
S2 = 0;
delay(1);
P2 = smg[17];
S2 = 1;
P2 = smg[alarm_num[2]];
S3 = 0;
delay(1);
P2 = smg[17];
S3 = 1;
P2 = smg[alarm_num[3]];
S4 = 0;
delay(1);
P2 = smg[17];
S4 = 1;
}
//流水灯显示
void led_display()
{
P2 = led_smg[0];
S5 = 0;
delay(1);
P2 = 0x00;
S5 = 1 ;
P2 = led_smg[1];
S6 = 0;
delay(1);
P2 = 0x00;
S6 = 1;
P2 = led_smg[2];
S7 = 0;
delay(1);
P2 = 0x00;
S7 = 1;
P2 = led_smg[3];
S8 = 0;
delay(1);
P2 = 0x00;
S8 = 1;
P2 = led_smg[4];
S9 = 0;
delay(1);
P2 = 0x00;
S9 = 1;
P2 = led_smg[5];
S10 = 0;
delay(1);
P2 = 0x00;
S10 = 1;
P2 = led_smg[6];
S11 = 0;
delay(1);
P2 = 0x00;
S11 = 1;
P2 = led_smg[7];
S12 = 0;
delay(1);
P2 = 0x00;
S12 = 1;
}
|