在MPLAB下怎么调试中断,还请大侠帮我看下我的中断函数有什

[复制链接]
 楼主| yjypmypm 发表于 2008-1-11 00:05 | 显示全部楼层 |阅读模式
想用PIC单片机的RB&nbsp;口电平变化中断写一个4*4矩阵键盘,烧片后运行不了.又不知道怎么用SIM调试中断,请大侠帮忙.<br /><br /><br /><br /><br /><br /><br /><br /><br />extern&nbsp;uchar&nbsp;key;&nbsp;&nbsp;//外部的全局变量<br /><br />&nbsp;static&nbsp;uchar&nbsp;key_i;<br />&nbsp;static&nbsp;uint&nbsp;&nbsp;key_a=2000;<br /><br />void&nbsp;port_init()<br />{<br />&nbsp;&nbsp;ADCON1=0X07;&nbsp;&nbsp;&nbsp;//&nbsp;初始化I/O,使其工作在数字I/O状态<br />&nbsp;TRISA&nbsp;=&nbsp;0xFF;&nbsp;//ff;&nbsp;&nbsp;0&nbsp;out;&nbsp;1&nbsp;in<br /><br />//初始化RB口为电平变化中断<br />&nbsp;&nbsp;TRISB&nbsp;=&nbsp;0xF0;&nbsp;&nbsp;&nbsp;//设置为高4位输出..<br />&nbsp;&nbsp;RBPU=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//使用RB口弱上拉<br />&nbsp;&nbsp;PORTB=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//PORTB&nbsp;低4位输出0<br />&nbsp;&nbsp;INTCON=0;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;清除INTCON&nbsp;所有中断禁止;<br />&nbsp;&nbsp;RBIE=0&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//允许RB口电平变化中断;<br />&nbsp;&nbsp;<br /><br /><br />&nbsp;TRISC&nbsp;=&nbsp;0x3E;&nbsp;//fe&nbsp;&quot;0011&nbsp;1110&quot;<br />&nbsp;TRISD&nbsp;=&nbsp;0x00;&nbsp;<br />&nbsp;TRISE&nbsp;=&nbsp;0x01;&nbsp;//df;&nbsp;&nbsp;&nbsp;&quot;0000&nbsp;0001&quot;&nbsp;&nbsp;busy(输入)&nbsp;req(输出)<br />&nbsp;}&nbsp;&nbsp;<br /><br />void&nbsp;interrupt&nbsp;INTS(void)<br />{<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;if(RBIE&nbsp;&&&nbsp;RBIF)<br /><br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;RBIF=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清除RB口中断标志;<br />&nbsp;&nbsp;&nbsp;&nbsp;key=PORTB;&nbsp;&nbsp;&nbsp;//读一次RB口清除中断条件;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(key!=0xf0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while(key_a--);&nbsp;//有键按下消抖后再判断;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(key!=0xf0)<br />&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;&nbsp;PORTB=0x0e;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NOP();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(key_i=0;key_i&lt4;key_i++)<br />&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;if(&nbsp;(PORTB^0xff)!=0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{key=PORTB;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{CARRY=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTB=PORTB&lt&lt1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&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;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTB=0;&nbsp;&nbsp;&nbsp;&nbsp;//清除PORTB口为下次检测做准备<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORTB=PORTB;&nbsp;//再读读一次RB口清除中断条件;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br /><br />}<br />
xieyuanbin 发表于 2008-1-11 07:41 | 显示全部楼层

SIM是软件仿真,除了一台电脑外不需要任何硬件支持

楼主那个,需要用到软件仿真中的引脚激励,用异步激励就可以了。<br />如果用ICD2调试,在调试时除了用到RB6,RB7之外,PORTB口的其它PIN功能并不影响,所以还是可以调试电平变化中断的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

21

帖子

0

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

6

主题

21

帖子

0

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