标题:
单片机秒表作业
[打印本页]
作者:
SSYY1212
时间:
2018-6-25 19:24
标题:
单片机秒表作业
作业11 秒表或电子钟设计
1.秒表任务要求:
最小显示位10ms,计时范围0~59分59秒990毫秒;
可记录多个成绩;
系统工作符合一般秒表要求 ,具备清零、计时、停止、记录、查看功能。
或者
2.电子钟任务要求:
显示当前时间;
调整时间
设置整点报时
设置闹钟
#include<stc12c5a60s2.h>
#define uchar unsigned char
uchar code distable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};
uchar disnum[]={0,0,16,0,0,16,0,0};
unsigned int temp1,temp2,temp3,j=0;
uchar k=0x01,i=0,a,d,b=0,w=0,s=0,c=0;
char data *p40,*p60,*p80;
void int_0( ) interrupt 0
{
b++;
if(b==3)
{
b=0;
}
if(b==0)
{
j=0;
w=0;
s=0;
a=1;
c=0;
}
if(b==1)
{
a=0;
}
if(b==2)
{
a=1;
c=0;
}
}
void int_2( ) interrupt 2
{
if(b==1)
{
c++;
d=c;
if(c==1)
{
p40=0x40;
p60=0x60;
p80=0x80;
}
if(c<17)
{
*p40=j;
*p60=w;
*p80=s;
p40++;
p60++;
p80++;
}
}
if(b==2)
{
c++;
if(c==1)
{
p40=0x40;
p60=0x60;
p80=0x80;
}
if(c<=d)
{
j=*p40;
w=*p60;
s=*p80;
p40++;
p60++;
p80++;
}
}
}
void int_1( ) interrupt 1
{
TH0=55536/256;
TL0=55536%256;
if(a==1)
{
j=j;
}
else
{
j++;
}
if(j==100)
{
j=0;
w++;
if(w==60)
{
s++;
w=0;
if(s==60)
{
s=0;
}
}
}
disnum[7]=j%10;
disnum[6]=j/10;
disnum[4]=w%10;
disnum[3]=w/10;
disnum[1]=s%10;
disnum[0]=s/10;
}
void int_3( ) interrupt 3
{
P0M1=0X00;
P0M0=0XFF;
P2M1=0X00;
P2M0=0XFF;
TH1=65036/256;
TL1=65036%256;
P0=distable[disnum[i]];
P2=k;
k=k<<1;
i++;
if(i==8)
{
i=0;
k=0x01;
}
}
void main()
{
TMOD=0x11;
TH1=55536/256;
TL1=55536%256;
ET1=1;
EA=1;
TR1=1;
TH0=65036/256;
TL0=65036%256;
ET0=1;
TR0=1;
IT1=1;
EX1=1;
IT0=1;
EX0=1;
k=0x01;
i=0;
a=1;
b=0;
p40=0x40;
p60=0x60;
p80=0x80;
for(j=0;j<16;j++)
{
*p40=0;
p40++;
*p60=0;
p60++;
*p80=0;
p80++;
}
p60=0x60;
p80=0x80;
p40=0x40;
while(1);
}
复制代码
单片机作业11(秒表).doc
2018-6-25 19:23 上传
点击文件名下载附件
下载积分: 黑币 -5
27.54 KB, 下载次数: 6, 下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1