' Name : CMP877A.pbp ' Compiler : PICBASIC PRO Compiler 2.6 ' Assembler : PM or MPASM ' Target PIC : 40-pin 16F877A ' Hardware : LAB-X1 Experimenter Board ' Oscillator : 4MHz external crystal ' Keywords : COMPARATORS, LCDOUT ' Description : PICBASIC PRO to demonstrate the setup and use of analog comparators. ' This program will not compile for the 16F877, as it has no comparators. You ' must use the 16F877A, or another PICmicro MCU with comparators. Inputs are ' analog voltages on RA0 and RA3. The program will compare the voltages and ' tell you which is greater. On the LAB-X1, POT1 and POT3 adjust the respective ' inputs. ' ' Define LCD connections 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 LOADER_USED 1 ' Required only for use with boot Loader C1OUT VAR CMCON.6 ' Alias C1OUT to output bit in CMCON register ADCON1 = 7 ' Make all PORTA and PORTE pins digital CMCON = 2 ' Set comparators to mode 010 (see datasheet) Low PORTE.2 ' Set LCD to write mode Pause 150 ' Pause to let LCD power up mainloop: IF C1OUT Then ' Check comparator output LCDOut $fe,1, "C1OUT = 1" ' Display if C1OUT = 1 LCDOut $fe,$C0, "PORTA.3 GREATER" Else LCDOut $fe,1, "C1OUT = 0" ' Display if C1OUT = 0 LCDOut $fe,$C0, "PORTA.0 GREATER" EndIF Pause 100 ' Pause 100mS to reduce LCD flicker GoTo mainloop ' Do it forever End