找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8490|回复: 12
收起左侧

我想用中断控制P1.7脚的高低电平但失败,请各位高手指点错误

[复制链接]
ID:15033 发表于 2009-7-8 17:49 | 显示全部楼层 |阅读模式
请各们高手看一下这条程序:
              ORG 0000H
              LJMP MAIN
             ORG 0003H
             LJMP INT_0 
   MAIN:SETB EA 
              SETB EX0
MAIM_0:MOV R0,#1
 MAI_N: SETB P1.7
              SJMP MAI_N
  BEYO:   MOV R6,#82H
    DL1:   MOV R7,#0FFH
    DL2:   DJNZ R7,$
              DJNZ R6D L1
              RET
  SOUB:   MOV R0,#0
SOUB_0: CLR P1.7
              SJMP SOUB_0
INT_0:    CLR EX0
              ACALL BEYO
              SETB EX0
             CJNE R0,#0,SUOB
             ACALL MAIN_0   
             RETI
             END      
我想用中断控制P1.7脚的高低电平但失败,请各位高手指点错误。   
[此贴子已经被admin于2009-7-8 23:43:15编辑过]
回复

使用道具 举报

ID:14095 发表于 2009-7-9 07:49 | 显示全部楼层
中断入口地址是0003H,而P1.7不在中断控制,在主程序了,所以中断不能控制P1.7。
回复

使用道具 举报

ID:15033 发表于 2009-7-9 11:53 | 显示全部楼层

可不可以写条例程给我看看呀?谢了。

回复

使用道具 举报

ID:14775 发表于 2009-7-9 21:39 | 显示全部楼层
确实你中断程序只调用了一个延时程序,什么也没做
INT_0:    CPL P1.7
              RETI
              END
[此贴子已经被作者于2009-7-9 21:41:10编辑过]
回复

使用道具 举报

ID:14095 发表于 2009-7-10 10:08 | 显示全部楼层

ORG    00H      主程序入口地址
JMP     MAIN
ORG    03H      外部中断0入口地址
JMP     INT0
MAIN: MOV    IE,#10000001B        ;INT0中断开通
         MOV    IP,#00000001B        ;INT0中断优先
         MOV    TCON,#00000000B   ;INT0为电频触发
         MOV     SP,#70H                 ;设定堆栈指针
LOOP: MOV     A,#00H                  ;主程序设置P1端口灯闪烁   可以自己任意改写  也可不写
LOOP1:MOV   P1,A                        ;
          ACALL DELAY                     ;
          CPL    A                             ;
          JMP     LOOP1                     ;
INT0:  PUSH   ACC                        ;将A值压入堆栈
          PUSH   PSW                       ;将PSW值压入堆栈
          SETB   RS0                       ;设定工作寄存器组1
          CLR     RS1                       ;
          MOV     P1,#11111110B     ;设置P1.7为低电频
          ACALL  DELAY                  ;延时1S  延时可自己控制
          POP      PSW                     :从堆栈取回PSW值
          POP      ACC                     ;从堆栈取回A值
          RETI                                ;中断返回
DELAY:MOV    R5,#50                 ;延时1S
 D1:    MOV    R6,#100
D2:     MOV    R7,#100
          DJNZ   R7,$
          DJNZ   R6,D2
          DJNZ   R5,D1
          RET                                ;返回
         END                                 ;程序结束

回复

使用道具 举报

ID:15033 发表于 2009-7-10 17:07 | 显示全部楼层
多谢各位高手?
回复

使用道具 举报

ID:14095 发表于 2009-7-10 17:25 | 显示全部楼层

不客气

回复

使用道具 举报

ID:14095 发表于 2009-7-10 17:26 | 显示全部楼层

我也是初学者

回复

使用道具 举报

ID:15033 发表于 2009-7-11 10:37 | 显示全部楼层
楼上的:你是在校学生还是????
回复

使用道具 举报

ID:14095 发表于 2009-7-12 08:36 | 显示全部楼层

是在校学生啊     有问题一起讨论 

回复

使用道具 举报

ID:15033 发表于 2009-7-12 10:29 | 显示全部楼层
哦,我是一个电子厂的技术员,刚接触单片机。
回复

使用道具 举报

ID:15033 发表于 2009-7-12 10:30 | 显示全部楼层
可以帮我定一个学习单片机的计划吗?
回复

使用道具 举报

ID:14095 发表于 2009-7-12 10:46 | 显示全部楼层

我不太会定计划。
想学就行啊,不会很难

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表