Obvious problems:
1) You've only written SW prior to writing Verilog, Verilog isn't SW it represents HW.
2) Don't use blocking '=' in a clocked always block (I know you used it because the shift wasn't working correctly).
3) It looks like you are using an higher speed clock to sample the lower speed signals data_rc, enable_rc, and cnt_clk. If so have you heard of metastability? If not you should read about it. In simulation things might look like they work, but in real life you may end up with intermittent failures.
4)
temp_data = temp_data << 1
you're missing the ; at the end
temp_data[0] = data_rc;
this follows the previous line and this won't synthesize correctly, due to the blocking assignment.
To create a shift register you should be writing the following code:
temp_data <= {temp_data[14:0], data_rc};
Other than that you need to run a simulation with a testbench to stimulated the design inputs. As you didn't supply the testbench and the code has syntax errors, I didn't attempt running it.
regards