我正试图解决下面这两行代码的问题,我开始迷惑自己。有人能帮我填写哪些代码吗?为什么会这样?
假设PORTA上的引脚4和2连接到附加的输出设备(DevD)。填写第1-2行,以便将相应的引脚指定为输出。不要将端口上的任何其他引脚配置为输出。
.include “m128def.inc”
.def mpr = r16
START:
.org $0000
JMP INIT
.org $0004
RCALL ISR_DevA
RETI
.org $000C
RJMP ISR_DevB
NOP
.org $0010
RJMP ISR_DevC
INIT:
ldi mpr, 0b00110000
sts EICRA, mpr
ldi mpr, 0b11101000
out EICRB, mpr
ldi mpr, 10100010
out EIMSK, mpr
ldi mpr, $00
out DDRD, mpr
out DDRE, mpr
(1) ________________
(2) ________________
sei
...发布于 2021-02-14 03:11:33
您可以在AVR microController中将引脚指定为输出或输入,方法是将其写入名为DDRx (数据方向寄存器)的寄存器。
对于端口A中的每一个引脚,如果该引脚是作为输出或输入工作的(1平均输出,0平均输入),则在DDRA寄存器控制中有相应的位。
要使PORTA上的引脚4和2成为ouptut,您必须在相应的位中添加“1”,这意味着您必须在寄存器'DDRA‘中写入值0b00010100。
ldi r16, 0b00010100 ; put the value in r16 register
out DDRA, r16 ;write to the DDRA the value in r16 https://stackoverflow.com/questions/66190855
复制相似问题