Страница 1 из 1

Работа с АЦП (assembler) Микроконтроллер PIC

Добавлено: Пт янв 27, 2017 16:20:36
moonk1n

Код: Выделить всё

movlw	b'11111111'
	movwf	TRISA			
	movlw	b'00000001'
	movwf	TRISB			
	clrf 	TRISD			
	bcf 	STATUS, RP0
Если добавить код

Код: Выделить всё

movf TRISA
movwf TRISD
между
clrf TRISD и bcf STATUS, RP0 , то что изменится и почему?
Микроконтроллер PIC

Re: Работа с АЦП (assembler) Микроконтроллер PIC

Добавлено: Пт янв 27, 2017 16:45:58
Родэрик
во-первых, movf trisa, куда копируешь, в W или F ?
Если в W, то в clrf trisd не будет смысла, поскольку тут же после очистки, в trisd ты пересылаешь FF (судя по самой первой строчке), настраивая все его ноги на вход.
если надо и trisa, и trisd настроить на вход, то пиши:
movlw FFh
movwf trisa
movwf trisd

Re: Работа с АЦП (assembler) Микроконтроллер PIC

Добавлено: Пт янв 27, 2017 16:49:11
moonk1n
Родэрик писал(а):во-первых, movf trisa, куда копируешь, в W или F ?
Если в W, то в clrf trisd не будет смысла, поскольку тут же после очистки, в trisd ты пересылаешь FF (судя по самой первой строчке), настраивая все его ноги на вход.
если надо и trisa, и trisd настроить на вход, то пиши:
movlw FFh
movwf trisa
movwf trisd
Я это понимаю, вопрос все же остался тот же, можете объяснить,что изменится и почему? Мы ведь вставляем movf TRISA и movwf TRISD после clrf trisd.

Re: Работа с АЦП (assembler) Микроконтроллер PIC

Добавлено: Пт янв 27, 2017 17:04:16
Родэрик
Мой вопрос тоже остался: Куда копируешь trisa?
Если в W, то после вставки trisd настроится на вход.
Если в F, то после вставки trisd будет равен trisb.

Всё это конечно справедливо, если всё это время ты работаешь в первом банке.

Re: Работа с АЦП (assembler) Микроконтроллер PIC

Добавлено: Вс янв 29, 2017 23:23:53
sbhidden
Начнем с того :
moonk1n писал(а):

Код: Выделить всё

Микроконтроллер PIC[/quote]
КАКОЙ!

потом будем дальше обсуждать!
по умолчанию (если не указано) - то копируется в регистр
хотя, возможно, не у всех PIC-ов.
у большинства PICов TRIS - регистры находятся в одном банке, который тоже еще надо "выбрать", как Родэрик и написал.
У некоторых пиков есть еще коварные регистры ANSEL ANCON ADCON, про которые новички часто забывают, но...
начнем с используемого PIC-а.

Re: Работа с АЦП (assembler) Микроконтроллер PIC

Добавлено: Пн янв 30, 2017 07:30:04
moonk1n
sbhidden писал(а):Начнем с того :
moonk1n писал(а):

Код: Выделить всё

Микроконтроллер PIC[/quote]
КАКОЙ!

потом будем дальше обсуждать!
по умолчанию (если не указано) - то копируется в регистр
хотя, возможно, не у всех PIC-ов.
у большинства PICов TRIS - регистры находятся в одном банке, который тоже еще надо "выбрать", как Родэрик и написал.
У некоторых пиков есть еще коварные регистры ANSEL ANCON ADCON, про которые новички часто забывают, но...
начнем с используемого PIC-а.[/quote]
PIC16F877A

Re: Работа с АЦП (assembler) Микроконтроллер PIC

Добавлено: Пн янв 30, 2017 17:31:15
Zhuk72
Вам бы для начала с командами разобраться.
У вас явно ощущается непонимание.

Re: Работа с АЦП (assembler) Микроконтроллер PIC

Добавлено: Пн янв 30, 2017 20:54:58
al.kame
moonk1n писал(а):

Код: Выделить всё

movlw	b'11111111'
	movwf	TRISA			
	movlw	b'00000001'
	movwf	TRISB			
	clrf 	TRISD			
	bcf 	STATUS, RP0
Если добавить код

Код: Выделить всё

movf TRISA
movwf TRISD
между
clrf TRISD и bcf STATUS, RP0 , то что изменится и почему?
Микроконтроллер PIC
В код movf TRISA компилятор попросит вписать получателя, следовательно:
- ВАРИАНТ 1

Код: Выделить всё

movf TRISA,W   ; из TRISA закидываем в W значение b'11111111' 
movwf TRISD   ; из W закидываем в TRISD значение b'11111111' 
И всё предыдущее можно упростить так:

Код: Выделить всё

movlw	b'11111111'
	movwf	TRISA
	movwf	TRISD	
	movlw	b'00000001'
	movwf	TRISB					
	bcf 	STATUS, RP0
- ВАРИАНТ 2

Код: Выделить всё

movf TRISA,F   ; проверка TRISA на Zero, бессмысленно - там уже b'11111111'
movwf TRISD   ; из W закидываем в TRISD значение b'00000001'
А предыдущее можно упростить так:

Код: Выделить всё

movlw	b'11111111'
	movwf	TRISA
	movlw	b'00000001'
	movwf	TRISB					
	movwf	TRISD	
	bcf 	STATUS, RP0
Что Вы хотите в итоге - решать Вам :)