发烧友10周年庆典,全网超值优惠来袭!千元现金券,下单抽奖赶紧参与》》

单片机C语言编程中没有到的中断而中断全部开启的错误你了解吗

单片机精讲吴鉴鹰 2019-05-26 11:57 次阅读

我们知道,51单片机有几个不同的中断源。

对于一个系统的设计,通常在初始化程序里面需要定义各个中断等

比如:

TMOD = 0x21; // T1 mode 2 T0,mode 1 //GATE C/T M1 M0 GATE C/T M1 M0

TL1 = 0xfd; // 0xfa=4800 bps 0xfd=9600 bps

TH1 = 0xfd;

TH0 = -(10000/256);

TL0 = -(10000%256);

PCON = 0; //波特率不变等设置

SCON = 0x50; //串口1方式1,允许接收

IT0 = 1; //外部中断0下降沿有效

IT1 = 1; //外部中断1下降沿有效

TR0 = 1; //启动定时器0

TR1 = 1; //启动定时器1

ET0 = 1; //开放定时器0中断

ES = 0; //串行中断

EX0 = 0; //外部中断0

EX1 = 0; //外部中断1

EA = 1;

可以看到,我们一共有:定时中断0,定时中断1,外部中断0,外部中断1,串行中断。

这五个中断是最基本的中断源。对于各位的设计,我相信这一段代码在不同的程序重通常都不会自己重复敲打进去了。应该是从以前某个代码中直接复制过来吧。

此时会有一个小问题存在而被你忽略。

之前已经完成的代码中,你很有可能已经使用了全部5个中断,但是,一个刚开发的系统,也许还只是用到了其中的三个或者两个中断,而中断你全部开启了。这个意味着什么呢?

换算到汇编中可以比较明显的看到问题:

org 0000h

ljmp main

org 0003h //中断0入口

ljmp int1 //中断1处理

org 000bh //中断1入口

ljmp int2 //中断1处理

org 0013h ……

ljmp int3

org 001bh

ljmp int4

org 0023h

ljmp int5

main:

……

ret

int1

reti

int2

reti

……

可以知道,设置EX0 = 1意味着如果在外部中断0上存在中断信号,程序会跳转到0003h处运行

而下一条就是跳转到对应的中断处理程序。

假如我们的系统所有的中断都开启,但是你的中断处理程序此时只有一个。比如是串口中断开启。

那就意味着如果有定时中断也好,外部中断也好,全部都会让你执行串口中断处理函数。

因为你根本就没有让中断跳转到对应处理函数的过程,于是一直往下运行,从而发生未知的故障。

又比如你没有 串口中断处理函数,但是你开启了串口中断,你的程序在调试阶段又有一个串口发送数据的函数,那意味着什么?意味着你发送数据的时候有可能进入串口中断入口,而此时没有一个跳转命令到串口处理函数,那么只好重新运行主函数了。

程序就全部乱套了。

综上,没有用到的中断,就不要开启其标志位,在COPY的时候要记得修改此处的参数,否则搞死人不偿命的。

原文标题:谈谈单片机C语言编程中不经意间的一个小错误!

文章出处:【微信号:wujianying_danpianji,微信公众号:单片机精讲吴鉴鹰】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

玩单片机到千万身家,“技术型老总”需要哪些神技能?

中国硬件创新大赛网络培训会—技术培训篇如果你就干这行,毫无疑问你不能错过这次直播;如果不是,可能你不一定喜欢单片机,也不
发表于 05-16 00:00 585次 阅读
玩单片机到千万身家,“技术型老总”需要哪些神技能?

AltiumDesigner10视频教程 | 免费获取

网盘链接: 提取码:dn42
发表于 09-19 22:15 33次 阅读
AltiumDesigner10视频教程 | 免费获取

使用MSP430单片机设计声音导引系统的资料免费下载

本设计采用两片低功耗MSP430 单片机作为主辅控制单元。通过麦克风检测音频信号,辅控单元计算声源坐....
发表于 09-19 17:48 13次 阅读
使用MSP430单片机设计声音导引系统的资料免费下载

使用89C52单片机设计简易智能电动车的论文资料免费下载

简易智能电动车由一个电动玩具车改造而成。系统的控制部分以单片机为核心,通过对前向通道各种传感器信号的....
发表于 09-19 17:48 18次 阅读
使用89C52单片机设计简易智能电动车的论文资料免费下载

