作业帮 > 综合 > 作业

单片机课程设计led数码管显示时钟秒表功能要求汇编语言程序

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/10 13:07:08
单片机课程设计
led数码管显示时钟
秒表功能
要求汇编语言程序
C语言的,采用51单片机,矩阵键盘,外接HC57C,6个数码管,调时间采用中断模式.
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x67,
0x77,0x7c,0x39,0x5e,0x79,
0x71};
uchar i,j,k,AA,BB0,BB,CC,ta,tc,kr4,keynumb,m,flag,flag1,t0,t;
uchar shi,fen,miao;
uint x;
uchar dispbuf[2];
float tt;
uchar keysearch(void)
{P3=0xf0;
m=P3;
m=~m;
m=m&0xf0;
return m;
}
uchar scankey(void)
{ta=keysearch();
if(ta==0) return 0x8f;
else
delay(20);
ta=keysearch();
if(ta==0) return 0x8f;
else
{ta=0xef;
for(kr4=0;kr459)
fen=0;}
if(flag==3)
{miao++;
if(miao>59)
miao=0;}
}
}
void work(void)//电子表工作程序
{uchar a;
for(a=50;a>0;a--);
miao++;
if(miao>59)
{miao=0;
fen++;}
if(fen>59)
{fen=0;
shi++;}
if(shi>23)
{shi=0;}
}
void main(void)
{uchar d;
INIT_TMR0();
INIT_TMR0INT();
INIT_TMR1();
INIT_TMR1INT();
while(1)
{flag1=0;
keysearch();
while(m!=0)
{scankey();
LED0=m;
beep=0;
}
beep=1;
t0=keynumb;
if(t0==15)
{enter();}
for(d=100;d>0;d--)
{display(dispbuf[2],dispbuf[1],dispbuf[0],0);}
LED1=1;
dispbuf[0]=keynumb;
}
}