微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 89C51上通过2051没通过的程序

89C51上通过2051没通过的程序

时间:10-02 整理:3721RD 点击:

我写个外中断遥控解码程序,在AT89C51通过了,只有600B的烧写文件,加上24C02记忆程序不超过1.2kb烧写文件
写到AT89C2051就是通不过。
这是外中断解码程序,哪里出错了?
谢谢
问题解决了,多加了个RETI,程序运行没问题了,一个中断两个reti。




;-----------中断程序-------------------
INT:CLR EA   ;暂时关闭CPU的所有中断请求
PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
MOV R5,#17
L2:ACALL DELAY05_R5
   JB IRIN,L10  ;位为1转移,否则顺执行    ;延时0.093ms后判断P3.2脚是否出现高电平如果有就退出解码程序
MOV R5,#8
L3:ACALL DELAY05_R5  ;延时0.5ms避开4.5毫秒高电平结果码
JNB IRIN,L10      ;4.5ms内出现低电平退出中断程序
DJNZ R5,L3  ;重复多次,目的是检测4.5ms内如果出现高低平就退出解码程序
L4:MOV R3,#0 ;8位计数器
L5:JNB IRIN,L6
    ACALL DEL
    JMP L5
L6:JB IRIN,L7
    ACALL DEL
    JMP L6
L7:MOV R2,#0
L8:ACALL DEL
   JB IRIN,L9
   MOV A,#8
   CLR C
   SUBB A,R2
   MOV A,@R0
   RRC A
   MOV @R0,A
   INC R3
   CJNE R3,#8,L5
   MOV R3,#0
   INC R0
   CJNE R0,#24,L5    ;改为23接收3位数据,
   JMP L10
L9:INC R2
   CJNE R2,#30,L8
L10:SETB EA ;允许中断,然后退出中断程序
RETI

我擦还是汇编的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top