电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

PIC中档单片机的中断总结

来源:火烈鸟作者:开心麻花2025-09-191

PIC中档单片机的中断总结(精选3篇)

PIC中档单片机的中断总结 第1篇

与51或者其他系列的单片机相比,PIC 单片机的中断机制有其特殊之处,针对我们一些初学者存在的一些问题和疑惑,我在此做一个个人总结,不当的地方,请站友们指正。

先摘引三个对PIC中断理解的回帖,然后我再对中断活动的过程、应该注意的事项、及一个疑惑进行较详细的总结和解释。

---------------

john frank :关于pic中断有些不明白的地方

借用大虾的程序;

;******************** 中断服务代码

btfss    INTCON,T0IE      ; 判断是否为T0中断

goto    other_int

btfss    INTCON,T0IF      ; it ’s the time of T0 int

goto    other_int

bcf    INTCON,T0IF      ; 是T0中断,清除中断标志

movlw    0x10          ; 微秒的高位字节加上定时时间 256x16分频=4096=0x1000的高位(0x10)

addwf    us+1

goto    end_int

other_int              ; 可添加其他中断服务代码

nop              ; other isr code can be added

;**********************************

end_int                  ; 恢复现场

=================

假如又有新的中断正好在这段程序中间产生

btfss    INTCON,T0IF

goto    other_int

bcf    INTCON,T0IF

程序岂不是要出错跑飞了

john frank:

谢谢你的关注。

我讲一下自己的理解,权做回答,不当之处,还请站友们指点。

pic中档单片机系列没有“硬件中断优先级别”(请允许我这样说),含义是指:当内核正在处理当前的中断服务A时,在这个期间里,其他任何中断的产生,只能使其标志位xxIF置1,不能剥夺当前中断服务对CPU的占用权(反应在PC指针不能被新的中断改变指向),必须等到当前中断服务处理A完毕,然后,根据goto other_int语句的转向,依次判断。若新发生的中断处理代码在中断服务A之后(前、后指代码在ROM中地址顺序,越大越后),则进行新发生的中断处理;若恰好新发生的中断服务代码在刚被处理完毕的中断服务A代码之前,则将不予理会,(即程序指针PC不会在中断处理代码空间中又返回到0004H的入口),等到执行到retfie 后返回主程序,然后再次进入中断入口0004H...

之所以说其无“硬件中断优先级别”是与“软件中断优先级别”对应的,通过中断服务代码对中断标志和IE的检测的先后,可设立优先级。

当然,准确地说,这是一种顺序,而非级别,呵呵。

如果了解一下51的中断系统,相信你能更好地理解PIC的中断的级别:

将会出现你说的情况,当优先级更高的中断来临时,内核将暂时停止当前中断服务,保存当前中断服务的现场,执行优先级更高的中断服务,处理完成后,恢复现场,执行未处理完成的中断服务....,最后,返回主程序。

小弟讲得有点烦琐,并不形象,可能还有纰漏和谬误之处,请大家指正,相信john frank在仔细看书之后,应该可以形成自己的正确看法。

zdtdl :小弟说两句~~

简单地说,当系统响应一个中断时,GIE位将被自动清零以禁止其他的中断,在执行中断返回指令RETFIE后系统再自动置GIE位1开放中断。只要

不在中断程序中对GIE置1,就不会产生反复进入中断的现象,靠查询方式决定响应谁。PIC也有中断嵌套,可以形成多级嵌套,甚至自身嵌套,不过嵌套的级数绝对不能超过硬件堆栈的深度。

-------------------------

PIC单片机串行器件的软件调试 第2篇

串行器件的程序调试通常是单步执行, 然后检测有关管脚的电平变化。这是一个很繁琐的过程。而且这样的调试环境与实时钟运行是不一样的, 有可能调试通过而实时运行却出现问题。幸运的是Mcrochip的MPLAB IDE提供了一个很好的解决方案逻辑分析器。

在Debugger菜单下选择调试工具 (Select Tool) 。只有在MPLAB SIM方式下, 分析仪才是可用的, 在View菜单下选择Simulator Logic Analyzer, 即可打开分析器界面。

点击Channels按钮可以打开Configure Channels界面。在此添加 (移除) 需要监视的信号, 也可以调整信号显示的上下顺序, 确定后点击OK。这时Logic Analyzer窗口就可以随着程序的运行, 即时显示选定信号的电平变化。点击Clear按钮可以清除当前的显示。此窗口还提供了几个很方便的按钮, 如放大、缩小显示比例, 拷贝、存盘、打印、预览等。

下面是实时钟芯片DS1302的例子, 电路如图1:

在逻辑分析器窗口配置监测信号, 添加RC1、RD1、RD0, 点击“OK”确认。

;功能:读DS1302一个寄存器

;入口:W=读取地址

;出口:W=读到的字节

;占用:TMP1处理数据移位、CONT循环计数

执行该子程序在逻辑分析器看到的时序图:

PIC中档单片机的中断总结 第3篇

关键词:电站故障保护;PIC单片机;模块

中图分类号:TM769 文献标识码:A 文章编号:1674-7712 (2014) 16-0000-01

随着电子技术的发展,以单片机为控制核心故障保护模块以其优良的安全性、平稳性、可靠性全面取代了传统模拟式保护系统,在电站故障保护中的到了全面应用,本研究基于PIC单片机设计并实现了电机故障保护模块,现将相关设计理念及实现过程介绍如下。

一、故障保护模块的功能要求

