' 21-02-03 PCF8591 receiver ' 22-02-03 PCF8591 auto increment Clear Define OSC 4 ' Set Xtal Frequency Red_LED Var PortB.1 ' Assign the green LED to this pin Green_LED Var PortB.2 ' Assign the red LED to this pin SCL VAR PortB.0 ' I²C Clock SDA VAR PORTB.7 ' I²C Data ADIn VAR Byte[4] ChSelect VAR Byte ReceivWrite CON %10010000 'PCF8591 write addr. ReceivRead CON %10010001 'PCF8591 read addr. Pause 500 High Red_LED Pause 100 Low Red_LED High Green_LED Pause 100 Low Green_LED 'PIN mode with 4-bit 'Set LCD Data port DEFINE LCD_DREG PORTA 'Set starting Data bit (0 or 4) if 4-bit bus DEFINE LCD_DBIT 0 'Set REGISTER Select port DEFINE LCD_RSREG PORTB ' Set LCD Register Select bit DEFINE LCD_RSBIT 5 ' Set LCD Enable port DEFINE LCD_EREG PORTB ' Set LCD Enable bit DEFINE LCD_EBIT 6 ' Set LCD bus size (4 or 8 bits) DEFINE LCD_BITS 4 ' Set number of lines on LCD DEFINE LCD_LINES 2 @ bcf LCDinitFlag Symbol Cmd = $FE Symbol ClearLCD = 1 Symbol Home = 2 Symbol Line2 = $C0 Symbol CursorOff = $0C Symbol LineOn = $0E Symbol BlinkOn = $0F Symbol Left = $10 Symbol Right = $14 Symbol Procent = $25 Symbol ShiftLeft = $08 LCDOUT Cmd, ClearLCD, "Ch1 Ch2 Ch3 Ch4" Loop: I2CWRITE SDA,SCL,ReceivWrite,[4] ' auto increment select PCF8591, start ch0 I2CREAD SDA,SCL,ReceivRead,[ADIn[0],ADIn[0],ADIn[1],ADIn[2],ADIn[3]] LCDOUT Cmd, Line2, Dec3 ADIN[0] , " " , Dec3 ADIN[1] , " " , Dec3 ADIN[2] , " " , Dec3 ADIN[3] Pause 100 Goto Loop