登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

请教各位大虾PIC16C72A怎么不执行中断服务程序

作者:linefw 栏目:单片机
请教各位大虾PIC16C72A怎么不执行中断服务程序
我的一个程序中 用Timer1定时中断 在程序中寄存器:TMR1L TMR1H PIE INTCON TICON 的各相关参数都设置好了
在MPLAB IDE 环境下 软件仿真时 TMR1L TMR1H 的数能递增累加 溢出时也会把PIR1的TMR1IF置位 但就是没执行中断服务程序 而中断服务程序也是在 ORG 0x04 开始的地方判断 PIR1 的TMRIF 是否为1 然后执行中断服务程序的
而更奇怪的是 在国产WAVE 仿真器所配的软件环境中 用软件仿真时 连TMR1L TMR1H都不工作 没有累加记数!! 奇怪了
请教各位大虾 这是怎么回事 谢谢!

2楼: >>参与讨论
xieyuanbin
软件仿真还是用MPLAB。
看看中档手册,可能是有个中断使能没开,或者计数时钟源没选择好。
我想你应该是INTCON,PEIE没有开。

3楼: >>参与讨论
linefw
INTCON PEIE 相应位打开了的
我用一个非常小的程序来测试  只涉及TIME1中断
INTCON 的 GIE 置1   PIE1的TMR1IE 置1
晶振是4MHZ TICON 的值是 B'00110101' 预分频 是1:8
结果情况还是如此

4楼: >>参与讨论
jimocao_80
看看你的是不是设置成了计数模式!
 
5楼: >>参与讨论
linefw
T1CON 是 B'00110101' 怎么会是计数模式嘛
 
6楼: >>参与讨论
xxdcq
不是pie是pie1
banksel TMR1L
movlw    0a0
movwf    TMR1L            ;80ms
movlw    15
movwf    TMR1H
movlw    B'00110001'
;t1定时器工作方式,预分频器为1:8,关闭t1振荡器,打开t1
movwf    T1CON
bcf    PIR1,TMR1IF        ;清定时器1中断标志
banksel    PIE1         ;pie1在另一页,要赋值先要换页
bsf    PIE1,TMR1IE        ;允许定时器1中断
banksel    INTCON
bsf    INTCON,GIE        ;允许所有中断

7楼: >>参与讨论
xieyuanbin
16C72的数据手册第68页
INTCON中除GIE要置1外,PEIE(INTCON,6)也要置1.
数据手册在每个功能模块详细介绍之后都有一个所用到的寄存器的小结,里面集中了所有用到的关联寄存器及其相关位。如遇到这样的问题可去看一下什么地方没设置好。

8楼: >>参与讨论
linefw
谢谢大侠
我想过 PEIE 位,但觉得它是外围接口的中断使能位,与TIME1的中断没什么联系吧,所以就没有管它。结果把PEIE置1就行了,怎么回这样呢? 不好意思,I am a 初学者。

参与讨论
昵称:
讨论内容:
 
 
相关帖子
为什么我的AD转换有时对,有时错呢?请教martin等高人
请同行赐教,多谢了!
请xieyuanbing帮忙来了……
在线等
供应上海,南京,山东,安徽及周边地区PCB电路板
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号