[求助] 关于PIC端口B扫描问题

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

还有这个指令:comf  portb,w
这是在PIC官网下的AN552文件中看到,说是读取端口的指令,可PIC16F877A的DATASHEET里面介绍不是什么取反指令吗?

    AN552.pdf (2017-9-10 14:30 上传)

    96.16 KB, 下载次数: 5

回复评论 (6)

第三页
  • 20170910.png
点赞  2017-9-10 14:34
强烈向大家推荐一个好网站,[我要自学网],教程由在校老师录制,有办公会计、平面设计、室内设计、机械设计、网页编程、影视动画等教程.....让你足不出门,都可以体验学校的专业教育!
点赞  2017-9-10 17:38
PIC本身就是具有端口判断功能的
你的汇编也说明的这点:BTFSS PORTB,6(判断RB6端口为高电平否,是则跳过下一条指令)
另外C语言也可以:if(RB6) {...}     //如果RB6为H,则执行函数内容
                       if(!RB6){...}     //如果RB6为L,则执行函数内容
关于COMF PORTB,W
这条语句指的是将RB口的数据取反后存入W中,此时的RB口相关内容是不变的.
点赞  2017-9-11 15:13
引用: dingzy_2002 发表于 2017-9-11 15:13
PIC本身就是具有端口判断功能的
你的汇编也说明的这点:BTFSS PORTB,6(判断RB6端口为高电平否,是则跳过下一 ...

B口中断是不是一定要在SLEEP的前提下,如果前面没有SLEEP,设定RBIE后按下键后,B口会不会有中断使RBIF为1
点赞  2017-9-11 16:21
引用: windirection 发表于 2017-9-11 16:21
B口中断是不是一定要在SLEEP的前提下,如果前面没有SLEEP,设定RBIE后按下键后,B口会不会有中断使RBIF为 ...

B口的中断,只要中断使能(设置好的相关位后),就会立即工作,无论是否处于SLEEP状态.
点赞  2017-9-12 09:11
引用: dingzy_2002 发表于 2017-9-12 09:11
B口的中断,只要中断使能(设置好的相关位后),就会立即工作,无论是否处于SLEEP状态.

谢谢版主!
点赞  2017-9-12 12:38
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复