打印

用c编写中断使遇到的一个问题

[复制链接]
3236|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wangwenjia|  楼主 | 2007-11-14 21:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
HWM| | 2007-11-14 21:40 | 只看该作者

在括号内加上void

使用特权

评论回复
板凳
wangwenjia|  楼主 | 2007-11-14 21:47 | 只看该作者

恢复 HWM

用你的方法没用啊 刚试了下

使用特权

评论回复
地板
HWM| | 2007-11-14 21:54 | 只看该作者

那可能是上面有什么问题影响到此。

使用特权

评论回复
5
wangwenjia|  楼主 | 2007-11-14 21:58 | 只看该作者

会是什么问题影响啊?

呵呵  有人能解决这个事么?

使用特权

评论回复
6
HWM| | 2007-11-14 22:00 | 只看该作者

给出完整的程序

使用特权

评论回复
7
wangwenjia|  楼主 | 2007-11-14 22:01 | 只看该作者

完整程序

#include<reg51.h>
#include<stdio.h>
Uart_Int();

int i,j;
sbit P10=0x90;
sbit P11=0x91;

Table[10]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X67};

main()
{

EX0=1;
EA=1;

i=j=0;

while(1)
{

P10=0;
P2=Table;
P10=1;
P11=0;
P2=Table[j];
P11=1;

}


void int0(void) interrupt 0 using 0
{
i++;
if(i>9){i=0;j++;}
if(j>9){i=j=0;}
}

}


Uart_Init()
{
SCON=0x52;
TMOD=0x20;
TCON=0x69;
TH1=0xf3;
}

使用特权

评论回复
8
HWM| | 2007-11-14 22:04 | 只看该作者

大括号成对吗?自己看一下。

使用特权

评论回复
9
wangwenjia|  楼主 | 2007-11-14 22:04 | 只看该作者

关于程序

用数码管来显示 中断口输入信号次数的累加

使用特权

评论回复
10
wangwenjia|  楼主 | 2007-11-14 22:06 | 只看该作者

感谢HWM

有你这样的热心人真好~~~

使用特权

评论回复
11
HWM| | 2007-11-14 22:07 | 只看该作者

中断程序应放在最外层,不能放在main内。


使用特权

评论回复
12
wangwenjia|  楼主 | 2007-11-14 22:12 | 只看该作者

恩 已经解决了 感谢~~~

使用特权

评论回复
13
ayb_ice| | 2007-11-15 08:05 | 只看该作者

无语啊

使用特权

评论回复
14
救火车| | 2007-11-15 09:30 | 只看该作者

using 0 肯定不行。你不要命啊。

快改成 using 1

使用特权

评论回复
15
qiushui007| | 2007-11-15 10:35 | 只看该作者

using 1

using   y   中断函数使用的那个寄存器组, 51里面一般有4组  r0 -- r7寄存器,

使用特权

评论回复
16
mamalihui| | 2007-11-15 13:04 | 只看该作者

少了个大括号

使用特权

评论回复
17
tyrone3000| | 2007-11-15 13:16 | 只看该作者

不是少了打括号,是把中断放在main()里了!

使用特权

评论回复
18
ayb_ice| | 2007-11-15 14:04 | 只看该作者

如果默认的不是RS0,使用using 0是完全可以的

使用特权

评论回复
19
dai_weis| | 2007-11-15 22:41 | 只看该作者

建议初学者还是让系统自己分配吧

尽量不用using ?,否则有时候可能会死的很惨。

使用特权

评论回复
20
HWM| | 2007-11-16 08:14 | 只看该作者

关键是要明白using n的作用。

用 using n (n=0..3) 是指定一个特定BANK给中断程序使用,“并取消了响应的寄存器保护指令”,以便提高反应速度。所以如果主程序和各嵌套的中断程序能分配不同的BANK就不会有问题,因此并没有那么可怕。
当然,如果没有特殊的速度要求,就不建议使用 using n ,这样编译将沿用当前的BANK,并会自动加上相应的寄存器保护指令。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

79

帖子

0

粉丝