从pic18f读取端口,然后执行某些操作

问题描述:

如何从PORTARA0,RA1)读取前2位然后使用它们? 我有一个开关连接到它们中的每一个,并且我想在RB1上输出1,当RA0,RA1都是1从pic18f读取端口,然后执行某些操作

我已经配置PORTA作为输入,并作为PORTB输出

MOVLW 0xF 
MOVWF TRISA,0 ;PORTA IN 

然后在一个循环中,我连续读取PORTA值和我要检查,如果两个最低比特在1。为此,我将PORTA0x03进行比较,将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个值。