422

帖子

0

TA的资源

纯净的硅(高级)

21
 

回复 19楼 辛昕 的帖子

已经上传程序
 
 

回复

422

帖子

0

TA的资源

纯净的硅(高级)

22
 

回复 板凳 youki12345 的帖子

您好例程在首页已经上传
 
 
 

回复

422

帖子

0

TA的资源

纯净的硅(高级)

23
 

回复 13楼 zhangdaoyu 的帖子

谢谢!
 
 
 

回复

422

帖子

0

TA的资源

纯净的硅(高级)

24
 

回复 17楼 chunyang 的帖子

您好,我说的是2号,中断,并不是外中断2.。51单片机中断号从0号到4号分别为外中断0,定时器0,外中断1,定时器1,串行口。
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

25
 

回复 21楼 longxtianya 的帖子

哥们,如果你认真分析了反汇编代码,就不会觉得奇怪了——当然了,这反汇编出来的东西太邪门了——我还真没想过会有这种状况.....

假设有0号中断,啥事都没有,为何,因为从0003H开始的地方,放置了它。
而000BH很自然地放了1号Isr。可是,如果我关了0号中断Isr,这个时侯就会有一个很邪门的现象,它居然把1号Isr放在0003H的地方(以你写的这么简单的Isr的话)
也就是说,这家伙 占了人家0号的地址。

这邪门的现象,我曾经猜测过因为你没有加一个C51的STARTUP.a51头文件导致的,可是,我自己做了一次以后,发现,还是没用,一个邪门样。

后来,我猜测,可能是因为你这个试验性质的中断函数Isr都比较简单,都可以在8个字节内安排完,就是说太短了....
我立马把1号中断乱写了一通,长了许多,然后在关掉0号的前提下,再反汇编一次。
这个时侯,我见到更邪门的事情,不过也因此确定了自己的猜测——
1号下去了,老老实实回到自己的000BH,可是,2号中断却跑上去了......

也就是说,一般来说,我最痛恨的软件自作聪明的现象出现了——如果我们不一板一眼地——比如说,地把没用到的0号中断Isr做成一个空函数,又恰好遇到那个短命的Isr,它会自个从0003这个位置开始,占了人家的门面。
然后呢,它就在自己原来的000BH位置安排一条指令回到0003H.....

事情没完,更恐怖的事情还有.....

那么,原来的0003H,如果安排完那个抢占民居的1号还是没用完咋办呢,完了完了,那就真的完了.....
接下去,比如你的,它只用到0006H的位置就安排完了1号中断,这个时侯它从0007H开始继续安排2号,3号......
所以,我开始逐个查看每个中断入口地址的时候,看到后边那个括号,指向 什么0003,0007的时候,我差点以为自己见鬼了......

结论之:
当你有一个没有使用的中断函数时,这个时侯,它的中断入口处于任由编译器蹂躏的状态,轻则,误入别人的家门,重则,会把后边几家的家门全弄完了——
典型的另我最痛恨的“软件自作多情”。

PS:更加有点恐怖的事情是,我发现,即便留个空函数,这种情况仍然会发生!!!
除非,中断函数写得比较长,长到它不够放在没用的中断入口里,才不会出现这种情况。
这个发现倒是我始料未及的,求各位大大真相

后来我想了想,假如说留空依然会惨遭蹂躏,而加了一句简单的给P2赋值则没事,那如果我真的啥都不想干咋办内?我想,可以加个空语句吧,于是我就加了一句,没用,不死心,两句,还没用,我日,,加3个,居然有用了——
当然我得说,我用的是uVersion 4,这家伙太聪明了,也太自作聪明了,只有我用了3个的时候,它才以为我是想延时?——去他的,它不知道,我只不过想留住自己的家门!!
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

26
 

写完这个结论,突然想到

写完上边这个帖子,我忽然想到一些平时很少理会的市井破事,居然突然有了一种感慨......

比如说这个空的0号中断入口,空了不行啊,非要安排,还不能是内里空空那种,就是nop也得nop几个.....

真TM不由让人想到如今社会,有些衙门,只留个空壳,还不是简简单单得空,比如说,一个来来去去只见到两个人上班的办公室,里头摆的桌子,够开20个我们这样性质的公司了——我是说座位......
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

27
 

回复 21楼 longxtianya 的帖子

还有,你的工程里,选择的是80C51,虽然说在这里没啥不同效果,不过,你还是用回REG51.H吧,不要用REG52.H,,,不过在这里,没啥用。

兼容就是好啊。
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

28
 
打饭路上,对这三条nop依然很不爽....
特别是在一些时间比较敏感,比如时序严格的场合。

后来发现问题不该这么想,应该问,如果你不需要中断处理东西,你干什么要开中断?
我曾经很脑残得想,我需要它 及时响应啊?

不过,我才知道,要让他及时响应东西,必须放在中断程序里。

于是就是说,如果不写中断函数,,没事是不会开中断的

[ 本帖最后由 辛昕 于 2011-10-16 18:49 编辑 ]
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

422

帖子

0

TA的资源

纯净的硅(高级)

29
 

回复 28楼 辛昕 的帖子

有道理,谢谢!
 
 
 

回复

422

帖子

0

TA的资源

纯净的硅(高级)

30
 
顶,别沉了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表