单片机制作秒表计时器(c语言)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用单片机制作秒表计时器
(c语言)
#include<reg52.h>//包含单片机对应的头文件
int MM=0,SS=0,MS=0;
int time=2;
unsigned int sc[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int dianyuan[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xbf};
EX1=1;//启动
EA=1;
while(1)
{
m=MM/10;
P2=0xfe;
P0=sc[m];
delay_ms(1);
n=MM%10;
P2=0xfd;
P0=sc[n]+0x80;
delay_ms(1);
m=SS/10;
P2=0xfb;
P0=sc[m];
delay_ms(1);
n=SS%1Baidu Nhomakorabea;
P2=0xf7;
TL0=(65535-5100)%256;
ET0=0;
time--;
if(time==0)
{
MS++;
if(MS==100)
{
MS=0;
SS++;
if(SS==60)
{
SS=0;
MM++;
if(MM==60)
MM=0;
}
}
time=2;
}
ET0=1;
}
图如下:
{
if(ET0==1)
{
ET0=0;
return ;
}
if(ET0==0)
{
MM=0;
SS=0;
MS=0;
ET0=0;
return ;
}
}
void TIME0(void) interrupt 1
{
//TH0=0xee;
//TL0=0x00;
TH0=(65535-5100)/256;//设定5毫秒溢出初值
P0=sc[n]+0x80;
delay_ms(1);
m=MS/10;
P2=0xef;
P0=sc[m];
delay_ms(1);
n=MS%10;
P2=0xdf;
P0=sc[n];
delay_ms(1);
}
}
void ex0(void) interrupt 0
{
ET0=1;
}
void ex2(void) interrupt 2
void main(void)
{
int m=0,n=0;
TMOD=0x01;
//TH0=0xee;
//TL0=0x00;
TH0=(65535-5100)/256;//设定5毫秒溢出初值
TL0=(65535-5100)%256;
TR0=1;
IT0=1;//外部终端以按下效
EX0=1;//启动
IT1=1;//外部终端以按下效
(c语言)
#include<reg52.h>//包含单片机对应的头文件
int MM=0,SS=0,MS=0;
int time=2;
unsigned int sc[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int dianyuan[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xbf};
EX1=1;//启动
EA=1;
while(1)
{
m=MM/10;
P2=0xfe;
P0=sc[m];
delay_ms(1);
n=MM%10;
P2=0xfd;
P0=sc[n]+0x80;
delay_ms(1);
m=SS/10;
P2=0xfb;
P0=sc[m];
delay_ms(1);
n=SS%1Baidu Nhomakorabea;
P2=0xf7;
TL0=(65535-5100)%256;
ET0=0;
time--;
if(time==0)
{
MS++;
if(MS==100)
{
MS=0;
SS++;
if(SS==60)
{
SS=0;
MM++;
if(MM==60)
MM=0;
}
}
time=2;
}
ET0=1;
}
图如下:
{
if(ET0==1)
{
ET0=0;
return ;
}
if(ET0==0)
{
MM=0;
SS=0;
MS=0;
ET0=0;
return ;
}
}
void TIME0(void) interrupt 1
{
//TH0=0xee;
//TL0=0x00;
TH0=(65535-5100)/256;//设定5毫秒溢出初值
P0=sc[n]+0x80;
delay_ms(1);
m=MS/10;
P2=0xef;
P0=sc[m];
delay_ms(1);
n=MS%10;
P2=0xdf;
P0=sc[n];
delay_ms(1);
}
}
void ex0(void) interrupt 0
{
ET0=1;
}
void ex2(void) interrupt 2
void main(void)
{
int m=0,n=0;
TMOD=0x01;
//TH0=0xee;
//TL0=0x00;
TH0=(65535-5100)/256;//设定5毫秒溢出初值
TL0=(65535-5100)%256;
TR0=1;
IT0=1;//外部终端以按下效
EX0=1;//启动
IT1=1;//外部终端以按下效