I'm not familiar with that or any one-wire device beyond DS18B20 but it generally looks okay. Two examples from my DS1B20 test code ...
ReadSerialNumberOwIn:
OwOut C.0, %1001, ( READ_ROM )
OwIn C.0, %0000, ( b6, b7, b8, b9, b10, b11, b12, b13 )
Return
ReadTemperatureOwIn:
OwOut C.0, %1001, ( SKIP_ROM, TAKE_TEMP )
Pause 750
OwOut C.0, %1001, ( SKIP_ROM, READ_RESULT )
OwIn C.0, %0000, ( b0, b1 )
SerTxd( #w0, " ")
You could run the 'ReadSerialNumberOwIn:' code to see if it matches with what the 'ReadOwSn' command returns. I'd also recommend reading a whole set of data bytes first, getting fancy and adding DEBUG and other things which take time once you have that working. Maybe just read a single byte. Q : How do you know if it's returnng the right data, or if it isn't ?
But what's pin "7" on a 20X2 ? It's really advisable to use the proper port.pin identifier. It could simply be a case of using / connecting to wrong pin.