//电路如下图
#include
code unsigned char tab[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
//共阴数码管 0-9
sbit A1=P2^0;
sbit A2=P2^1;
sbit A3=P2^2;
unsigned char Gewei,Baiwei,Shiwei;
static unsigned char second=0,count=0,i;
/******************************************************************/
/* 延时函数 */
/******************************************************************/
void delay(unsigned int cnt)
{
while(--cnt);
}
void xianshi(void)
{
Baiwei=~tab[second/10];
Shiwei=~(tab[second%10]|0x80);
Gewei=~tab[count/10];
}
/******************************************************************/
/* 主函数 */
/******************************************************************/
main()
{
TMOD |=0x01;//定时器设置 10ms in 12M crystal,工作在模式1,16位定时
TH0=0xd8;
TL0=0xf0;
IE= 0x82; //打开中断
TR0=1; //打开定时开关
xianshi();
}
/******************************************************************/
/* 定时器中断函数 */
/******************************************************************/
void tim(void) interrupt 1 using 1
{
TH0=0xd8; //重新赋值
TL0=0xf0;
{
if(!A1)
delay(10000); //消抖
{
if(!A1)
i=1;
}
}
{
if(!A2)
delay(10000);//消抖
{
if(!A2)
i=0;
}
}
{
if(i==1)
count++;
}
if(count==100) //100x10ms=1S,大致延时时间
{
count=0;
second++;
if(second==60)
second=0;
}
xianshi();
{
P1=0x02; //片选2
P0=Baiwei;
delay(300);
P1=0x04; //片选3
P0=Shiwei;
delay(300);
P1=0x08; //片选4
P0=Gewei;
delay(300);
P1=0x00; //清屏
P0=0x00;
delay(300);
}
if(!A3)
{
second=0;
count=0;
}
}
你老师认为“太贵了”是什么样子的?
你不公布出来,谁知道什么样是“便宜的”?
试试,说说要求.邮箱