Как активировать pin-код в ассемблере?

#assembly #avr #atmega

Вопрос:

Я хочу активировать 23-контактный разъем, чтобы зажечь светодиод

введите описание изображения здесь

 ; Reset Vector  rjmp Start   Start:   ldi r16, 0x00 ;Cargar el registro de trabajo 16 al valor 0  out DDRB, r16 ;Asignar al puerto B el valor del registro 16  ldi r16, 0xFF ;Carga el registro de trabajo 16, el valor FF  out DDRC, r16 ;Asignar al puerto C el valor del registro 16   Loop:  in r16, PINB ;Lee puerto B  out PORTC, r16 ;Escribe en puerto C lo leído  ldi PORTC, 1  rjmp Loop  

Комментарии:

1. Для какого чипа вы программируете?

2. На схеме написано ATmega328P.

Ответ №1:

Если вы хотите включить вывод PC0 (вывод 23), вам нужно установить бит #0 как DDRC в (который включает драйвер вывода на выводе), так и PORTC (который выбирает высокий уровень вывода). Вы можете либо использовать OUT команду для записи 8-битного значения в регистр ввода-вывода:

 ldi r16, 0x01 out PORTC, r16 out DDRC, r16  

или вы можете использовать sbi инструкцию для установки бита в одном из первых 32 регистров ввода-вывода:

 sbi PORTC, 0 sbi DDRC, 0