extern char keyin_nowp;
extern char keyin_counter;
-#define _LOCATE(x,y) acm1602_locate_16x2(0xa0, x, y)
-#define _PUTCHAR(c) acm1602_putchar(0xa0, c)
-#define _CURSOR_LEFT() acm1602_cursordir(0xa0, 0x00)
-#define _CURSOR_RIGHT() acm1602_cursordir(0xa0, 0xff)
-#define _CLS() acm1602_cls(0xa0);
-#define _HOME() acm1602_home(0xa0);
+#define _LOCATE(x,y) acm1602_locate_16x2(LCD_I2CADDR, x, y)
+#define _PUTCHAR(c) acm1602_putchar(LCD_I2CADDR, c)
+#define _CURSOR_LEFT() acm1602_cursordir(LCD_I2CADDR, 0x00)
+#define _CURSOR_RIGHT() acm1602_cursordir(LCD_I2CADDR, 0xff)
+#define _CLS() acm1602_cls(LCD_I2CADDR);
+#define _HOME() acm1602_home(LCD_I2CADDR);
+#define _CURSOR_ON() acm1602_dispcursor(LCD_I2CADDR, 0xff)
+#define _CURSOR_OFF() acm1602_dispcursor(LCD_I2CADDR, 0x00)
+
extern void keyin_init(void);
extern unsigned char readkey(void);
extern unsigned char pollkeys(unsigned char *p, unsigned int limit, unsigned char repeat);
extern unsigned char pollkey_single(void);
+extern unsigned char pollkey_single_timeout(unsigned int limit, unsigned char repeat);
#ifdef __cplusplus
}