您的位置 首页 硬件

51单片机,计数溢出

51单片机,计数溢出,CPU响应中断,执行中断函数过程中,计数器是否已清0开始计数,还是等CPU执行完中断函数后再计数,请以下面程序为例解

51单片机计数溢出,CPU呼应中止,履行中止函数过程中,计数器是否已清0开端计数,仍是等CPU履行完中止函数后再计数,

请以下面程序为例解说解说

//用T0使隔1秒流水灯亮一次,用T1使隔2秒静态数码管顺次显现数字
#include
#include
#define uint unsigned int
#define uchar unsigned char
uchar tcount0,tcount1,temp,num;
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void main()
{
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%6;
TH1=(65536-50000)/256;
TL1=(65536-50000)%6;
EA=1;
ET0=1;
ET1=1;
num=0;
temp=0xfe;
tcount0=0;
tcount1=0;
TR0=1;
TR1=1;
while(1);
}
void t0() interrupt 1//计数溢出,CPU呼应中止
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%6;//设定回计数初值,但此刻计数溢出后已清0仍在计数吗?
tcount0++;
if(tcount0==20)
{
tcount0=0;
P1=temp;
temp=_crol_(temp,1);
}
}
void t1() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%6;
tcount1++;
if(tcount1==40)
{
tcount1=0;
if (num==16)
num=0;
P0=table[num];
num++;
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/yingjian/261082.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部