找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2092|回复: 7
打印 上一主题 下一主题
收起左侧

利用at89c51设计电子秒表 程序有两个错误求改

[复制链接]
跳转到指定楼层
楼主
ID:229996 发表于 2017-8-30 09:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2黑币
                  #include<reg51.h>
unsigned int table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned int place[]={0x1f,0x2f,0x37,0x3b,0x3d,0x3e};
unsigned int doc[]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};
unsigned char t=0;
unsigned int count[6]={0,0,0,0,0,0};
unsigned int k1_count=0;
void reset();
void initDoc();
void initCount();
void suspend();
void init();
void timerRun();
void t1(void);
void delay1ms(void)

{
  unsigned char a,b;
  for(a=199;a>0;a--)
   for(b=1;b>0;b--);
}
void initDoc()
{
unsigned int i;
for(i=0;i<6;i++)
doc[i]=table[0];
}
void initCount()
{
unsigned int i;
for(i=0;i<6;i++)
count[i]=0;
}
void display()
{
unsigned int i;
for(i=0;i<6;i++)
{
P0=doc[i];
P2=place[i];
delay1ms();
delay1ms();
   P0=0x00;
   delay1ms();
}
}
void run()
{
unsigned char i;
if(count[0]<9)
  count[0]++;
else
{
count[0]=0;
count[1]++;
if(count[1]>9)
{
count[1]=0;
count[2]++;
if(count[2]>9)
{
  count[2]=0;
  count[3]++;
if(count[3]>6)
{
  count[3]=0;
  count[4]++;
  if(count[4]>9)
  {
   count[4]=0;
   count[5]++;
  if(count[5]>6)
   count[5]=0;
  }
}
     }
   }
}
for(i=0;i<6;i++)
{
doc[i]=table[count[i]];
}
}
void t1(void) interrupt 3
{
  TH1=0xd8;
  TL1=0xf0;;
  run();
}
void int_int0(void) interrupt 0
{
if(k1_count==0)
  k1_count=1;
else
  k1_count=0;
}
void int_int1(void) interrupt 2
{
k1_count=2;
}
void timerRun()
{
P1=0x02;
TMOD=0x10;
TR1=1;
ET1=1;
EA=1;
while(k1_count==1)
{
display();
}
if(k1_count==0)
suspend();
if(k1_count==2)
{
   reset();
}
}
void init()
{
P1=0x01;
initdoc();
IT0=1;
EA=1;
EX0=1;
IT1=1;
EX1=1;
while(k1_count==0)
{
display();
}
if(k1_count==1)
{
timerRun();
}
}
void suspend()
{
P1=0x01;
TR1=0;
  while(k1_count==0)
{
  display();
}
if(k1_count==1)
{
timerRun();
}
else if(k1_count==2)
{
reset();
}
}
void reset()
{
P1=0x01;
TR1=0;
initcount();
IT0=1;
EA=1;
EX0=1;
IT1=1;
EX1=1;
k1_count=0;
while(k1_count==0)
{
  display();
}
if(k1_count==1)
{
  timerRun();
}
if(k1_count==2)
  reset();
}
void main()
{
init();
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:82765 发表于 2017-8-30 13:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

板凳
ID:230046 发表于 2017-8-30 14:10 | 只看该作者
什么错误也没给出来
回复

使用道具 举报

地板
ID:230046 发表于 2017-8-30 14:11 | 只看该作者
什么错误也没给出来  把void main()  改成main()试试
回复

使用道具 举报

5#
ID:7485 发表于 2017-8-30 15:34 | 只看该作者
出现什么错误?这么个程序让人一点点琢磨?没有重点的一句一句的研究?谁有那个功夫?
回复

使用道具 举报

6#
ID:111634 发表于 2017-8-30 16:27 | 只看该作者
ahshmj 发表于 2017-8-30 15:34
出现什么错误?这么个程序让人一点点琢磨?没有重点的一句一句的研究?谁有那个功夫?

冗长的程序,一句一句的研究?谁有那个功夫?
回复

使用道具 举报

7#
ID:82765 发表于 2017-8-30 16:31 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

8#
ID:123289 发表于 2017-8-31 19:52 | 只看该作者
本帖最后由 yzwzfyz 于 2017-9-1 00:08 编辑

问者很初级,尚不懂得尊重师者。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表