关于89c51中断不响应的问题

xuliqun   2008-10-20 17:41 楼主
菜鸟才接触89c51,写的如下代码,但是中断不响应,我在INT0输入的是方波信号,还有这块是16位寻址哈
也就是unsigned int 型最大值是65536哈,我想是让int0为高电平时,计数器开始计数,当int0下一个高电平到来
之后计数器重新计数,一直这样循环响应并计数,该怎么写呢!!先谢谢各位大侠了

UINT count1 = 0;                  //计算计数器溢出的次数
void time0(void) interrupt 1
{
        TR0 = 0;
        TH0        = 0x00;                  //定时0.002ms
        TL0 = 0x20;
        TMOD = (TMOD & 0x05);         //定时器0工作模式 方式一
        TR0 = 1;                 //启动定时器/计数器0
        count1++;
        ET0 = 0;                 //允许定时器0中断
}

void time(void) interrupt 0
{
        TR0 = 0;          //关闭计数器0
        count = TH0*256+TL0+count1*65536;
        //count1 = 0;;
//        ET1 = 1;               //允许定时器1中断
}

我想在计数器

回复评论 (9)

晕倒,楼主外部中断都没有开,怎么响应啊
EX0=0,貌似。
你自己看看,总之你的外部中断没有开。

这个你看看马忠梅的书吧,好多例子。
点赞  2008-10-20 20:05
楼上说的有理
点赞  2008-10-20 21:05
哦,谢谢,这个unsigned int最大值是不是65536哈?
点赞  2008-10-21 08:59
是65535呀,不是65536的说。
点赞  2008-10-21 09:03
字节拼装,左移8位(*0xFF),左移16位(0xFFFF)
点赞  2008-10-21 09:25
引用: 引用 3 楼 longhaluo 的回复:
哦,谢谢,这个unsigned int最大值是不是65536哈?

65535.随便任何一本C语言书都有啊。
点赞  2008-10-21 17:40
笔误笔误,~~~~
点赞  2008-10-21 18:51
需要设置中断优先级IP
那么关于你说的响应外部中断之后重新计数的问题也很好办
设置T0计数单元
某一数值后进位循环等等
计数溢出问题不大
多放几个地址存储
像钟表
点赞  2008-10-30 20:56
计数单元溢出后进位再循环计数等等
点赞  2008-10-30 21:04
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复