// Example 11b: A/D Converter -- Temperature sensor // Vout = 19.5 mV/C x Ta + 400 mV // Ta = val/4 - 20 deg C #include /* common defines and macros */ #include /* derivative information */ #pragma LINK_INFO DERIVATIVE "mc9s12dg256b" #include "main_asm.h" /* interface to the assembly module */ void main(void) { int val, Tc, Tf; char* q1; char* q2; q1 = " deg C"; q2 = " deg F"; PLL_init(); // set system clock frequency to 24 MHz ad0_enable(); // enable a/d converter 0 lcd_init(); // enable lcd while(1) { val = ad0conv(5); // read temp sensor on channel 5 val = val >> 2; // shift 2 bit right (divide by 4) Tc = val - 20; // degrees C Tf = Tc*9/5 +32; // degrees F set_lcd_addr(0x00); // display on 1st row of LCD write_int_lcd(Tc); // write value in field of 5 type_lcd(q1); // write deg C set_lcd_addr(0x40); // display on 2nd row of LCD write_int_lcd(Tf); // write value in field of 5 type_lcd(q2); // write deg F ms_delay(100); // delay 0.1 seconds } }