2014-10-08 4 views
-1

Как я могу прочитать первые 2 бита от PORTA (RA0, RA1), а затем с ними работать? У меня есть переключатель, подключенный к каждому из них, и я хочу вывести 1 на RB1, когда оба RA0, RA1: 1.Чтение портов из pic18f, затем сделать что-то

Я устанавливал PORTA в качестве входных данных и PORTB в качестве выходного сигнала

MOVLW 0xF 
MOVWF TRISA,0 ;PORTA IN 

И затем в цикле, я считаны непрерывно PORTA значения, и я хочу, чтобы проверить, если две нижние биты в 1. Для этого я сравниваю значение PORTA с 0x03 после перемещения PORTA в WREG.

MOVF PORTA, 0, 0 ;W<--PORTA 
CPFSLT 0x20, 0 
MOVWF PORTB,0 ;PORTB<--W 

В адрес 0x02 я ранее сохраненное значение 0x03

Но это не работает, я не знаю, почему.

Большое спасибо

ответ

0

ПОРТА биты 0..3 конфигурируются как входы, но настройка PORTB булавки в качестве выходов не показан. Штыри ввода-вывода являются входами при включении питания, поэтому вы должны явно их выводить. Вы говорите, что вы непрерывно зацикливаете, но не показываете инструкцию перехода после перемещения W в PORTB, чтобы вернуться к чтению PORTA. И CPFSLT сравнивается с тем, что находится в 0x20, вы сохранили 3 в 0x02.