Thank you for yor comments,
Joe: adding DEC statement caused the value in Terminal program incorrect , it spits more character
This is my code, please check if there is something wrong with fuses or defines
I use 18F2550, 10mhz xtal with hs pll ( 40mhz)
Code:ASM __CONFIG _CONFIG1L, _PLLDIV_10_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_1_1L __CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H __CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L & _VREGEN_OFF_2L __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_512_2H __CONFIG _CONFIG3H, _PBADEN_OFF_3H & _MCLRE_ON_3H & _CCP2MX_ON_3H __CONFIG _CONFIG4L, _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L ENDASM define OSC 40 DEFINE LCD_DREG PORTB ' LCD data port DEFINE LCD_DBIT 0 ' LCD data starting bit DEFINE LCD_RSREG PORTB ' LCD register select port DEFINE LCD_RSBIT 4 ' LCD register select bit DEFINE LCD_EREG PORTB ' LCD enable port DEFINE LCD_EBIT 5 ' LCD enable bit DEFINE LCD_BITS 4 ' LCD data bus size DEFINE LCD_LINES 2 ' Number lines on LCD DEFINE LCD_COMMANDUS 1500 ' Command delay time in us DEFINE LCD_DATAUS 44 ' Data delay time in us DEFINE ADC_BITS 8 ' ADC resolution 8 bit DEFINE ADC_CLOCK 3 ' DEFINE ADC_SAMPLEUS 50 define HSER_RCSTA 90H DEFINE HSER_TXSTA 20H DEFINE HSER_BAUD 9600 DEFINE HSER_SPBRG 25 DEFINE HSER_CLROERR 1 reading var byte clear porta = 0 portb = 0 portc = 0 TRISA = %00000001 ' Set PORTA to all input TRISB = %00000000 ' Set PORTB to all output TRISC = %00000000 ' Set PORTC.7 as input, other RC as output ADCON1 = %00001110 LCDOUT $FE, 1 pause 100 main: adcin 0,reading lcdout $Fe,1," Value " LCDOUT $FE, $C0, dec reading pause 50 hserout [reading ] pause 50 goto main




Bookmarks