' Name : ADCIN1934X.pbp ' Compiler : PICBASIC PRO Compiler 2.6 ' Assembler : MPASM ' Target PIC : 40-pin 16F1934 or similar ' Hardware : LAB-X1 Experimenter Board ' Oscillator : 4MHz external crystal ' Keywords : ADCIN, LCDOUT ' Description : PICBASIC PRO program to display result of ' 8-bit A/D conversion on LCD. Connect analog inputs to ' channels 0, 1, 3 (RA0, 1, 3). ' ' Define LCD registers and bits Define LCD_DREG PORTD Define LCD_DBIT 4 Define LCD_RSREG PORTE Define LCD_RSBIT 0 Define LCD_EREG PORTE Define LCD_EBIT 1 ' Define ADCIN parameters Define ADC_BITS 8 ' Set number of bits in result Define ADC_CLOCK 4 ' Set clock source Fosc/4 Define ADC_SAMPLEUS 50 ' Set sampling time in uS adval Var Byte ' Create adval to store result Gosub Init ' Hardware initialization routine mainloop: Lcdout $fe, 1 ' Clear the LCD Adcin 0, adval ' Read the first ADC channel Lcdout "0=", #adval ' Send it to the LCD Adcin 1, adval ' Read the second ADC channel Lcdout " 1=", #adval ' Send it to the LCD Adcin 3, adval ' Read the third ADC channel Lcdout " 3=", #adval ' Send it to the LCD Pause 200 ' Delay for time to read the display Goto mainloop ' Do it forever Init: ANSELA = 11 ' Set PortA 0, 1, 3 to analog POT inputs ANSELB = 0 ' portb all digital ANSELD = 0 ' portd all digital ANSELE = 0 ' porte all digital ADCON1 = %01000000 ' Left justify for 8-bit, Fosc/4, +Vref/-Vref = Vdd/gnd OPTION_REG.7 = 1 ' Disable PORTB pullups TRISD = 0 ' PORTD all outputs Pause 100 ' Wait for LCD to start Return End