我有一个使用PIC16F676的ADC(我很欣赏可能有更好的芯片,但设计目前仍然稳定)和MC9700A温度传感器。
目前它在PORT C上输出ADC值(我只使用6位)
movwf ADC_VALUE
rrf ADC_VALUE ; 4 x Divide (1.5Vref (AN1) & 1.5V IP (AN3) = all 6 bits on)
bcf STATUS,C ; Limits Digitiser Tag with MCP9700A -40C to +97C
movf ADC_VALUE,w
movwf PORTC ; Copy the ADC value to PORTC
我没有输出'raw'值而是想将它转换为C值。我知道temperature = (ADC_VALUE*5.0)/10.24
会在C中实现这一点但是asm中的等价物是什么(我宁愿坚持使用asm作为这个项目需要一段时间才能实现)?
最后,在输出端口C上的值之前,我想要“去掉”所有负温度值(-40C到-1C)并且只输出1C到97C。因为我只使用6个输出引脚,所以我很欣赏它最高可以达到63C,但这很好。
任何想法都赞赏。
此致 活性