[color=Navy]#picaxe [/color][color=Black]28X2 [/color]
[color=Blue]SYMBOL mcp23017a [/color][color=DarkCyan]= [/color][color=Navy]%01000000 [/color][color=Green]; $0100 A2, A1, A0, R/W all connected to 0V[/color]
[color=Blue]SYMBOL mcp23017b [/color][color=DarkCyan]= [/color][color=Navy]%01000010[/color]
[color=Blue]SYMBOL mcp23017c [/color][color=DarkCyan]= [/color][color=Navy]%01000100[/color]
[color=Blue]SYMBOL mcp23017d [/color][color=DarkCyan]= [/color][color=Navy]%01001000[/color]
[color=Blue]SYMBOL mcp23017e [/color][color=DarkCyan]= [/color][color=Navy]%01000110[/color]
[color=Blue]SYMBOL mcp23017f [/color][color=DarkCyan]= [/color][color=Navy]%01001100[/color]
[color=Blue]SYMBOL IODIRA [/color][color=DarkCyan]= [/color][color=Navy]$00 [/color][color=Green]; Port A IO Direction register DEFAULT = I/P[/color]
[color=Blue]SYMBOL IODIRB [/color][color=DarkCyan]= [/color][color=Navy]$01 [/color][color=Green]; Port B IO Direction register DEFAULT = I/P[/color]
[color=Blue]SYMBOL IOCON [/color][color=DarkCyan]= [/color][color=Navy]$0A [/color][color=Green]; IO Expander config register - address $0B accesses the same register[/color]
[color=Blue]SYMBOL GPIOA [/color][color=DarkCyan]= [/color][color=Navy]$12 [/color][color=Green]; Port A General purpose register[/color]
[color=Blue]SYMBOL GPIOB [/color][color=DarkCyan]= [/color][color=Navy]$13 [/color][color=Green]; Port B General Purpose register[/color]
[color=Blue]SYMBOL OLATA [/color][color=DarkCyan]= [/color][color=Navy]$14 [/color][color=Green]; Port A latch register[/color]
[color=Blue]SYMBOL OLATB [/color][color=DarkCyan]= [/color][color=Navy]$15 [/color][color=Green]; Port B latch register
[/color][color=Blue]pause [/color][color=Navy]8000
[/color][color=Blue]HI2CSETUP i2cmaster[/color][color=Black], [/color][color=Blue]mcp23017a[/color][color=Black], [/color][color=Blue]i2cFAST[/color][color=Black], [/color][color=Blue]i2cbyte[/color]
[color=Green]' HI2CSETUP i2cmaster, mcp23017, i2cSLOW_16, i2cbyte
[/color][color=Blue]PAUSE [/color][color=Navy]400
[/color][color=Blue]HI2COUT IODIRA[/color][color=Black], [/color][color=Blue]([/color][color=Navy]$00[/color][color=Blue]) [/color][color=Green];set all port A pins as outputs
[/color][color=Blue]HI2COUT IODIRB[/color][color=Black], [/color][color=Blue]([/color][color=Navy]$00[/color][color=Blue]) [/color][color=Green];set all port B pins as outputs
[/color][color=Blue]pause [/color][color=Navy]100[/color]
[color=Black]main:
[/color][color=Blue]HI2CIN [PLAIN][[/PLAIN]mcp23017a[PLAIN]][/PLAIN][/color][color=Black], [/color][color=Blue]GPIOA[/color][color=Black],[/color][color=Blue]([/color][color=Purple]b0[/color][color=Blue]) [/color][color=Green]'
[/color][color=Blue]sertxd([/color][color=Black]#[/color][color=Purple]b0[/color][color=Blue])
HI2CIN GPIOB[/color][color=Black],[/color][color=Blue]([/color][color=Purple]b1[/color][color=Blue]) [/color][color=Green]'
[/color][color=Blue]sertxd([/color][color=Black]#[/color][color=Purple]b1[/color][color=Blue])
wait [/color][color=Navy]4
[/color][color=Green][PLAIN]; HI2CIN [mcp23017a], OLATB,(b12)[/PLAIN]
[/color][color=Blue]let [/color][color=Purple]b12 [/color][color=DarkCyan]= [/color][color=Navy]%00001000
[/color][color=Blue]HI2COUT [PLAIN][[/PLAIN]mcp23017a[PLAIN]][/PLAIN][/color][color=Black], [/color][color=Blue]OLATB[/color][color=Black],[/color][color=Blue]([/color][color=Purple]b12[/color][color=Blue])
wait [/color][color=Navy]4
[/color][color=Blue]let [/color][color=Purple]b12 [/color][color=DarkCyan]= [/color][color=Purple]b12 [/color][color=DarkCyan]- [/color][color=Navy]%00000001
[/color][color=Blue]HI2COUT [PLAIN][[/PLAIN]mcp23017a[PLAIN]][/PLAIN][/color][color=Black], [/color][color=Blue]OLATB[/color][color=Black], [/color][color=Blue]([/color][color=Purple]b12[/color][color=Blue])
goto [/color][color=Black]main [/color]