步进电机-四相五线步进电机原理

做了十几年软硬件开发,越来越喜欢电子技术,他能显示、能发声音、能传递信息、还能做出动作。电和磁总是分不开,他能产生力,能...
发表于 09-19 17:26 66次 阅读
步进电机-四相五线步进电机原理

STM32单片机驱动步进电机-定时器输出正弦波

前面的文章介绍了单片机控制步进电机四相四拍、四相八拍的方式。用的是持续电平驱动,这种驱动方式电机的噪音大,震动明显,下面...
发表于 09-19 17:22 76次 阅读
STM32单片机驱动步进电机-定时器输出正弦波

STM32单片机驱动步进电机-正弦波驱动

前面的文章介绍了单片机控制步进电机四相四拍、四相八拍的方式。用的是持续电平驱动,这种驱动方式电机的噪音大,震动明显,正弦...
发表于 09-19 17:18 100次 阅读
STM32单片机驱动步进电机-正弦波驱动

使用单片机控制继电器与DA转换器的宽带直流放大器设计论文免费下载

本文设计了一种前置放大电路,在较宽的频率范围内具有良好的直流和交流特性。该电路具有输出频率高(DC~....
发表于 09-19 17:04 16次 阅读
使用单片机控制继电器与DA转换器的宽带直流放大器设计论文免费下载

如何防止单片机被恶意攻击技术破解

单片机(Microcontroller)一般都有内部ROM/EEPROM/FLASH供用户存放程序。....
发表于 09-19 16:23 44次 阅读
如何防止单片机被恶意攻击技术破解

使用Proteus仿真实现51单片机中断系统及应用实例说明

本文对MCS-51单片机的中断系统进行了简明扼要的总结和归纳,并在后面举了三个简单的例子,这样有助于....
发表于 09-19 14:50 13次 阅读
使用Proteus仿真实现51单片机中断系统及应用实例说明

把单片机引脚配置普通的按键输入引脚,是选择哪种模式?

请大家帮忙,想把单片机引脚配置普通的按键输入引脚,是选择哪种模式? 以下哪种模式: 不激活上/下拉器件 激活下拉 激活上拉...
发表于 09-19 14:11 98次 阅读
把单片机引脚配置普通的按键输入引脚,是选择哪种模式?

C++参考大全第四版PDF电子书免费下载

本书是根据著名C语言专家Herbert Schildt的著作翻译的。这是一本关于C++语言的百科全书....
发表于 09-19 11:54 6次 阅读
C++参考大全第四版PDF电子书免费下载

使用PROTEUS和单片机设计100以内计数器的资料说明

在一个单片机应用系统中,往往都会输入信息和显示信息,这就涉及键盘和显示器。在单片机应用系统中,一般都....
发表于 09-19 11:28 14次 阅读
使用PROTEUS和单片机设计100以内计数器的资料说明

请问单片机怎么读取通讯时的数据流?

单片机与电脑通过IIC 通讯,有没有方法读取通讯时的数据流。。。...
发表于 09-19 09:13 82次 阅读
请问单片机怎么读取通讯时的数据流?

请问高压多路电流单片机AD采样显示怎么做?

需要采集4个300v供电的负载电流,转换为电压,然后通过单片机ADC采集,显示出电流值。 由于1个负载有多个支路,只能采集负...
发表于 09-19 09:10 35次 阅读
请问高压多路电流单片机AD采样显示怎么做?

详解LPC824外部中断

外部中断是单片机实时地处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使 CPU 暂停正在执行的程序...
发表于 09-19 09:05 13次 阅读
详解LPC824外部中断

hFCT8单片机测量控制板的用户手册免费下载

FCT 系列是适用于 PCB 电路板自动各种功能测量的控制板。控制板采用“步骤”为核心理念,把需要测....
发表于 09-19 08:00 20次 阅读
hFCT8单片机测量控制板的用户手册免费下载

数据结构C语言版辅导教程PDF电子书免费下载

《数据结构》是一门计算机专业基础课,各类计算机考试都禁不住要考它,专升本考试自然也不例外。我给学生辅....
发表于 09-19 08:00 12次 阅读
数据结构C语言版辅导教程PDF电子书免费下载

请问合泰带段式LCD的单片机如何驱动?

最近在学习合泰的LCD型单片机,以前没用过。不太了解它的LCD到底要如何驱动。我是用单片机直接连接段式LCD。 我找到的...
发表于 09-19 07:23 52次 阅读
请问合泰带段式LCD的单片机如何驱动?

51单片机频率测量接上给中断1信号发生器后led自己闪烁

今天用51搞一个频率测量,居然接上给中断1信号发生器后led自己闪烁,,闪的频率还和信号发生器有关,注释EX1=1;后不闪了 真是蛋...
发表于 09-19 00:04 27次 阅读
51单片机频率测量接上给中断1信号发生器后led自己闪烁

PIC12C508单片机控制灯光慢慢的变亮和变灭的程序设计

以上程序使用PIC12C508 单片机 ,内部4MHz时钟,4脚输入50HZ脉冲信号,7,6,3脚(....
发表于 09-18 16:08 78次 阅读
PIC12C508单片机控制灯光慢慢的变亮和变灭的程序设计

单片机定时器的四种工作方式解析

1 工作方式0 定时器/计数器T0工作在方式0时,16位计数器只用了13位,即TH0的高8位和....
发表于 09-18 15:57 64次 阅读
单片机定时器的四种工作方式解析

单片机空闲模式和掉电模式的应用解析

单片机进入空闲模式的时候,除了cpu处于休眠状态外,其余的硬件全部处于活动状态,芯片中未涉及的数据存....
发表于 09-18 15:16 31次 阅读
单片机空闲模式和掉电模式的应用解析

ATK-OV2640摄像头模块的资料和基于STM32应用的C语言源代码免费下载

本文档的主要内容详细介绍的是ATK-OV2640摄像头模块的资料和基于STM32应用的C语言源代码免....
发表于 09-18 08:00 12次 阅读
ATK-OV2640摄像头模块的资料和基于STM32应用的C语言源代码免费下载

C语言游戏编程从入门到精通PDF电子书免费下载

本书以C语言游戏编程入手,以102个实例,近200个函数较为系统地介绍了C基于游戏编程与开发的方法与....
发表于 09-18 08:00 20次 阅读
C语言游戏编程从入门到精通PDF电子书免费下载

Python的一些经典复习资料免费下载

Python 是什么类型的语言? Python 是脚本语言脚本语言 (Scripting langu....
发表于 09-18 08:00 9次 阅读
Python的一些经典复习资料免费下载

HR7P169B单片机的数据手册和特尔驰MCU芯片使用注意事项免费下载

特尔驰 MCU 芯片具有独立电源管脚。当 MCU 芯片应用在多电源供电系统时,应先对 MCU 芯片上....
发表于 09-17 17:07 47次 阅读
HR7P169B单片机的数据手册和特尔驰MCU芯片使用注意事项免费下载

笨办法学C语言中文版电子教程免费下载

这本书的目标是让读者掌握足够的C语言技能,从而可以自己用C语言编写程序或者修改别人的C语言代码,成为....
发表于 09-17 17:07 43次 阅读
笨办法学C语言中文版电子教程免费下载

手把手教你学51单片机C语言版PDF电子书免费下载

本书旨在培养和锻炼单片机系统实用开发技能,全书以实践为主线,让读者在一个个实践案例中逐步掌握单片机电....
发表于 09-17 16:41 57次 阅读
手把手教你学51单片机C语言版PDF电子书免费下载

使用MSP430F149单片机设计宽带直流放大器的详细论文说明

本设计由输入缓冲电路,增益控制电路,后级功率放大电路,测量电路,单片机控制及显示和电源模块六个功能模....
发表于 09-17 15:56 35次 阅读
使用MSP430F149单片机设计宽带直流放大器的详细论文说明

使用51单片机和EPM7128设计实现简易逻辑分析仪的论文免费下载

本设计采用单片机(89C51)和可编程逻辑器件(EPM7128)作为系统的控制核心。整个设计采用了模....
发表于 09-17 15:56 37次 阅读
使用51单片机和EPM7128设计实现简易逻辑分析仪的论文免费下载

使用单片机和THS3001设计宽带直流放大器的论文免费下载

本设计使用两片集成运放THS3001级联组成前置放大电路,并由运算放大器加分立器件三极管构成复合放大....
发表于 09-17 15:54 44次 阅读
使用单片机和THS3001设计宽带直流放大器的论文免费下载

使用CXA1019芯片和PLL频率合成器BU2614与单片机实现调频收音机的论文

本调频收音机主要由SONY 公司的FM/AM 收音机芯片CXA1019、ROHM 公司的PLL 频率....
发表于 09-17 15:54 33次 阅读
使用CXA1019芯片和PLL频率合成器BU2614与单片机实现调频收音机的论文

单片机实现寄存器寻址的方法解析

1、4个工作寄存器组共有32个通用寄存器,但在指令中只能使用当前寄存器组(工作寄存器组的选择在前面专....
发表于 09-17 15:43 32次 阅读
单片机实现寄存器寻址的方法解析

Modbus调试精灵与单片机实现多机通信的设计

写寄存器的时候,如果我们要把01写到一个地址是0000的寄存器地址里,点一下“写入”,就会出现发送指....
发表于 09-17 15:28 64次 阅读
Modbus调试精灵与单片机实现多机通信的设计

使用AT89S51单片机进行交通灯控制器的仿真与实现

交通灯控制器是智能交通系统中重要的组成部分,设计中选用AT89S51作为交通灯控制器的处理芯片,由单....
发表于 09-17 15:22 30次 阅读
使用AT89S51单片机进行交通灯控制器的仿真与实现

使用HCS12单片机开发板设计自主识别的智能小车论文免费下载

本论文制作了一个能够自主识别黑线行驶的智能车。该智能小车以飞思卡尔HCS12单片机作为核心控制器,采....
发表于 09-17 11:22 38次 阅读
使用HCS12单片机开发板设计自主识别的智能小车论文免费下载

单片机入门教程之常用电子元器件的详细视频教程免费下载

元器件的基本知识:原理图符号,封装,直插,结实,体积大,功率大,只能手工焊接,贴片,体积小,一般都 ....
发表于 09-17 11:22 55次 阅读
单片机入门教程之常用电子元器件的详细视频教程免费下载

51单片机案例分析:按钮控制灯亮接线原理

若同时按下两个以上的按钮,则对应的发光二极管发亮。例如按下SB1和SB3,则对应的输出端口P1.4和....
的头像 畅学单片机 发表于 09-17 10:25 127次 阅读
51单片机案例分析:按钮控制灯亮接线原理

ATK QR二维码和条码识别库的模块资料和使用C语言代码合集免费下载

ATK QR二维码和条码识别库的模块资料和基于STM32使用的C语言代码合集免费下载包括了:ATK_....
发表于 09-17 08:00 21次 阅读
ATK QR二维码和条码识别库的模块资料和使用C语言代码合集免费下载

使用STC12C5A60S2单片机设计一个光伏并网发电模拟装置的论文资料说明

当今,并网逆变器以它节能,高效等突出优点越来越受到人们的欢迎。并网逆变器主要分为光伏并网逆变器、风力....
发表于 09-16 17:48 45次 阅读
使用STC12C5A60S2单片机设计一个光伏并网发电模拟装置的论文资料说明

单片机中的时间片轮询法解析

时间片轮询法,在很多书籍中有提到,而且有很多时候都是与操作系统一起出现,也就是说很多时候是操作系统中....
发表于 09-16 16:11 66次 阅读
单片机中的时间片轮询法解析

如何快速的学习单片机编程

CPU,它的名字没有改,还是叫CPU(Central Processing Unit)。它是单片机的....
发表于 09-16 16:08 110次 阅读
如何快速的学习单片机编程

NRF24L01和单片机2.4GHz收发器产品规范免费下载

NRF24L01+是一款带有嵌入式基带协议引擎(Enhanced ShockBurst™)的单芯片2....
发表于 09-16 15:52 39次 阅读
NRF24L01和单片机2.4GHz收发器产品规范免费下载

使用Matlab与VB混合编程在弧齿锥齿轮SGM调整卡计算中的应用资料说明

述几种Matlab与VB混和编程的方法,比较各自的优缺点,为使系统能脱离matlab环境,实现调整卡....
发表于 09-16 15:52 29次 阅读
使用Matlab与VB混合编程在弧齿锥齿轮SGM调整卡计算中的应用资料说明

如何为单片机选择合适的负载电容

各种逻辑芯片的晶振引脚可以等效为电容三点式振荡器。晶振引脚的内部通常是一个反相器,或者是奇数个反相器....
发表于 09-16 15:44 54次 阅读
如何为单片机选择合适的负载电容

8051单片机C语言创新教程PDF电子书免费下载

本书主要特色是边学边做,不是单纯的理论讲解,各章节中规中矩,遵循由简到繁、循序渐进的编排方式。本书大....
发表于 09-16 15:22 35次 阅读
8051单片机C语言创新教程PDF电子书免费下载

YL90角度传感器模块使用说明和倾斜模块原理图与使用程序免费下载

该传感器模块将倾角信号转换成电压输出,且可以设置比较器的阈值,达到倾角过大输出报警的功能,精度相比陀....
发表于 09-16 08:00 18次 阅读
YL90角度传感器模块使用说明和倾斜模块原理图与使用程序免费下载

常见单片机的实用工具万用表和示波器与逻辑分析仪的介绍与使用方法

工欲善其事必先利其器,我们做单片机开发的时候,不管是调试电路还是调试程序,都需要借助一些辅助工具来帮....
发表于 09-16 08:00 62次 阅读
常见单片机的实用工具万用表和示波器与逻辑分析仪的介绍与使用方法

PIC24FV16KM204系列通用16位闪存单片机数据手册

PIC24FV16KM204系列器件为超低功耗Microchip器件引入了许多新的模拟特性。该 16....
发表于 09-16 08:00 22次 阅读
PIC24FV16KM204系列通用16位闪存单片机数据手册

STM32F0XXX CortexM0系列单片机的编程手册免费下载

本编程手册为应用程序和系统级软件开发人员提供信息。本文详细介绍了stm32 cortex™-m0处理....
发表于 09-16 08:00 46次 阅读
STM32F0XXX CortexM0系列单片机的编程手册免费下载

C语言算法和注释大全PDF电子书免费下载

本文档的主要内容详细介绍的是C语言算法和注释大全PDF电子书免费下载包括了:1.10进制转2进制,二....
发表于 09-12 17:17 77次 阅读
C语言算法和注释大全PDF电子书免费下载

单片机中的AD精度是如何定义的

AD精度指的是AD实际转换的结果和理想的计算结果之间的误差,也叫做积分非线性误差,符号是(INL) ....
发表于 09-12 16:24 114次 阅读
单片机中的AD精度是如何定义的

单片机执行编制程序的全过程解析

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可....
发表于 09-12 16:21 195次 阅读
单片机执行编制程序的全过程解析

单片机编程的常见问题解答

C 语言是一种结构化的高级语言。其优点是可读性好,移植容易,是普遍使 用的一种计算机语言。缺点是占用....
发表于 09-12 16:11 130次 阅读
单片机编程的常见问题解答

物联网中会使用哪些编程语言

虽然Java是物联网开发中使用最多的语言,但是Java和Python在物联网开发的不同子域中紧随其后....
发表于 09-12 15:45 123次 阅读
物联网中会使用哪些编程语言

使用ADUC812单片机和AD603设计一个宽带放大器的报告资料免费下载

本设计由三个模块电路构成:前级放大电路(带AGC部分)、后级放大电路和单片机显示与控制模块。在前级放....
发表于 09-12 11:39 54次 阅读
使用ADUC812单片机和AD603设计一个宽带放大器的报告资料免费下载

使用LabWindows实现多个单片机与PC进行串口通信的工程文件和程序

本文档的主要内容详细介绍的是使用LabWindows实现多个单片机与PC进行串口通信的工程文件和程序....
发表于 09-12 11:37 68次 阅读
使用LabWindows实现多个单片机与PC进行串口通信的工程文件和程序

54个单片机的经典设计案例的程序和工程文件免费下载

本文档的主要内容详细介绍的是54个单片机的经典设计案例的程序和工程文件免费下载包括了:33个基础实验....
发表于 09-12 08:00 111次 阅读
54个单片机的经典设计案例的程序和工程文件免费下载

51单片机自学笔记PDF电子书免费下载

 本书以89S51系列单片机为载体,结合作者多年教学与指导大学生电子设计竞赛的经验编写而成。全书分三....
发表于 09-12 08:00 71次 阅读
51单片机自学笔记PDF电子书免费下载