电站故障保护按照电站故障保护类型通常可以重故障保护和轻故障保护两类。其中重故障保护包括超速、油压低、水温高等。轻故障保护包括过电压、过频率、过电流、欠电压、欠频率等。依据不同的故障类型,故障保护模块会有相应的保护动作,一般情况下发生轻故障时,故障保护模块会切断电源实现对设备的保护,而一旦设备发生重故障,故障保护模块则会在第一时间断电停机,以保证发电设备不会受到损害。

二、故障保护模块的模块组成

本研究故障保护模块由机组电源检测、频率检测、转速检测、温度控制、压力检测、PIC16F877A单片机控制等部分组成。分布于电站的电源设备、转速控制设备、频率变送设备、温度传感设备、压力传感设备等位置,用于收集和处理电站的各项工作数据,经过处理后输入中央处理器,在中央处理器内部完成内部比较,以判断是否存在故障,如果运行平稳无障碍,在进行持续循环监控,一旦发展出现故障会第一时间进入故障处理进程,对故障进行保护。

三、故障保护模块的硬件设计

该电站故障保护模块的核心器件采用PIC16F877单片机。总线结构采用哈佛总线,其指令系统采用通用的RISC系统,在程序编写方面比较简单,易于实现。在故障模块内部设有8路模拟量输入通道,通过I/O能够驱动LED管、继电器及光电耦合器,控制电路简单有效。

(一)电源及频率检测单元

本模块采用三相电源和频率变送器完成信号转换成工作,信号被转化为电压为5V的直流信号后,以该直流电压作为PIC16F877单片机输入信号,通过变送器完成线性光电隔离工作,该模块具有精度较高、体积较小、能耗较低、频率较宽等诸多优势。

(二)转速采集单元

通过数字测速系统转速采集单元完成采样工作,具体转速测定是通过安装在发动机飞轮壳上的磁性传感器完成的。发动机飞轮齿顶部位置距离磁性传感器的距离在应在1mm以内,经过整形后,传感器输出交流信号被输入到PIC16F877单片机的TMR1端口中,由TMR1完成信号的脉冲计数工作,并以此实现转速实际监测工作。TRM1作为16bit的计数寄存器,其中包含有低频时基振荡器和3bit可编程预分频器,其测速的精确度较高,分辨度较高,且通常不会受到其他器件的影响。

(三)压力及温度检测单元

电站的压力及稳步检验工作是依托于安装在油压传感器以及水箱散热器上的传感器实现和完成的,压力及温度传感信号全部采用开关量,在实施光电隔离之后,输入到PIC16F877单片机的I/O端口。

(四)输出回路

电站故障保护模块的系统的输出主要包括停机和断电两个开关量,经过光电隔离后,由PIC16F877单片机的输出口驱动停机继电器和停电继电器完成停机和断电动作。

四、故障保护模块的软件设计

该电站故障保护模块软件由汇编语言进行编写,主要包括有初始化程序、A/D转换程序、TMR1计数程序、故障保护程序等。

(一)初始化程序

电站故障保护模块中的初始化程序中包括数据方向控制、中断控制、IN-TCON、ADCON0等多个寄存器。

(二)A/D转换程序

单片机内部嵌有ADC模块,其数字量精度为10bit,有8个模拟通道,并设有AD-CON0、ADCON1、ADRESH、ADRESL等四个专用寄存器。使用了PIC16F877单片机的三个模拟量通道。ADCON0寄存器设置为11000001,ADCON1存器设置为00000100,模拟输入为AN0、AN1、AN3,A/D转换结果在ADRESH和AD-RESL中存放。

(三)TMR1计数程序

TMR1计数程序由16bit的定时器/计数器构成,分为三种工作模式,采用异步计数器,T1CON設置为00000110。由于TMR1由TMR1H和TMR1L组成,在读数时应注意分次读取。

(四)故障保护程序

故障保护程序重点完成A/D采样、定时器/计数器TMR1及I/O口压力及温度监控数据比较判别,并输出相应动作。

五、故障保护模块的抗干扰设计

在具体实施过程中系统的抗干扰设计同样是一项十分重要的工作,本研究主要实施了七项抗干扰设计举措。一是依托在相关供电/断电的交流接触器线圈侧加装RC瞬变噪声抑制网络,来实现抗干扰功能。二是通过加装控制继电器线圈两侧续流二极管,来实现抗干扰功能。三是采用屏蔽线装备转速磁性传感器传输线实现抗干扰。四是在模拟量输入通道中加装线性光电隔离变送器,并设置T型低通滤波器实现抗干扰。五是通过DC/DC变换器供电实现抗干扰。六是在开关量输入/输出通道中增加光电隔离器实现抗干扰。七是在PCB板入口处电源与底线间加装的电容器,并采取线条垂直交叉走线实现抗干扰。

本电站故障保护模块设计经过实际应用,经过实际验证可完全满足电站故障保护要求,模块运行安全稳定,对于确保电站安全具有重要作用。

参考文献:

[1]王军宁,何迪.TI DSP/BIOS用户手册与驱动开发[M].北京:清华大学出版社,2007:78-80.

[2]白凤山.单片机在高压异步电机综合保护中的应用[J].内蒙古大学学报,2003(05):552-556.

PIC中档单片机的中断总结

PIC中档单片机的中断总结(精选3篇)PIC中档单片机的中断总结 第1篇与51或者其他系列的单片机相比,PIC 单片机的中断机制有其特殊之处,...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部