从pic18f读取端口,然后执行某些操作
问题描述:
如何从PORTA
(RA0
,RA1
)读取前2位然后使用它们? 我有一个开关连接到它们中的每一个,并且我想在RB1
上输出1
,当RA0
,RA1
都是1
。从pic18f读取端口,然后执行某些操作
我已经配置PORTA
作为输入,并作为PORTB
输出
MOVLW 0xF
MOVWF TRISA,0 ;PORTA IN
然后在一个循环中,我连续读取PORTA
值和我要检查,如果两个最低比特在1
。为此,我将PORTA
与0x03
进行比较,将PORTA
移至WREG。在地址0x02
我以前存储的值0x03
但它不工作
MOVF PORTA, 0, 0 ;W<--PORTA
CPFSLT 0x20, 0
MOVWF PORTB,0 ;PORTB<--W
,我不知道为什么。
非常感谢
答
PORTA比特0..3被配置为输入,但配置PORTB引脚为输出未示出。 I/O引脚是加电时的输入,因此您必须明确地输出它们。你说你正在连续循环,但在将W移动到PORTB以循环读取PORTA之后不显示分支指令。并且CPFSLT与0x20中的任何值进行比较,您已在0x02中存储了3个值。