Zerotemp:
temperature = temperature >> 1 'removing lowest bit
temperature1 = temperature
------------------------------------------why are you removing the lowest bit?

for counter=0 to 6 ' 2's compliment, starting to invert all the digits
if temperature.0[counter] = 1 then temperature.0[counter] =0
if temperature.0[counter] = 0 then temperature.0[counter] =1
next counter
------------------------------------this will never work....follow it thru
1. if temp.counter = 1 then set it to 0
2. if it's zero set it to 1.....it just got set to zero by the above line!!!!!
what you want is:

for counter = 0 to 6
if temperature.0[counter] = 1 then
temperature.0[counter] = 0
else
temperature.0[counter] = 1
endif

or just use this:
temperature = ~ temperature (bitwise inversion)



'temperature = temperature + 1 ' 2,s compliment ends by adding a one

'temperature = ((( temperature >> 1) *100)- 25) + (((count_per_c - count_remain) * 100) / count_per_c)
'tempc = (((temperature *9) / 5) + 3200)

lcdout $FE,1, "TempC: ", bin temperature1, ".", dec2 temperature," ",$DF,"C"
lcdout $FE,$C0, "TempF: ", bin temperature , ".", dec2 (tempF // 100)," ",$DF,"F"
goto loop

And you didn't change the temperature to doing the /5 first, and then the *9. If you leave it the way you've got it, you'll get an overflow when it gets really warm outside!