关于PIC端口B扫描问题

2019-03-25 18:49发布

想问一下,PIC可不可以像51一样,直接去判断脚位的状态来扫描,比如用:        btfss        portb,6
这样的指令可以吗?还是一定用中断。

还有这个指令:comf  portb,w
这是在PIC官网下的AN552文件中看到,说是读取端口的指令,可PIC16F877A的DATASHEET里面介绍不是什么取反指令吗?
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
windirection
1楼-- · 2019-03-26 01:02
第三页
qxdzhidao
2楼-- · 2019-03-26 03:20
 精彩回答 2  元偷偷看……
dingzy_2002
3楼-- · 2019-03-26 05:01
PIC本身就是具有端口判断功能的
你的汇编也说明的这点:BTFSS PORTB,6(判断RB6端口为高电平否,是则跳过下一条指令)
另外C语言也可以:if(RB6) {...}     //如果RB6为H,则执行函数内容
                       if(!RB6){...}     //如果RB6为L,则执行函数内容
关于COMF PORTB,W
这条语句指的是将RB口的数据取反后存入W中,此时的RB口相关内容是不变的.
windirection
4楼-- · 2019-03-26 05:33
dingzy_2002 发表于 2017-9-11 15:13
PIC本身就是具有端口判断功能的
你的汇编也说明的这点:BTFSS PORTB,6(判断RB6端口为高电平否,是则跳过下一 ...

B口中断是不是一定要在SLEEP的前提下,如果前面没有SLEEP,设定RBIE后按下键后,B口会不会有中断使RBIF为1
dingzy_2002
5楼-- · 2019-03-26 09:56
windirection 发表于 2017-9-11 16:21
B口中断是不是一定要在SLEEP的前提下,如果前面没有SLEEP,设定RBIE后按下键后,B口会不会有中断使RBIF为 ...

B口的中断,只要中断使能(设置好的相关位后),就会立即工作,无论是否处于SLEEP状态.
windirection
6楼-- · 2019-03-26 14:21
dingzy_2002 发表于 2017-9-12 09:11
B口的中断,只要中断使能(设置好的相关位后),就会立即工作,无论是否处于SLEEP状态.

谢谢版主!

一周热门 更多>