{"id":1388,"date":"2026-03-12T08:36:06","date_gmt":"2026-03-12T00:36:06","guid":{"rendered":"https:\/\/www.640629.xyz\/?p=1388"},"modified":"2026-03-12T10:17:46","modified_gmt":"2026-03-12T02:17:46","slug":"i2c-lcd%e6%b6%b2%e6%99%b6%e9%a1%af%e7%a4%ba%e5%99%a8%e7%b0%a1%e4%bb%8b%e8%88%87%e6%87%89%e7%94%a8","status":"publish","type":"post","link":"https:\/\/www.640629.xyz\/?p=1388","title":{"rendered":"I2C LCD\u6db2\u6676\u986f\u793a\u5668\u7c21\u4ecb\u8207\u61c9\u7528"},"content":{"rendered":"\n<p>16&#215;2 LCD \u662f\u4e00\u7a2e\u5e38\u898b\u7684\u986f\u793a\u6a21\u7d44\uff0c\u5177\u6709 16 \u884c(column)\u548c 2 \u5217(row)\u7684\u986f\u793a\u5340\u57df\uff0c\u7e3d\u5171\u53ef\u4ee5\u986f\u793a 32 \u500b\u5b57\u5143\u3002I2C\uff08Inter-Integrated Circuit\uff09\u662f\u4e00\u7a2e\u4e32\u5217\u901a\u4fe1\u5354\u8b70\uff0c\u5229\u7528 SCL (CLK\u4fe1\u865f) \u548c SDA (Data\u4fe1\u865f) \u5169\u689d\u7dda\u4f86\u50b3\u8f38\u6578\u64da\u3002I2C 16&#215;2 LCD \u6a21\u7d44\u53ef\u4ee5\u986f\u793a\u6587\u5b57\u3001\u6578\u5b57\u6216\u5176\u4ed6\u7c21\u55ae\u7684\u5716\u5f62\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/img.640629.xyz\/i\/67c8e4ef799c0.png\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u57fa\u672c\u7bc4\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">#include &lt;LiquidCrystal_I2C.h&gt;      \/\/ \u5f15\u7528LiquidCrystal_I2C\u51fd\u5f0f\u5eab\nLiquidCrystal_I2C lcd(0x27,16,2);   \/\/ \u5efa\u7acbLiquidCrystal_I2C\u7269\u4ef6\uff0c\u540d\u7a31\u70balcd\n\nvoid setup() {\n  \/\/--------------------------------------------------------------\n  Serial.begin(9600);   \/\/ \u555f\u7528\u4e32\u5217\u57e0\u76e3\u770b\u8996\u7a97\n  \/\/--------------------------------------------------------------\n  lcd.init();           \/\/ \u521d\u59cb\u5316 lcd \n  lcd.backlight();      \/\/ \u958b\u555f\u80cc\u5149\n  \/\/--------------------------------------------------------------  \n}\n\nvoid loop() {\n  lcd.setCursor(0,0);           \/\/ \u5b9a\u4f4d\u5728(column 0, row 0)\n  lcd.print(\"Hello, world.\");   \/\/ \u5370\u51fa\u5167\u5bb9\n  lcd.setCursor(0,1);           \/\/ \u5b9a\u4f4d\u5728(column 0, row 1)\n  lcd.print(\"This a test.\");    \/\/ \u5370\u51fa\u5167\u5bb9\n  lcd.cursor();                 \/\/ \u986f\u793a\u6e38\u6a19  \n  lcd.blink();                  \/\/ \u6e38\u6a19\u9583\u720d\n  delay(3000);\n  lcd.clear();                  \/\/ \u6e05\u9664\n\n  lcd.setCursor(1,0);           \/\/ \u5b9a\u4f4d\u5728(column 2, row 0)\n  lcd.print(\"Here is row 0.\");  \/\/ \u5370\u51fa\u5167\u5bb9\n  lcd.setCursor(0,1);           \/\/ \u5b9a\u4f4d\u5728(column 2, row 1)\n  lcd.print(\"Here is row 1.\");  \/\/ \u5370\u51fa\u5167\u5bb9\n  lcd.noBlink();                \/\/ \u6e38\u6a19\u4e0d\u9583\u720d\n  delay(3000);\n  lcd.noCursor();               \/\/ \u96b1\u85cf\u6e38\u6a19\n  delay(3000);\n  lcd.clear();                  \/\/ \u6e05\u9664\n}<\/code><\/pre>\n\n\n\n<p>\u57282025\u5e7412\u670818\u65e5\u7684\u4f5c\u696d\u4e2d\uff0c\u82e5\u5c074\u4f4d\u5143\u4e03\u6bb5\u986f\u793a\u5668\u6539\u6210I2C LCD\u6a21\u7d44\uff0c\u53c3\u8003\u63a5\u7dda\u8207\u7a0b\u5f0f\u5982\u4e0b\uff1a<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/img.640629.xyz\/i\/2025\/01\/02\/6775f80d8967c.png\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\/\/-----------------------------------------------------------------------------\n#include &lt;OneButton.h&gt;         \/\/ \u5f15\u7528OneButton\u51fd\u5f0f\u5eab\n#define pb 34                  \/\/ \u5b9a\u7fa9\u6309\u9215\u5f15\u8173\nOneButton button(pb, true);    \/\/ \u5efa\u7acbOneButton\u7269\u4ef6\uff0c\u540d\u7a31\u70babutton\uff0c\u6309\u9215\u70ba\u4f4e\u614b\u52d5\u4f5c\n\/\/-----------------------------------------------------------------------------\n#include \"TM1637.h\"            \/\/ \u5f15\u7528TM1637\u51fd\u5f0f\u5eab\uff0c\u4e26\u5b9a\u7fa9TM1637\u63a5\u8173\n#define CLK 22                 \/\/ CLK\u70ba\u6642\u8108\u63a5\u8173\n#define DIO 23                 \/\/ DIO\u70ba\u8cc7\u6599\u63a5\u8173\nTM1637 tm1637(CLK, DIO);       \/\/ \u5275\u7acb\u4e00\u500bTM1637\u7269\u4ef6\uff0c\u540d\u7a31\u70batm1637\n\/\/-----------------------------------------------------------------------------\nint num[4] = {0, 0, 0, 0};     \/\/ 4\u4f4d\u6578\u5b57\u9663\u5217 {\u4edf\u4f4d,\u767e\u4f4d,\u5341\u4f4d,\u500b\u4f4d}\n\/\/-----------------------------------------------------------------------------\nbool startCount = 0;           \/\/ (0:\u505c\u6b62\uff0c1:\u958b\u59cb)\nint count = 9999;              \/\/ \u8a08\u6578\u5668\uff0c\u521d\u503c\u70ba0\n\/\/-----------------------------------------------------------------------------\nunsigned long previousMillis = 0;     \/\/ \u524d\u4e00\u6b21\u7684millis()\u6642\u9593\nconst long interval = 500;            \/\/ \u9810\u8a2d\u8a08\u6642\u7684\u6642\u9593\n\/\/-----------------------------------------------------------------------------\nint input = 0;\n\nvoid setup() {\n  \/\/--------------------------------------------------------------\n  Serial.begin(9600);  \/\/ \u555f\u7528\u4e32\u5217\u57e0\u76e3\u770b\u8996\u7a97\n  Serial.println(\"Please enter a number(0~9999):\");   \/\/ \u8f38\u5165\u63d0\u793a  \n  \/\/--------------------------------------------------------------\n  button.attachClick(singleClick);              \/\/ \u55ae\u64ca\n  button.attachDoubleClick(doubleClick);        \/\/ \u96d9\u64ca\n  button.attachLongPressStart(longPressStart);  \/\/ \u9577\u6309\u958b\u59cb\n  button.attachDuringLongPress(longPress);      \/\/ \u9577\u6309\u904e\u7a0b\u4e2d\n  button.attachLongPressStop(longPressStop);    \/\/ \u9577\u6309\u7d50\u675f\n  \/\/--------------------------------------------------------------\n  tm1637.init();               \/\/ \u521d\u59cb\u5316TM1637\n  tm1637.set(BRIGHT_TYPICAL);  \/\/ \u8a2d\u5b9a\u4eae\u5ea6\uff0c\u7bc4\u570d\u662f0\u52307\uff0c\u9810\u8a2d\u503c\u70ba2\n  \/\/--------------------------------------------------------------\n}\n\nvoid loop() {\n  \/\/----------------------------------------------------------\n  \/\/\u4e32\u5217\u57e0\u76e3\u770b\u8996\u7a97\u8f38\u5165\n  \/\/----------------------------------------------------------\n  if (Serial.available()) \/\/\u82e5\u4e32\u5217\u57e0\u6709\u8f38\u5165\u8cc7\u6599\uff0c\u5247\u57f7\u884c\u4e0b\u5217\u7a0b\u5f0f\u5340\u584a\n  {\n    input = readNumber();\n    if (input &gt;= 0 &amp;&amp; input &lt;= 9999)\n    {\n      count = input;\n    }\n    else\n    {\n      \/\/\u82e5\u8f38\u5165\u5b57\u4e32\u7121\u6548(\u5176\u4ed6)\n      Serial.println(\"Unknown range.\");\n      Serial.println(\"Please enter a number(0~9999):\");   \/\/ \u8f38\u5165\u63d0\u793a\n    }\n  } \n  \n  \/\/----------------------------------------------------------\n  unsigned long currentMillis = millis();\n\n  if (currentMillis - previousMillis &gt;= interval)\n  {\n    previousMillis = currentMillis;\n    \/\/----\u6bcf\u7d93\u904e\u4e00\u500binterval\u7684\u6642\u9593\uff0c\u60f3\u505a\u7684\u4e8b----\n    if(startCount == 1)\n    {\n      count--;\n      if (count==0)\n      {\n        startCount = 0;\n      }\n    }\n    \/\/--------------------------------------\n  }\n      \n  \/\/----------------------------------------------------------\n  button.tick(); \/\/ \u5b9a\u671f\u5075\u6e2c\u6309\u9215\u72c0\u614b\n  \/\/----------------------------------------------------------\n  \/\/ \u8a2d\u5b9a\u8207\u8f49\u63db\u4e03\u6bb5\u986f\u793a\u5668\u6bcf\u500b\u4f4d\u5143\u8981\u986f\u793a\u7684\u6578\u5b57\n  num[0] = count \/ 1000 % 10;   \/\/ \u5343\u4f4d\n  num[1] = count \/ 100 % 10;    \/\/ \u767e\u4f4d\n  num[2] = count \/ 10 % 10;     \/\/ \u5341\u4f4d\n  num[3] = count % 10;          \/\/ \u500b\u4f4d\n  tm1637.display(0, num[0]);    \/\/ \u986f\u793a\u7b2c\u4e00\u4f4d\n  tm1637.display(1, num[1]);    \/\/ \u986f\u793a\u7b2c\u4e8c\u4f4d\n  tm1637.display(2, num[2]);    \/\/ \u986f\u793a\u7b2c\u4e09\u4f4d\n  tm1637.display(3, num[3]);    \/\/ \u986f\u793a\u7b2c\u56db\u4f4d\n  \/\/----------------------------------------------------------\n}\n\n\/\/ \u55ae\u64ca\u8655\u7406\nvoid singleClick() {\n  Serial.println(\"Button Click.\");\n  startCount = !startCount;           \/\/ \u53d6\u53cd\u76f8\n}\n\n\/\/ \u96d9\u64ca\u8655\u7406\nvoid doubleClick() {\n  Serial.println(\"Button Double Click.\");\n}\n\n\/\/ \u9577\u6309\u958b\u59cb\nvoid longPressStart() {\n  Serial.println(\"Button Long Press Start.\");\n}\n\n\/\/ \u9577\u6309\u904e\u7a0b\u4e2d\nvoid longPress() {\n  Serial.println(\"Button Long Press ......\");\n}\n\n\/\/ \u9577\u6309\u7d50\u675f\nvoid longPressStop() {\n  Serial.println(\"Button Long Press Stop.\");\n  count = 1000;        \/\/ \u91cd\u7f6e\u8a08\u6578\u5668 \n  startCount = 0;  \n}\n\n\/\/ \u8b80\u53d6\u4e00\u500b\u6574\u6578\nint readNumber()\n{\n  while (!Serial.available());  \/\/ \u7b49\u5f85\u4e32\u5217\u57e0\u8f38\u5165\n  String input = Serial.readStringUntil('\\n');  \/\/\u8b80\u53d6\u4e00\u884c\u7684\u8f38\u5165\u8cc7\u6599\uff0c\u76f4\u5230\u63db\u884c\u7b26\u865f\u70ba\u6b62(\u6309\u4e0benter\u9375)\n  input.trim();                 \/\/\u53bb\u9664\u8f38\u5165\u5b57\u4e32\u524d\u5f8c\u7684\u7a7a\u767d\u5b57\u5143\n  Serial.println(input);        \/\/\u5370\u51fa\u8f38\u5165\u5b57\u4e32\n  return input.toInt();         \/\/\u8f49\u63db\u70ba\u6574\u6578\n}<\/code><\/pre>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" src=\"https:\/\/img.640629.xyz\/i\/67c8efbf639f5.png\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">\/\/---------------------------------------------------------------------------------\n#include &lt;OneButton.h&gt;              \/\/ \u5f15\u7528OneButton\u51fd\u5f0f\u5eab\n#define pb 34                       \/\/ \u5b9a\u7fa9\u6309\u9215\u5f15\u8173\nOneButton button(pb, true);         \/\/ \u5efa\u7acbOneButton\u7269\u4ef6\uff0c\u540d\u7a31\u70babutton\uff0c\u6309\u9215\u70ba\u4f4e\u614b\u52d5\u4f5c\n\/\/---------------------------------------------------------------------------------\n#include &lt;LiquidCrystal_I2C.h&gt;      \/\/ \u5f15\u7528LiquidCrystal_I2C\u51fd\u5f0f\u5eab\nLiquidCrystal_I2C lcd(0x27,16,2);   \/\/ \u5efa\u7acbLiquidCrystal_I2C\u7269\u4ef6\uff0c\u540d\u7a31\u70balcd\n\/\/---------------------------------------------------------------------------------\nint num[4] = {0, 0, 0, 0};          \/\/ 4\u4f4d\u6578\u5b57\u9663\u5217 {\u4edf\u4f4d,\u767e\u4f4d,\u5341\u4f4d,\u500b\u4f4d}\n\/\/---------------------------------------------------------------------------------\nbool startCount = 0;                \/\/ (0:\u505c\u6b62\uff0c1:\u958b\u59cb)\nint count = 9999;                   \/\/ \u8a08\u6578\u5668\uff0c\u521d\u503c\u70ba0\n\/\/---------------------------------------------------------------------------------\nunsigned long previousMillis = 0;   \/\/ \u524d\u4e00\u6b21\u7684millis()\u6642\u9593\nconst long interval = 500;          \/\/ \u9810\u8a2d\u8a08\u6642\u7684\u6642\u9593\n\/\/---------------------------------------------------------------------------------\nint input = 0;\n\nvoid setup() {\n  \/\/--------------------------------------------------------------\n  Serial.begin(9600);  \/\/ \u555f\u7528\u4e32\u5217\u57e0\u76e3\u770b\u8996\u7a97\n  Serial.println(\"Please enter a number(0~9999):\");   \/\/ \u8f38\u5165\u63d0\u793a  \n  \/\/--------------------------------------------------------------\n  button.attachClick(singleClick);              \/\/ \u55ae\u64ca\n  button.attachDoubleClick(doubleClick);        \/\/ \u96d9\u64ca\n  button.attachLongPressStart(longPressStart);  \/\/ \u9577\u6309\u958b\u59cb\n  button.attachDuringLongPress(longPress);      \/\/ \u9577\u6309\u904e\u7a0b\u4e2d\n  button.attachLongPressStop(longPressStop);    \/\/ \u9577\u6309\u7d50\u675f\n  \/\/--------------------------------------------------------------\n  lcd.init();           \/\/ \u521d\u59cb\u5316 lcd \n  lcd.backlight();      \/\/ \u958b\u555f\u80cc\u5149\n  \/\/--------------------------------------------------------------  \n}\n\nvoid loop() {\n  \/\/----------------------------------------------------------\n  \/\/\u4e32\u5217\u57e0\u76e3\u770b\u8996\u7a97\u8f38\u5165\n  \/\/----------------------------------------------------------\n  if (Serial.available()) \/\/\u82e5\u4e32\u5217\u57e0\u6709\u8f38\u5165\u8cc7\u6599\uff0c\u5247\u57f7\u884c\u4e0b\u5217\u7a0b\u5f0f\u5340\u584a\n  {\n    input = readNumber();\n    if (input &gt;= 0 &amp;&amp; input &lt;= 9999)\n    {\n      count = input;\n    }\n    else\n    {\n      \/\/\u82e5\u8f38\u5165\u5b57\u4e32\u7121\u6548(\u5176\u4ed6)\n      Serial.println(\"Unknown range.\");\n      Serial.println(\"Please enter a number(0~9999):\");   \/\/ \u8f38\u5165\u63d0\u793a\n    }\n  } \n  \n  \/\/----------------------------------------------------------\n  unsigned long currentMillis = millis();\n\n  if (currentMillis - previousMillis &gt;= interval)\n  {\n    previousMillis = currentMillis;\n    \/\/----\u6bcf\u7d93\u904e\u4e00\u500binterval\u7684\u6642\u9593\uff0c\u60f3\u505a\u7684\u4e8b----\n    if(startCount == 1)\n    {\n      count--;\n      if (count==0)\n      {\n        startCount = 0;\n      }\n    }\n    \/\/--------------------------------------\n  }\n      \n  \/\/----------------------------------------------------------\n  button.tick(); \/\/ \u5b9a\u671f\u5075\u6e2c\u6309\u9215\u72c0\u614b\n  \/\/----------------------------------------------------------\n  \/\/ \u8a2d\u5b9a\u8207\u8f49\u63db\u4e03\u6bb5\u986f\u793a\u5668\u6bcf\u500b\u4f4d\u5143\u8981\u986f\u793a\u7684\u6578\u5b57\n  num[0] = count \/ 1000 % 10;   \/\/ \u5343\u4f4d\n  num[1] = count \/ 100 % 10;    \/\/ \u767e\u4f4d\n  num[2] = count \/ 10 % 10;     \/\/ \u5341\u4f4d\n  num[3] = count % 10;          \/\/ \u500b\u4f4d\n  lcd.setCursor(0,0);\n  lcd.print(num[0]);            \/\/ \u986f\u793a\u7b2c\u4e00\u4f4d\n  lcd.setCursor(2,0);\n  lcd.print(num[1]);            \/\/ \u986f\u793a\u7b2c\u4e8c\u4f4d\n  lcd.setCursor(4,0);\n  lcd.print(num[2]);            \/\/ \u986f\u793a\u7b2c\u4e09\u4f4d\n  lcd.setCursor(6,0);\n  lcd.print(num[3]);            \/\/ \u986f\u793a\u7b2c\u56db\u4f4d\n  \/\/----------------------------------------------------------\n}\n\n\/\/ \u55ae\u64ca\u8655\u7406\nvoid singleClick() {\n  Serial.println(\"Button Click.\");\n  startCount = !startCount;     \/\/ \u53d6\u53cd\u76f8\n}\n\n\/\/ \u96d9\u64ca\u8655\u7406\nvoid doubleClick() {\n  Serial.println(\"Button Double Click.\");\n}\n\n\/\/ \u9577\u6309\u958b\u59cb\nvoid longPressStart() {\n  Serial.println(\"Button Long Press Start.\");\n}\n\n\/\/ \u9577\u6309\u904e\u7a0b\u4e2d\nvoid longPress() {\n  Serial.println(\"Button Long Press ......\");\n}\n\n\/\/ \u9577\u6309\u7d50\u675f\nvoid longPressStop() {\n  Serial.println(\"Button Long Press Stop.\");\n  count = 1000;                 \/\/ \u91cd\u7f6e\u8a08\u6578\u5668 \n  startCount = 0;      \n}\n\n\/\/ \u8b80\u53d6\u4e00\u500b\u6574\u6578\nint readNumber()\n{\n  while (!Serial.available());  \/\/ \u7b49\u5f85\u4e32\u5217\u57e0\u8f38\u5165\n  String input = Serial.readStringUntil('\\n');  \/\/\u8b80\u53d6\u4e00\u884c\u7684\u8f38\u5165\u8cc7\u6599\uff0c\u76f4\u5230\u63db\u884c\u7b26\u865f\u70ba\u6b62(\u6309\u4e0benter\u9375)\n  input.trim();                 \/\/\u53bb\u9664\u8f38\u5165\u5b57\u4e32\u524d\u5f8c\u7684\u7a7a\u767d\u5b57\u5143\n  Serial.println(input);        \/\/\u5370\u51fa\u8f38\u5165\u5b57\u4e32\n  return input.toInt();         \/\/\u8f49\u63db\u70ba\u6574\u6578\n}<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>\u4f5c\u696d\u7df4\u7fd2\uff1a\u8acb\u4f7f\u7528OneButton Library\u3001I2C LCD\u5b8c\u6210\u4e00\u500b\u8a08\u6642\u78bc\u8868\u529f\u80fd\u3002<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/img.640629.xyz\/i\/67c91857254ab.png\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/img.640629.xyz\/i\/67c91857cd342.png\" alt=\"\"\/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u958b\u6a5f\u5f8c\uff0cLCD\u986f\u793a\u5668\u986f\u793a\u8a08\u6642\u78bc\u8868\u7684\u521d\u59cb\u6642\u9593 00:00:00.00\u3002<\/li>\n\n\n\n<li>\u6bcf\u6309\u4e00\u4e0b\u6309\u9215\u958b\u95dc\uff0c\u53ef\u958b\u59cb\u6216\u505c\u6b62\u8a08\u6642\u78bc\u8868(\u6bcf\u767e\u5206\u4e4b\u4e00\u79d2\u52a01\uff0c\u76f4\u523023:59:59.99\u6b78\u96f6)\u3002<\/li>\n\n\n\n<li>\u9577\u6309\u6309\u9215\u958b\u95dc\uff0c\u8a08\u6578\u5668\u91cd\u7f6e\u70ba\u521d\u59cb\u6642\u9593\u3002<\/li>\n\n\n\n<li>\u4efb\u4f55\u904e\u7a0b\u4e2d\uff0c\u53ef\u4ee5\u900f\u904e\u76e3\u770b\u8996\u7a97\u6539\u8b8a\u8a08\u6642\u78bc\u8868\u7684\u6578\u503c\u3002<\/li>\n\n\n\n<li>\u8acb\u5728Wokwi\u7db2\u7ad9\u6a21\u64ec\u5f8c\uff0c\u4e26\u5b8c\u6210\u5be6\u9ad4\u63a5\u7dda\u3002<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>16&#215;2 LCD \u662f\u4e00\u7a2e\u5e38\u898b\u7684\u986f\u793a\u6a21\u7d44\uff0c\u5177\u6709 16 \u884c(column)\u548c 2 \u5217(row)\u7684\u986f\u793a\u5340\u57df<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-1388","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1388","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1388"}],"version-history":[{"count":16,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1388\/revisions"}],"predecessor-version":[{"id":2464,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1388\/revisions\/2464"}],"wp:attachment":[{"href":"https:\/\/www.640629.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1388"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1388"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1388"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}