| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 699 人关注过本帖, 1 人收藏
标题:一个89c51单片机外中断程序,请大家帮忙改改错
只看楼主 加入收藏
cgh961907340
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-12-1
结帖率:0
收藏(1)
 问题点数:0 回复次数:3 
一个89c51单片机外中断程序,请大家帮忙改改错
    一个外中断程序,老师说最好不要再中断里加入延时,为什么呢?要怎么改?可不可以用等待?程序如下:

  ORG   00H
  SJMP  MIAN
  ORG   03H
  SJMP  INT0S
MAIN:MOV IE,#81H
     MOV TCON,#01H
     MOV A,#0FEH
     MOV P3,#0FFH
ST1:MOV P2,A
     ACALL DELAY
     RL A
     SJMP  ST1
INT0S:PUSH ACC
      MOV  R2,#08H
LOOP:CLR A
     MOV P2,A
     ACALL DEALY
     MOV A,#0FFH
     MOV P2,A
     ACALL DELAY
     DJNZ  R2,LOOP
     POP ACC
     RETI
DELAY:MOV R7,#250
D1:  MOV R6,#250
D2: NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     DJNZ R6,D2
     DJNZ R7,D1
     RET
     END
搜索更多相关主题的帖子: 单片机 延时 最好 
2012-03-28 16:28
cgh961907340
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-12-1
收藏
得分:0 
唉唉。。。。各位都来帮帮忙啊,我自己改了可是不行啊,一按开关没反应的,为什么呢???
  ORG   00H
  SJMP  STAR
  ORG   03H
  SJMP  INT0S
STAR:MOV IE,#81H
     MOV TCON,#01H
     MOV A,#0FEH
     MOV P3,#0FFH
ST1:MOV P2,A
     ACALL DELAY
     RL A
     SJMP  ST1
INT0S:PUSH ACC
      MOV  R2,#8
      MOV  R3,#20
LOOP:MOV TMOD,#10H
     MOV TH0,#3CH
     MOV TL0,#0B0H
     SETB TR1
     CLR A
     MOV P2,A
     DJNZ R3,LOOP
     MOV A,#0FFH
     MOV P2,A
     DJNZ R2,LOOP
     POP ACC
     RETI
DELAY:MOV R7,#250
D1:  MOV R6,#250
D2: NOP
     NOP
     NOP
     NOP
     NOP
     NOP
     DJNZ R6,D2
     DJNZ R7,D1
     RET
     END
2012-03-28 17:45
lcawen
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:41
专家分:184
注 册:2011-8-11
收藏
得分:0 
你改的还是用了延时,只不过不是调用延时函数而已
2012-04-10 13:26
huaziforever
Rank: 1
等 级:新手上路
帖 子:7
专家分:8
注 册:2010-12-24
收藏
得分:0 
告诉你,把你在中断里想要做的事设一个标志flag,然后到主程序循环里来做这件事,就对了。
2012-06-24 22:34
快速回复:一个89c51单片机外中断程序,请大家帮忙改改错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013476 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved