What you have would work, however the sprite size is 16*16 for width and height, also the sprite never loads because @HOMESCREEN is an infinite loop. And RETURN won't ever be called, let alone it won't work because it must be paired with GOSUB. Lastly, you are scaling the sprite to be 20 times it's original size, making it take 320 pixels on the screen, but Y only goes from 0 to 240.
Try this:
ACLS
SPSET 0,176,184,16,16
SPSCALE 0,1-15,1-15'you don't need this if you want a normal sized sprite
BGMVOL 50:BGMPLAY 5'unless you want it to play over and over, leave it out of the loop
@HOMESCREEN
B=BUTTON()'your button function won't do anything if it isn't called repetitively
WAIT 1:GOTO @HOMESCREEN
You can also use VSYNC instead of WAIT, they both work however there are slight differences in how VSYNC works. Also the delay is 1 so that most, if not all, button presses, will be detected by the BUTTON command. It will update the home screen regularly too. (60 times per second)