[疑难问答] 51单片机做数字钟 用中断T0

[复制链接]
 楼主| 袖口——光阴 发表于 2015-10-30 21:34 | 显示全部楼层 |阅读模式
我的哪里有问题,只实现一个数码管的走数,1秒一个
zh113214 发表于 2015-10-30 21:49 | 显示全部楼层
楼主,没有代码怎么看啊。
 楼主| 袖口——光阴 发表于 2015-10-30 22:17 | 显示全部楼层
zh113214 发表于 2015-10-30 21:49
楼主,没有代码怎么看啊。

我错了 马上发
 楼主| 袖口——光阴 发表于 2015-10-30 22:18 | 显示全部楼层
#include<reg51.h>
unsigned char code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};c[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} ;
void timer();


void main (void)
{        int b,d;
for(d=0;d<8;d++)
{P2=c[d];
for(b=0;b<10;b++)
{ P0=a[b];
timer();
  }
}
        }

void tinterrupt 1   
{ int M=0;
while(M<20)
{
TMOD = 0x01;
TL0 = 0xb0;               
TH0 =0x3c;
EA=1;
ET0=1;
  TR0=1;
if(TF0==1)
{ M++;
TF0 = 0;}
       
         }               

}
 楼主| 袖口——光阴 发表于 2015-10-30 22:20 | 显示全部楼层
本帖最后由 袖口——光阴 于 2015-10-30 22:22 编辑

void timer() interrupt 1   
{ int M=0;
while(M<20)
{
TMOD = 0x01;
TL0 = 0xb0;               
TH0 =0x3c;
EA=1;
ET0=1;
  TR0=1;
if(TF0==1)
{ M++;
TF0 = 0;}
        
         }               

}
周董 发表于 2015-10-30 22:24 | 显示全部楼层
楼主,不知道你想实现什么样的功能呀
Snow7 发表于 2015-10-31 09:04 | 显示全部楼层
最好是把硬件原理图也传上来
拉克丝 发表于 2015-10-31 09:20 | 显示全部楼层
只实现一个数码管的走数,1秒一个

也就是进位时候没处理好
zh113214 发表于 2015-10-31 18:12 | 显示全部楼层
袖口——光阴 发表于 2015-10-30 22:20
void timer() interrupt 1   
{ int M=0;
while(M

真犀利,可是我还是看不明白啊,有电路图没呢
 楼主| 袖口——光阴 发表于 2015-11-1 12:26 | 显示全部楼层
周董 发表于 2015-10-30 22:24
楼主,不知道你想实现什么样的功能呀

就目前的程序  实现一位数码管的秒的走数 从0到9;
 楼主| 袖口——光阴 发表于 2015-11-1 12:27 | 显示全部楼层
Snow7 发表于 2015-10-31 09:04
最好是把硬件原理图也传上来

我就用单片机做啊
 楼主| 袖口——光阴 发表于 2015-11-1 12:28 | 显示全部楼层
本帖最后由 袖口——光阴 于 2015-11-1 12:29 编辑

#include<reg51.h>
unsigned char code a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};c[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f} ;
void timer();
unsigned char M;


void main (void)
{        int b,d;
for(d=0;d<8;d++)
{P2=c[d];
for(b=0;b<10;b++)
{ P0=a;
timer();
  }
}
        }

void timer()interrupt 1
{  M=0;
while(M<20)
{
TMOD = 0x01;
TL0 = 0xb0;               
TH0 =0x3c;
EA=1;
ET0=1;
  TR0=1;
  if(TF0==1)
{ M++;
TF0 = 0;  }
        
         }               

}  
为甚么不走数  只显示0;我的中断有什么问题吗。
oldzhang 发表于 2015-11-9 21:14 | 显示全部楼层
什么设计思想?
怎么在T0中断里面还要循环?
在中断里面初始化定时器?
应该是不会用中断。
gmm2015 发表于 2015-11-10 10:26 | 显示全部楼层
楼主还没入门,加油学习吧。先打好基础。
boy1990 发表于 2015-11-15 10:07 | 显示全部楼层
定时中断的初始化设置的地方也重要,但是不知道楼主是放在什么地方了,
明眸 发表于 2015-11-17 09:45 | 显示全部楼层
你这个没办法进中断,程序是先从主函数执行,而你的主函数里没有中断初始化
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

27

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部