MIPS和PIC32 LED闪烁延迟

时间:2017-03-10 17:40:41

标签: mips arduino-uno pic pic32

LA $t1, TRISE
LI $t2, 0x0000
SW $t2, 0($t1)

LA $t1, TRISD
LI $t2, 0xFFFF
SW $t2, 0($t1)

LI $t8, 0b0000000001

LA $t1, PORTE
LA $t2, PORTD

LI $t7, 0x2000

Loop:
SW $t8, 0($t1)
SLL $t8,$t8,1
JAL determinedelay
NOP
SW $t8, 0($t1)
SLL $t8,$t8,1
JAL determinedelay
NOP
SW $t8, 0($t1)
SLL $t8,$t8,1
JAL determinedelay
NOP
SW $t8, 0($t1)
SLL $t8,$t8,1
SW $t8, 0($t1)
SLL $t8,$t8,1
SW $t8, 0($t1)
SLL $t8,$t8,1
SW $t8, 0($t1)
SLL $t8,$t8,1
SW $t8, 0($t1)

SRL $t8,$t8,1
SW $t8, 0($t1)
SRL $t8,$t8,1
SW $t8, 0($t1)
SRL $t8,$t8,1
SW $t8, 0($t1)
SRL $t8,$t8,1
SW $t8, 0($t1)
SRL $t8,$t8,1
SW $t8, 0($t1)
SRL $t8,$t8,1
SW $t8, 0($t1)
SRL $t8,$t8,1
SW $t8, 0($t1)
SRL $t8,$t8,1
SW $t8, 0($t1)
JAL Loop
NOP  

determinedelay:
LI $t7, 0x2000
LW $t4,0($t2)
SRL $t4,$t4,8

mydelay:
ADDI $t7,$t7,-1
BGEZ $t7, mydelay
NOP
JR $ra
NOP

此代码应该打开LED,向左移动,打开另一个,向左移动,到达条带的最左端,向右重复相同的过程,依此类推环。

我相信我的部分代码能正确完成,但我遇到了延迟问题。最终,完全延迟将需要依赖于开关输入,但我目前只是试图让它以一致的设置延迟工作。

当我运行程序时,硬件上没有任何反应。

1 个答案:

答案 0 :(得分:0)

在您尝试跑步之前走路。编写代码以打开单个LED。

当你有这个工作时,写代码来打开和关闭LED。

当您正常工作时,请编写代码以打开和关闭条带中的所有LED。