中断功能的应用举例

中断功能的应用举例

ID:19594073

大小:349.50 KB

页数:15页

时间:2018-10-03

中断功能的应用举例_第1页
中断功能的应用举例_第2页
中断功能的应用举例_第3页
中断功能的应用举例_第4页
中断功能的应用举例_第5页
资源描述:

《中断功能的应用举例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、9.6中断功能的应用举例由于中断功能是一种应用比较广发的功能,在绝大多数的单片机控制项目中几乎都会用到此功能,因此,我们在本节中尽量利用ICD配套演示板上不算很多的硬件资源,通过灵活配置和辅以必要的附加条件,尽可能多样化的设计几个实验范例,以便充分展现中断功能的不同用法和编程技巧。下面的3个范例中,第1个范例中着重应用的一个中断源是TMR0;第2个实验中则重应用的中断源是外部中断INT;第3个实验中着重应用RB端口电平变化中断,并且有2个中断源(外部INT和端口RB)同时在活动.9.6.1TMR0溢出中断如何以中断方式利用模块产生延时?与查询方式

2、相比,以中断方式利用TMR0模块产生延时是如何分解CPU负担的?下面的实验范例会使读者得到答案。[例9.1]闪烁跑马灯※实验项目实现的功能把演示板上的8只LED发光二极管,规划为跑马等方式轮流闪烁发光。也就是8只LED中只有一只点亮,亮灯的位置以循环方式不停的移动,移动的速度取决于在各个位置上停留的时间,即在两步之间插入一个约96ms的延时,并且在每一个位置上LED都保持快速闪烁。※硬件电路规划流水灯电路如图9.3所示(电路图总各个元器件的标号保持与《MAPLAB—ICD用户指南》中提供的电路图中各元器件标号一致)。利用端口RC上现有的8只发光二

3、极管LED作为显示部件,各只LED均有限流电阻,主要为的是对单片机端口引脚内部电路起保护作用。单片机的时钟振荡器工作模式选用RC阻容振荡方式(将跳线JP1插接到演示板标有RC一侧的接线针上),根据电路中给定的R3和R4阻容值,时钟频率大约为4MHz。万一单片机脱离正常工作状态,而进入失控状态(或出现非正常现象),就可以利用复位按钮SW2,对单片机实施人工强行复位。利用片内的定时器/计数器TMR0模块和中断逻辑功能部件,让TMR0工作于定时器模式,并且在超时溢出时向CPU发送中断请求信号。PIC16F87XRC0RC1RC2RC3RC4RC5RC6

4、RC7470Ω*8D1D0D2D3D4D5D6D7LED*8_____MCLRVDDVDDVDDC422pF47KΩR3R13R2047KΩ470ΩR5R6R7R8R9R10R11R12VSSOSC1图9.3闪烁式跑马灯电路※软件设计思路驱动8只LED的显示码的形成,采用一次性向端口寄存器赋初值,然后循环移动的方式。在本例的程序中,需要加入2段延时,一个使LED灯每向前移动一步都要延迟一会(记为T1),另一个是LED还要亮、灭频繁切换形成闪烁,在亮态和灭态上都保留一个延时(记为T2)。我们打算T1延时用软件手段实现,T2延时以硬件措施完成,分频器

5、配置给TMR0使用,并且分频比设定为最大(1:256),利用TMR0编制一段大约66ms的延时子程序。TMR0延时时长的计算式为256*(256-0)指令周期=65536指令周期=65536μs=65.536ms。其中,前面的256是分频比,,括号内的256是TMR0的最大技术值;0是每次循环累加计数开始时需要向TMR0填写的初始值,直到计数到256时产生溢出。即从00H开始经过256次加1后,累计到100H便产生高位溢出,并且发出中断请求。※程序流程图如图9.4所是,包含主程序和中断服务子程序的流程图,延时子程序再次不再赘述,可以参见“PIC汇

6、编语言程序设计基础”一部分中关于岩石子程序的介绍。主程序设定C口全部输出设分频器归TMR0,分频比为1:256开放TMR0中断使能位和总使能位消除TMR0中断标志位给TMR0赋初值启动定时器显示缓冲器赋初始显示码调用延时子程序显示缓冲器带进位标志循环右移中断服务子程序保护W寄存器清除TMR0溢出标志位亮灭标志位=1?中断返回YN修改亮灭标志位显示缓冲器送显令灯LED熄灭TMR0赋初值重新启动恢复W寄存器图9.4程序流程图※程序清单;*******************************************************;《闪

7、烁式跑马灯》;程序文件名为“INTEXP.ASM”;**************************************************************tmr0equ01h;定义定时器/计数器0寄存器地址pclequ02h;定义程序计数器低字节寄存器地址statusequ3h;定义状态寄存器地址option_regequ81h;定义选项寄存器地址intconequ0bh;定义中断控制寄存器地址portcequ07h;定义端口C的数据寄存器地址triscequ87h;定义端口C的方向控制寄存器地址tmer0_bequ0;定义

8、TMR0寄存器初始值(256=256-0)dly1equ20h;定义一个延时变量寄存器dly2equ21h;定义另一个延时变量寄存器we

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。