PIC16F84 TM R0溢出中断与定时器实战教程
需积分: 11 46 浏览量
更新于2024-09-15
1
收藏 236KB PDF 举报
本文档主要介绍了如何利用PIC16F84单片机的TMRO(定时器/计数器0)溢出中断编写中断和定时程序。对于初学者来说,理解和编写中断程序可能会有一定的挑战,尤其是对于像TMRO这样复杂的定时器。TMRO是一个8位加计数器,当计数值从FFH(255)递减到00H(0)时,它会产生一个中断信号,这在工业控制和实时系统中非常有用。
在程序设计过程中,涉及的关键寄存器包括TMRO、OPTION(选择寄存器)和INTCON(中断控制寄存器)。TMRO用于定时和计数,通过Option寄存器可以配置预分频器,以调整定时精度。Option寄存器的D0、D1和D2位被设置为111,以达到最大预分频值,从而提供较长的定时时间。INTCON则负责中断的触发和控制,包括清除溢出标志位和设置中断允许状态。
以下是具体的步骤:
1. 初始化TMRO:设置计数器为0,确保计数过程从0开始。同时,设置预分频器参数以匹配所需的定时精度。
2. 初始化OPTION寄存器:清零Option寄存器,然后设置特定的D0、D1和D2位以配置预分频器。这一步非常重要,因为它直接影响到定时器的工作模式。
3. 初始化INTCON寄存器:通过BCF(位清除)操作,将INTCON的第2位清零,可能会影响其他中断源。同时,通过BSF(位设置)操作,将第5位和第7位置1,以便于处理TMRO溢出中断。
以下是一个简化的PIC16F84定时中断源程序示例:
```asm
; PIC16F84中断程序清单
LISTP = PIC16F84
#include "config.h" ; 引入芯片配置文件
; TMRO初始化
MOVLW 0x00 ; TMRO计数器清零
MOVWF TMRO
; OPTION寄存器初始化
MOVLW 0x00 ; 清除Option寄存器
MOVWF OPTION
MOVLW 0b11101111 ; 设置预分频器参数
MOVWF OPTION
; INTCON寄存器初始化
BCF INTCON, 2 ; 清除溢出标志
BSF INTCON, 5 ; 允许TMRO中断
BSF INTCON, 7 ; 设置中断允许
; 主程序入口
MAIN:
; 循环代码
goto MAIN
; TMRO溢出中断服务子程序
TMRO_OVF_vect:
; 在这里处理TMRO溢出事件
; 可能的处理包括计数重置、延时结束或其他任务
RETI
```
理解并掌握这些步骤后,用户可以根据实际需求调整参数,编写出满足特定应用的中断和定时程序。编写中断程序时,正确设置寄存器和理解它们的功能是关键,这样才能充分发挥PIC16F84TMRO定时器的优势。
2022-09-20 上传
2022-09-23 上传
2016-08-03 上传
2021-04-09 上传
2018-04-12 上传
2009-08-10 上传
2021-01-19 上传
2019-09-05 上传
wjmqing
- 粉丝: 0
- 资源: 3
最新资源
- Kalman-Filter SOC Estimation for LiPB HEV Cells
- Proteus教程Proteus教程之入门.pdf
- Proteus教程 第一章 基本操作.pdf
- Java连接数据库大全
- Qt嵌入式图形开发(入门篇).pdf
- 绝对有用,JSP登录验证功能的实现
- C++ 百问百答 C++习题集
- Java/J2EE笔试+面试成功宝典
- 关于c语言的学习经验
- ext2.0核心中文帮助文档
- Oracle语句优化53个规则详解Oracle语句优化53个规则详解
- SQLPLUS命令的使用大全
- 软件测试题目汇总软件测试题目汇总
- java知识学习网站
- struts2权威指南(李刚)--基于webwork核心的mvc开发
- 算法大全(C,C++)