From 6482aacbc3ab0116796ae06bde75793ab46dde7f Mon Sep 17 00:00:00 2001 From: Cokoino <37071399+Cokoino@users.noreply.github.com> Date: Fri, 2 Jul 2021 13:59:13 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20pxt.json,=20LCD1602=5F?= =?UTF-8?q?I2C.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LCD1602_I2C.ts | 30 +++++++++++++++++++++--------- pxt.json | 8 ++++++-- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/LCD1602_I2C.ts b/LCD1602_I2C.ts index cbbbfb5..35af2d6 100644 --- a/LCD1602_I2C.ts +++ b/LCD1602_I2C.ts @@ -1,5 +1,5 @@ /** -* makecode I2C LCD1602 package for microbit. +* makecode I2C LCD2004 package for microbit. * From microbit/micropython Chinese community. * http://www.micropython.org.cn */ @@ -103,8 +103,8 @@ namespace I2C_LCD1602 { */ //% blockId="I2C_LCD1620_SHOW_NUMBER" block="show number %n|at x %x|y %y" //% weight=90 blockGap=8 - //% x.min=0 x.max=15 - //% y.min=0 y.max=1 + //% x.min=0 x.max=19 + //% y.min=0 y.max=3 //% parts=LCD1602_I2C trackArgs=0 export function ShowNumber(n: number, x: number, y: number): void { let s = n.toString() @@ -119,21 +119,33 @@ namespace I2C_LCD1602 { */ //% blockId="I2C_LCD1620_SHOW_STRING" block="show string %s|at x %x|y %y" //% weight=90 blockGap=8 - //% x.min=0 x.max=15 - //% y.min=0 y.max=1 + //% x.min=0 x.max=19 + //% y.min=0 y.max=3 //% parts=LCD1602_I2C trackArgs=0 export function ShowString(s: string, x: number, y: number): void { let a: number - if (y > 0) + if (y == 0) + a = 0x80 + else if (y == 1) a = 0xC0 + else if (y == 2) + a = 0x94 else - a = 0x80 + a = 0xD4 a += x cmd(a) - for (let i = 0; i < s.length; i++) { - dat(s.charCodeAt(i)) + let ableLen = 20 - x; + if(ableLen >= s.length){ + for (let i = 0; i < s.length; i++) { + dat(s.charCodeAt(i)) + } + } + else{ + for (let i = 0; i < ableLen; i++) { + dat(s.charCodeAt(i)) + } } } diff --git a/pxt.json b/pxt.json index 3ea1e91..305c082 100644 --- a/pxt.json +++ b/pxt.json @@ -15,5 +15,9 @@ "testFiles": [ "test.ts" ], - "public": true -} \ No newline at end of file + "public": true, + "supportedTargets": [ + "microbit" + ], + "preferredEditor": "tsprj" +} From 1760bccfa5fa5dbea60b4198b861f386ec02901d Mon Sep 17 00:00:00 2001 From: Cokoino <37071399+Cokoino@users.noreply.github.com> Date: Fri, 2 Jul 2021 14:03:17 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20LCD1602=5FI2C.ts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LCD1602_I2C.ts | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/LCD1602_I2C.ts b/LCD1602_I2C.ts index 35af2d6..52af145 100644 --- a/LCD1602_I2C.ts +++ b/LCD1602_I2C.ts @@ -8,7 +8,7 @@ * Custom blocks */ //% weight=20 color=#0fbc11 icon="▀" -namespace I2C_LCD1602 { +namespace I2C_LCD2004 { let i2cAddr: number // 0x3F: PCF8574A, 0x27: PCF8574 let BK: number // backlight control let RS: number // command/data @@ -75,9 +75,9 @@ namespace I2C_LCD1602 { * initial LCD, set I2C address. Address is 39/63 for PCF8574/PCF8574A * @param Addr is i2c address for LCD, eg: 0, 39, 63. 0 is auto find address */ - //% blockId="I2C_LCD1620_SET_ADDRESS" block="LCD initialize with Address %addr" + //% blockId="I2C_LCD2004_SET_ADDRESS" block="LCD initialize with Address %addr" //% weight=100 blockGap=8 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function LcdInit(Addr: number) { if (Addr == 0) i2cAddr = AutoAddr() else i2cAddr = Addr @@ -101,11 +101,11 @@ namespace I2C_LCD1602 { * @param x is LCD column position, eg: 0 * @param y is LCD row position, eg: 0 */ - //% blockId="I2C_LCD1620_SHOW_NUMBER" block="show number %n|at x %x|y %y" + //% blockId="I2C_LCD2004_SHOW_NUMBER" block="show number %n|at x %x|y %y" //% weight=90 blockGap=8 //% x.min=0 x.max=19 //% y.min=0 y.max=3 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function ShowNumber(n: number, x: number, y: number): void { let s = n.toString() ShowString(s, x, y) @@ -117,11 +117,11 @@ namespace I2C_LCD1602 { * @param x is LCD column position, [0 - 15], eg: 0 * @param y is LCD row position, [0 - 1], eg: 0 */ - //% blockId="I2C_LCD1620_SHOW_STRING" block="show string %s|at x %x|y %y" + //% blockId="I2C_LCD2004_SHOW_STRING" block="show string %s|at x %x|y %y" //% weight=90 blockGap=8 //% x.min=0 x.max=19 //% y.min=0 y.max=3 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function ShowString(s: string, x: number, y: number): void { let a: number @@ -152,9 +152,9 @@ namespace I2C_LCD1602 { /** * turn on LCD */ - //% blockId="I2C_LCD1620_ON" block="turn on LCD" + //% blockId="I2C_LCD2004_ON" block="turn on LCD" //% weight=81 blockGap=8 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function on(): void { cmd(0x0C) } @@ -162,9 +162,9 @@ namespace I2C_LCD1602 { /** * turn off LCD */ - //% blockId="I2C_LCD1620_OFF" block="turn off LCD" + //% blockId="I2C_LCD2004_OFF" block="turn off LCD" //% weight=80 blockGap=8 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function off(): void { cmd(0x08) } @@ -172,9 +172,9 @@ namespace I2C_LCD1602 { /** * clear all display content */ - //% blockId="I2C_LCD1620_CLEAR" block="clear LCD" + //% blockId="I2C_LCD2004_CLEAR" block="clear LCD" //% weight=85 blockGap=8 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function clear(): void { cmd(0x01) } @@ -182,9 +182,9 @@ namespace I2C_LCD1602 { /** * turn on LCD backlight */ - //% blockId="I2C_LCD1620_BACKLIGHT_ON" block="turn on backlight" + //% blockId="I2C_LCD2004_BACKLIGHT_ON" block="turn on backlight" //% weight=71 blockGap=8 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function BacklightOn(): void { BK = 8 cmd(0) @@ -193,9 +193,9 @@ namespace I2C_LCD1602 { /** * turn off LCD backlight */ - //% blockId="I2C_LCD1620_BACKLIGHT_OFF" block="turn off backlight" + //% blockId="I2C_LCD2004_BACKLIGHT_OFF" block="turn off backlight" //% weight=70 blockGap=8 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function BacklightOff(): void { BK = 0 cmd(0) @@ -204,9 +204,9 @@ namespace I2C_LCD1602 { /** * shift left */ - //% blockId="I2C_LCD1620_SHL" block="Shift Left" + //% blockId="I2C_LCD2004_SHL" block="Shift Left" //% weight=61 blockGap=8 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function shl(): void { cmd(0x18) } @@ -214,9 +214,9 @@ namespace I2C_LCD1602 { /** * shift right */ - //% blockId="I2C_LCD1620_SHR" block="Shift Right" + //% blockId="I2C_LCD2004_SHR" block="Shift Right" //% weight=60 blockGap=8 - //% parts=LCD1602_I2C trackArgs=0 + //% parts=LCD2004_I2C trackArgs=0 export function shr(): void { cmd(0x1C) } From 1cbc1248684c4f54c0f513fa861e4a9d4704a16c Mon Sep 17 00:00:00 2001 From: Cokoino <37071399+Cokoino@users.noreply.github.com> Date: Fri, 2 Jul 2021 14:06:23 +0800 Subject: [PATCH 3/6] Update README.md --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 83948d9..bebf34d 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -# i2cLCD1602 +# i2cLCD2004 -makecode I2C LCD1602 package for micro:bit +makecode I2C LCD2004 package for micro:bit -Author: shaoziyang -Date: 2018.Mar +Author: jieliang Mo +Date: 2021.July ![](lcd.jpg) @@ -19,11 +19,11 @@ to search box then search. ``` let item = 0 -I2C_LCD1602.LcdInit(0) -I2C_LCD1602.ShowString("Hello", 0, 0) +I2C_LCD2004.LcdInit(0) +I2C_LCD2004.ShowString("Hello", 0, 0) basic.forever(() => { item += 1 - I2C_LCD1602.ShowNumber(item, 0, 1) + I2C_LCD2004.ShowNumber(item, 0, 1) basic.pause(1000) }) ``` From 784115c386b70c24d0538c8b01e8888cde870e5a Mon Sep 17 00:00:00 2001 From: Cokoino <37071399+Cokoino@users.noreply.github.com> Date: Fri, 2 Jul 2021 14:14:02 +0800 Subject: [PATCH 4/6] Rename LCD1602_I2C.ts to LCD2004_I2C.ts --- LCD1602_I2C.ts => LCD2004_I2C.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename LCD1602_I2C.ts => LCD2004_I2C.ts (99%) diff --git a/LCD1602_I2C.ts b/LCD2004_I2C.ts similarity index 99% rename from LCD1602_I2C.ts rename to LCD2004_I2C.ts index 52af145..501811e 100644 --- a/LCD1602_I2C.ts +++ b/LCD2004_I2C.ts @@ -220,4 +220,4 @@ namespace I2C_LCD2004 { export function shr(): void { cmd(0x1C) } -} \ No newline at end of file +} From 2239962bbf37def9b80fc7d4ab9590c87dca5848 Mon Sep 17 00:00:00 2001 From: Cokoino <37071399+Cokoino@users.noreply.github.com> Date: Fri, 2 Jul 2021 14:24:54 +0800 Subject: [PATCH 5/6] Update test.ts --- test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test.ts b/test.ts index b73c734..34c9a33 100644 --- a/test.ts +++ b/test.ts @@ -1,8 +1,8 @@ let item = 0 -I2C_LCD1602.LcdInit(0) -I2C_LCD1602.ShowString("Hello", 0, 0) +I2C_LCD2004.LcdInit(0) +I2C_LCD2004.ShowString("Hello", 0, 0) basic.forever(() => { item += 1 - I2C_LCD1602.ShowNumber(item, 0, 1) + I2C_LCD2004.ShowNumber(item, 0, 1) basic.pause(1000) }) From be5a5bc9ccdb181fdfdc2f31228d0d52251e014a Mon Sep 17 00:00:00 2001 From: Cokoino <37071399+Cokoino@users.noreply.github.com> Date: Fri, 2 Jul 2021 14:27:18 +0800 Subject: [PATCH 6/6] Rename LCD1602_I2C.svg to LCD2004_I2C.svg --- parts/{LCD1602_I2C.svg => LCD2004_I2C.svg} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename parts/{LCD1602_I2C.svg => LCD2004_I2C.svg} (99%) diff --git a/parts/LCD1602_I2C.svg b/parts/LCD2004_I2C.svg similarity index 99% rename from parts/LCD1602_I2C.svg rename to parts/LCD2004_I2C.svg index 6da8f3c..b0a5e67 100644 --- a/parts/LCD1602_I2C.svg +++ b/parts/LCD2004_I2C.svg @@ -200,4 +200,4 @@ - \ No newline at end of file +