新唐单片机的pin中断误触发

新唐单片机的pin中断误触发,第1张

新唐单片机的pin中断误触发:单片机硬件中断触发方式有两种,后沿触发和低电平触发。当ITn(n=0,1)为1时,后沿触发;为0时,低电平触发。

当然会改变,因为使用的低电平触发中断,中断服务程序退出后,P32如果还是低电平,当然还会重进中断,你可以修改一下中断服务程序,避免重入,比如:void it0() interrupt 0//中断程序{ d1=0;while(!P3^2);}。

控制器其主要功能有:

(1) 从内存中取出一条指令,并指出下一条指令在内存中的位置。

(2) 对指令进行译码和测试,并产生相应的 *** 作控制信号,以便于执行规定的动作。

(3) 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。

微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。

外中断两种方式分为电平触发方式跟跳沿触发方式,区别如下:

一、方式不同

1、电平触发方式:外部中断申请触发器的状态随着CPU在每个机器周期采样到的外部中断输入线的电平变化而变化。

2、跳沿触发方式:外部中断申请触发器能锁存外部中断输入线上的负跳变。即便是CPU暂时不能响应,中断申请标志也不会丢失。

二、特点不同

1、电平触发方式:在中断服务程序返回之前,外部中断请求输入必须无效(即变为高电平),否则CPU返回主程序后会再次响应中断。

2、跳沿触发方式:相继连续两次采样,一个机器周期采样到外部中断输入为高,下一个机器周期采样为低,则置“1”中断申请触发器,直到CPU响应此中断时才清’0’。

三、适用性不同

1、电平触发方式:适合于外部中断以低电平输入而且中断服务程序能清除外部中断请求源(即外部中断输入电平又变为高电平)的情况。

2、跳沿触发方式:适合于以负脉冲形式输入的外部中断请求。

参考资料来源:百度百科-外部中断

参考资料来源:百度百科-中断处理

中断程序不是使用的,是当单片机的中断源有中断请求时,以允许中断的情况下,就是自动转到中断程序去执行了。所以,编程时,需要在中断完成什么任务,都要写到中断程序中就行了,会自己去执行的。而不需要你去使用的。

有几种可能:

1、你的外部中断是电平触发,当你中断执行完毕后,电平还是没有变,就等于又中断了,建议你改为边沿触发

2、你在进入中断后,没有保存现场,内存的数据乱了,结果中断完成后就回不去了

3、中断程序有问题,这要对照具体的程序才知道

电平触发一般是指单片机中断引脚当检查到有个低电平(0V)或高电平(5v)就会产生中断,从而进入中断函数中处理这些中断程序,直到中断引脚电平改变。同理,边沿触发一般是指当中断引脚由低电平突然变为高电平时(出现了上升沿)或高电平突然变为低电平(出现了下降沿)就会产生中断,也就产生了中断标志,当EA=1(打开总中断)时,程序就会暂停main{}当初处理的数据,从而跑入到中断之程序中去,直到中断函数处理完毕,才恢复堆栈数据,返回到main{}继续工作。呵呵 基本原理就是这样。

;1:定时/计数器实验,方式0,查询方式编程

;系统时钟12MHz,T0每5ms溢出一次

;20次后取反P00

;执行后,与P00连接的LED亮01s灭01s,即以5Hz的频率闪烁

ORG 0000H

ljmp Start

ORG 0100H

Start:

mov TMOD,#00H   ;计数模式为0,13位计数模式

mov TH0,#0CH;6C78H 定时器0的高8位

mov TL0,#78H    ;定时器0的低8位

mov R7,#20      ;设置循环20次

setb TR0        ;开定时器/计数器0的中断

;计数,溢出了之后就跳转

Loop:jbc TF0,T0SVR   ;如果TF0位1就跳转,TF0是定时器0的溢出标志位

sjmp Loop

T0SVR:mov TH0,#0CH;0C78H

mov TL0,#78H

djnz R7,Next

mov R7,#20

cpl P00        ;取反p00位

Next:sjmp Loop

END

扩展资料

TF1---定时器1溢出标志位。

当定时器1记满溢出时,由硬件使TF1置1,并且申请中断。进入中断服务程序后,由硬件自动清0。需要注意的是,如果使用定时器中断,那么该位完全不用人为去 *** 作,但是如果使用软件查询方式的话,当查询到该位置1后,就需要用软件清0。

TR1---定时器1运行控制位。

由软件清0关闭定时器1。当GATE=1,且INIT为高电平时,TR1置1启动定时器1;当GATE=0时,TR1置1启动定时器1。

TF0---定时器0溢出标志,其功能及其 *** 作方法同TF1。

TR0---定时器0运行控制位,其功能及 *** 作方法同TR1。

IE1---外部中断1请求标志。

以上就是关于新唐单片机的pin中断误触发全部的内容,包括:新唐单片机的pin中断误触发、89c51单片机外中断两种触发方式的区别,各适用于何种情况、单片机编程时中断程序如何使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10624308.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-10
下一篇2023-05-10

发表评论

登录后才能评论

评论列表(0条)

    保存