0x00 问题代码

void int0_isr(void) interrupt 0
{
num++;
if (num%2 == 1)
{
uint k;
for(k=0;k<3;k++)
{
P1=0x0f;
delay(500);
P1=0xf0;
delay(500);
}
}
else if (num%2 == 0)
{
uint m;
uint n;
temp=0xfe;
P1=temp; //IO口无法直接参与运算,先赋值给字符串再用cror进行二进制移位运算
for (n=0;n<2;n++)
{
for (m=0;m<7;m++)
{
delay(300);
temp = _crol_(temp,1);
P1=temp;
}
for (m=0;m<7;m++)
{
delay(300);
temp = _cror_(temp,1);
P1=temp;
}
}
}
} void int1_isr (void) interrupt 2
{
P1=0xff;
delay(3000);
}

0x01 问题剖析

手动分配using 0,using 1导致无法退出中断

手动分配using 1,using 2正常退出并返回主函数

自动分配正常退出并返回主函数

以下纯属猜测,毕竟跟使用哪组寄存器没啥关系

代码中使用电平中断(可能也和使用全局变量有关系?)

在没有清中断标志位的情况下,开启中断后,会产生多个中断信号

每个中断程序都在把他们清零,相互影响,导致很难达到计数终点,程序难以终止

又发现一个问题:using 0,using 1是手动分配中断使用哪组寄存器

但缺省情况下系统自动分配寄存器也是using 0,using 1,正常退出中断

using 0使用第0组寄存器(RS1=0,RS0=0),实际地址R0(00H) - R7(07H)

using 1使用第1组寄存器(RS1=0,RS0=1),实际地址R0(08H) - R7(0FH)

C51 玄学问题,magic的更多相关文章

  1. Magic Line

    Magic Line 玄学过题系列,随机选在所有点左下方的点,然后对其他点斜率排序,取斜率在中间两个点之间 比赛时,左下方点不够随机==,导致没卡过去 #include<bits/stdc++. ...

  2. Codeforces CF#628 Education 8 D. Magic Numbers

    D. Magic Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  3. [8.3] Magic Index

    A magic index in an array A[0...n-1] is defined to be an index such that A[i] = i. Given a sorted ar ...

  4. Python魔术方法-Magic Method

    介绍 在Python中,所有以"__"双下划线包起来的方法,都统称为"Magic Method",例如类的初始化方法 __init__ ,Python中所有的魔 ...

  5. 【Codeforces717F】Heroes of Making Magic III 线段树 + 找规律

    F. Heroes of Making Magic III time limit per test:3 seconds memory limit per test:256 megabytes inpu ...

  6. 2016中国大学生程序设计竞赛 - 网络选拔赛 C. Magic boy Bi Luo with his excited tree

    Magic boy Bi Luo with his excited tree Problem Description Bi Luo is a magic boy, he also has a migi ...

  7. 一个快速double转int的方法(利用magic number)

    代码: int i = *reinterpret_cast<int*>(&(d += 6755399441055744.0)); 知识点: 1.reinterpret_cast&l ...

  8. MAGIC XPA最新版本Magic xpa 2.4c Release Notes

    New Features, Feature Enhancements and Behavior ChangesSubforms – Behavior Change for Unsupported Ta ...

  9. Magic xpa 2.5发布 Magic xpa 2.5 Release Notes

    Magic xpa 2.5發佈 Magic xpa 2.5 Release Notes Magic xpa 2.5 Release NotesNew Features, Feature Enhance ...

随机推荐

  1. swift 监测内存泄漏 MLeaksFinder

    使用MLeaksFinder检测项目内存泄露总结 https://www.cnblogs.com/ocarol/p/5288497.html

  2. WebApi上传文件

    上网搜了下Web Api上传文件的功能,发现都写的好麻烦,就自己写了一个,比较简单,直接上传文件就可以,可以用Postman测试. 简单的举例 /// <summary> /// 超级简单 ...

  3. c#子线程线程中操作窗体更新的报错

    用 在执行上传时,由于操作较长窗体界面卡住,于是用task解决 Task t1 = new Task(manage.UploadData); t1.Start(); 结果不卡了,程序也传完了,运行到更 ...

  4. FastFDS基础

    1. FastDFS介绍 FastDFS( Fast Distributed file system)是一款轻量级的.高性能的.阿里巴巴开源的分布式文件系统.该系统的作者是余庆 (happyfish1 ...

  5. ping内网一台虚拟机延时很大(hyper-v虚拟机)的解决办法

    问题现象: ping 内网一台虚拟机延时很大,不稳定,造成业务系统响应慢.查看服务器上各种资源都正常. 解决办法: 在物理机上找到和hyper-v绑定的那个网卡,把“虚拟机队列”禁用掉就好了,如下图: ...

  6. 要开始学习C#

    之前有涉及ASP.NET,但是就仅涉及workflow这点,现在再接触还是有点陌生. 整理一些VS使用小技巧: 1,for   cw ctor 按两下Tab键会出现整个的语句 2,Ctrl+shift ...

  7. mysql的innodb和myisam的区别和应用场景

    1. 区别: (1)事务处理: MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理): (2)锁机制不同: MyISAM是表级锁,而InnoDB是行级锁: (3)sel ...

  8. async/await的特殊的地方

    一:async如果是用于方法声明里,那么要求这个方法的返回值必须是Task.Task<TResult>.void这三种,而且await出现的地方要求其所在的方法必须是async修饰的方法: ...

  9. Windows系统编程之异步I/O和完成端口

    Windows系统编程之异步I/O和完成端口[作者]北极星2003[来源]看雪技术论坛(bbs.pediy.com) [时间]2006年7月1日 一.  同步I/O和异步I/O 在介绍这部分内容之前先 ...

  10. jdk8中关于操作集合的一些新特性,遍历和排序操作

    jdk8增加了不少新的东西,在集合操作这块,就有如 lamda表达式,stream,sort,optional等新的类,主要涉及遍历和排序等方面,新特性提升了不少性能,我们开发就是要拥抱新事物,守着老 ...