pic16f914 休眠后不能唤醒

[复制链接]
3865|1
 楼主| lcz01 发表于 2007-1-27 18:03 | 显示全部楼层 |阅读模式
下边是我的部分程序:<br />void&nbsp;init_io(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTA=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTB=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTC=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTD=0x0;<br />&nbsp;&nbsp;&nbsp;&nbsp;PORTE=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISA=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;CMCON0=0x07;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//off&nbsp;compare<br />&nbsp;&nbsp;&nbsp;&nbsp;ANSEL=0x40;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//RE1&nbsp;AS&nbsp;AD&nbsp;INPUT&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISB=0b01000000;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISC=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISD=0x0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//01110000&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISE=0;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;RBPU=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;WPUB=0x40;<br />&nbsp;&nbsp;&nbsp;&nbsp;IOCB6=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//RB6电平中断<br />&nbsp;&nbsp;&nbsp;&nbsp;RBIE=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;PEIE=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;GIE=1;<br />//&nbsp;&nbsp;&nbsp;&nbsp;RBIF=0;<br />}<br />void&nbsp;interrupt&nbsp;isr()&nbsp;<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;if((RBIE)&&(RBIF))<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=PORTB;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RBIF=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep_flag=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />void&nbsp;main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;char&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;init_io();<br />&nbsp;&nbsp;&nbsp;&nbsp;RD7=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;sleep_flag=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scankey();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(key==switchkey)fun_switch();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(sleep_flag==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RD7=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//背光<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RD3=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//音频板电源&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep_flag=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=RB6;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;asm(&quot;sleep&quot;);&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;init_io();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sleep_flag=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RD7=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RD3=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//音频板电源&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />各位帮我看看,问题到底出在哪里?
 楼主| lcz01 发表于 2007-1-28 10:37 | 显示全部楼层

有遇到问题了

我原来用作唤醒的按键是RB6与RD1交叉的,现在把RB6与地通过按键连接,是可以唤醒了,但是唤醒接着&nbsp;就休眠了,明白问题出在io口的电平不匹配,RBIF又被置一了,可是怎么消除这种现象呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

14

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部