小德GD 发表于 2013-5-7 21:38:33

中断程序小小疑问

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit LED1=P0^0;
sbit LED2=P0^1;
uint num1,num2;
void main()
{
        TMOD=0X03;          // 定时器0工作方式3
        TH0=6;                  // 初值
        TL0=6;       
        EA=1;               //开总中断
        ET0=1;                 //开定时器0中断
        ET1=1;                  //开定时器1中断
        TR0=1;                  //启动定时器0
        TR1=1;                  //启动定时器0的高八位计数器
                while(1)
                {
                        if(num1>3683)
                        {
                        num1=0;
                        LED1=~LED1;
                        }
                        if(num2>1843)
                        {
                        num2=0;
                        LED2=~LED2;
                        }
                }


}
void time0() interrupt 1
{
TL0=6;
num1++;
}
void time1() interrupt 3
{
TH0=6;
num2++;
}
请问这个程序有用到定时器1吗,怎么没设置它的工作方式的?

mo_fish 发表于 2013-5-7 23:55:17

定时器1能工作,但不能中断,因为中断源已经被T0占用,具体LZ去查书吧,还有工作方式TMOD不是设置了吗

小德GD 发表于 2013-5-8 00:55:23

mo_fish 发表于 2013-5-7 23:55 static/image/common/back.gif
定时器1能工作,但不能中断,因为中断源已经被T0占用,具体LZ去查书吧,还有工作方式TMOD不是设置了吗 ...

en ,设置的是定时器0的,定时器1的不用吗?

barryliu 发表于 2013-5-8 18:31:41

这个程序一运行就会跑飞,因为定时器1没有中断服务程序,却开了中断。

zjk 发表于 2013-5-8 19:15:36

定时器1只是开了中断
页: [1]
查看完整版本: 中断程序小小疑问