��Ƭ�CC�Z�Գ����O(sh��)Ӌ��10s �����
/* ���Q��10s �����
�f�����״ΰ��IӋ�r�_ʼ���ٴΰ��I��ͣ�������ΰ��I������
*/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1=P3^7;
uchar
i,Second_Counts,Key_Flag_Idx;
bit Key_State;
uchar
DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//�ӕr
void DelayMS(uint ms)
{
uchar t;
while(ms--) for(t=0;t<120;t++);
}
//̎�����I�¼�
void Key_Event_Handle()
{
if(Key_State==0)
{
Key_Flag_Idx=(Key_Flag_Idx+1)%3;
switch(Key_Flag_Idx)
{
case 1:EA=1;ET0=1;TR0=1;break;
case 2:EA=0;ET0=0;TR0=0;break;
case 0:P0=0x3f;P2=0x3f;i=0;Second_Counts=0;
}
}
}
//������
void main()
{
P0=0x3f; //�@ʾ 00
P2=0x3f;
i=0;
Second_Counts=0;
Key_Flag_Idx=0; //���I�Δ�(sh��)��ȡֵ 0��1��2��3��
Key_State=1; //���I��B(t��i)
TMOD=0x01; //���r�� 0 ��ʽ 1
TH0=(65536-50000)/256; //���r�� 0��15ms
TL0=(65536-50000)%256;
while(1)
{
if(Key_State!=K1)
{
DelayMS(10);
Key_State=K1;
Key_Event_Handle();
}
}
}
/T0 �Дຯ��(sh��)
void DSY_Refresh() interrupt 1
{
TH0=(65536-50000)/256; //�֏�(f��)���r�� 0 ��ֵ
TL0=(65536-50000)%256;
if(++i==2)
{
i=0;
Second_Counts++; //50ms*2=0.1s �D(zhu��n)�Q��B(t��i)
P0=DSY_CODE[Second_Counts/10];
P2=DSY_CODE[Second_Counts%10];
if(Second_Counts==100) Second_Counts=0; //�M 100��10s�����@ʾ 00
}
}
�Uչ��x��TIMER0�cTIMER1���Ɨl��LED

����admin ����ĕr�g��2018-05-18