求单片机高手!编写用定时器中断的秒表程序,仿真成功后把程序源代码,和仿真文件发给我。万分感谢。 5
3个回答
展开全部
#include <REGX52.H>
#include <INTRINS.H>
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
unsigned char k=0,x,t;
sbit key=P3^7;
void delay(unsigned char xms)
{
unsigned char i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void keyscan()
{
if(key==0)
{
delay(10);
if(key==0)
{
k++;
if(k>=4)
k=0;
while(!key);
}
}
// while(key=!key);
}
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main(void)
{
InitTimer0();
while(1)
{
keyscan();
switch(k)
{
case 0x01:
TR0=0;
break;
case 0x02:
TR0=1;
break;
case 0x03:
t=0;
break;
}
// P0=0x00;
P0=table[t/10];
// P2=0x01;
delay(2);
// P0=0x00;
P2=table[t%10];
// P2=0x02;
delay(2);
}
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x3C;
TL0 = 0x0B0;
x++;
if(x==20)
{x=0;t++;}
if(t==60)
t=0;
}
这是10s秒表程序,仿真文件可以传给你。
#include <INTRINS.H>
unsigned char code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
unsigned char k=0,x,t;
sbit key=P3^7;
void delay(unsigned char xms)
{
unsigned char i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void keyscan()
{
if(key==0)
{
delay(10);
if(key==0)
{
k++;
if(k>=4)
k=0;
while(!key);
}
}
// while(key=!key);
}
void InitTimer0(void)
{
TMOD = 0x01;
TH0 = 0x3C;
TL0 = 0x0B0;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main(void)
{
InitTimer0();
while(1)
{
keyscan();
switch(k)
{
case 0x01:
TR0=0;
break;
case 0x02:
TR0=1;
break;
case 0x03:
t=0;
break;
}
// P0=0x00;
P0=table[t/10];
// P2=0x01;
delay(2);
// P0=0x00;
P2=table[t%10];
// P2=0x02;
delay(2);
}
}
void Timer0Interrupt(void) interrupt 1
{
TH0 = 0x3C;
TL0 = 0x0B0;
x++;
if(x==20)
{x=0;t++;}
if(t==60)
t=0;
}
这是10s秒表程序,仿真文件可以传给你。
展开全部
具体什么要求
可以发给我
可以发给我
更多追问追答
追问
就是 用51单片机实现的0到99的秒表的设计 加一个定时器进行中断即可。
新手水平即可,麻烦大哥弄好了把程序源代码和仿真文件发给我
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
仿真要用什么软件来实现?
追问
秒表用数码管显示,仿真用isis显示,做好把文件上传给我,感激不尽啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询