{"id":1114,"date":"2025-11-20T09:36:59","date_gmt":"2025-11-20T01:36:59","guid":{"rendered":"https:\/\/www.640629.xyz\/?p=1114"},"modified":"2025-11-20T11:54:40","modified_gmt":"2025-11-20T03:54:40","slug":"%e4%b8%83%e6%ae%b5%e9%a1%af%e7%a4%ba%e5%99%a8%e9%80%b2%e9%9a%8e%e6%8e%a7%e5%88%b6","status":"publish","type":"post","link":"https:\/\/www.640629.xyz\/?p=1114","title":{"rendered":"\u4e03\u6bb5\u986f\u793a\u5668\u9032\u968e\u63a7\u5236"},"content":{"rendered":"\n<p>\u300a bitRead() \u4f7f\u7528\u8aaa\u660e \u300b<\/p>\n\n\n\n<p>bitRead(x, n)<br>    x \uff1a\u8981\u8b80\u53d6\u7684\u6578\u5b57\uff0c\u5982\u679c\u8f38\u5165\u662f10\u9032\u4f4d\u621616\u9032\u4f4d\uff0c\u6703\u81ea\u52d5\u8f49\u62102\u9032\u4f4d<br>    n \uff1a\u8981\u8b80\u53d6\u7684\u5b57\u5143\uff0c0 \u4ee3\u8868\u6700\u53f3\u908a\u7684\u5b57\u5143<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">void setup() {\n  \/\/ \u4f8b\uff1a\u4e03\u6bb5\u986f\u793a\u5668\u6b32\u986f\u793a2\uff0c\u63a7\u5236\u78bc\u70ba 0101 1011(2\u9032\u5236\u78bc) \u2013&gt; 0x5B(16\u9032\u5236\u78bc)\n  \/\/    (dp) g f e d c b a\n  \/\/ x =  0  1 0 1 1 0 1 1 (0x5B)\n  int x = 0x5B;\n  Serial.begin(9600);\n  Serial.println(bitRead (x,0));    \/\/ bitRead (x,0) = 1 \u2014&gt; a\n  Serial.println(bitRead (x,1));    \/\/ bitRead (x,1) = 1 \u2014&gt; b\n  Serial.println(bitRead (x,2));    \/\/ bitRead (x,2) = 0 \u2014&gt; c\n  Serial.println(bitRead (x,3));    \/\/ bitRead (x,3) = 1 \u2014&gt; d\n  Serial.println(bitRead (x,4));    \/\/ bitRead (x,4) = 1 \u2014&gt; e\n  Serial.println(bitRead (x,5));    \/\/ bitRead (x,5) = 0 \u2014&gt; f\n  Serial.println(bitRead (x,6));    \/\/ bitRead (x,6) = 1 \u2014&gt; g\n  Serial.println(bitRead (x,7));    \/\/ bitRead (x,7) = 0 \u2014&gt; dp\n}\n\nvoid loop() {\n}<\/code><\/pre>\n\n\n\n<p>\u539f\u57fa\u672c\u63a7\u5236\u7684\u7a0b\u5f0f\u78bc\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">int seg[8] = {15, 16, 17, 18, 19, 21, 22, 23};\n\/\/ \u5c0d\u61c9\u7684\u63a5\u8173 { a,  b,  c,  d,  e,  f,  g, dp}\n\nvoid setup() {\n  for(int i=0; i&lt;=7; i++)\n  {\n    pinMode(seg[i], OUTPUT);\n  }\n}\n\nvoid loop() {\n  \/\/ (dp)gfedcba\n  \/\/ \u986f\u793a0\uff1a 0011 1111(2\u9032\u5236\u78bc) --&gt; 0x3F(16\u9032\u5236\u78bc)\n  digitalWrite(seg[0],1); \/\/ a\n  digitalWrite(seg[1],1); \/\/ b\n  digitalWrite(seg[2],1); \/\/ c\n  digitalWrite(seg[3],1); \/\/ d\n  digitalWrite(seg[4],1); \/\/ e\n  digitalWrite(seg[5],1); \/\/ f\n  digitalWrite(seg[6],0); \/\/ g\n  digitalWrite(seg[7],0); \/\/ dp\n  delay(1000);\n  \/\/ \u986f\u793a1\uff1a 0000 0110(2\u9032\u5236\u78bc) --&gt; 0x06(16\u9032\u5236\u78bc)\n  digitalWrite(seg[0],0); \/\/ a\n  digitalWrite(seg[1],1); \/\/ b\n  digitalWrite(seg[2],1); \/\/ c\n  digitalWrite(seg[3],0); \/\/ d\n  digitalWrite(seg[4],0); \/\/ e\n  digitalWrite(seg[5],0); \/\/ f\n  digitalWrite(seg[6],0); \/\/ g\n  digitalWrite(seg[7],0); \/\/ dp\n  delay(1000);\n}<\/code><\/pre>\n\n\n\n<p>\u53ef\u4f7f\u7528bitRead\u51fd\u5f0f\u6539\u5beb\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">int seg[8] = {15, 16, 17, 18, 19, 21, 22, 23};\n\/\/ \u5c0d\u61c9\u7684\u63a5\u8173 { a,  b,  c,  d,  e,  f,  g, dp}\nint data[]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x67,0x00};\n\/\/ \u986f\u793a\u7684\u6578\u5b57{ 0  ,  1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,  9 ,\u5168\u6ec5}\n\nvoid setup() {\n  \/\/ \u521d\u59cb\u5316\u4e03\u6bb5\u986f\u793a\u5668\n  for(int i=0; i&lt;=7; i++)\n  {\n    pinMode(seg[i], OUTPUT);\n  }\n}\n\nvoid loop() {\n  \/\/ (dp)gfedcba\n  \/\/ \u986f\u793a0\uff1a 0011 1111(2\u9032\u5236\u78bc) --&gt; 0x3F(16\u9032\u5236\u78bc)\n  digitalWrite(seg[0],bitRead(data[0],0));  \/\/ a\n  digitalWrite(seg[1],bitRead(data[0],1));  \/\/ b\n  digitalWrite(seg[2],bitRead(data[0],2));  \/\/ c\n  digitalWrite(seg[3],bitRead(data[0],3));  \/\/ d\n  digitalWrite(seg[4],bitRead(data[0],4));  \/\/ e\n  digitalWrite(seg[5],bitRead(data[0],5));  \/\/ f\n  digitalWrite(seg[6],bitRead(data[0],6));  \/\/ g\n  delay(1000);\n\n  \/\/ \u986f\u793a1\uff1a 0000 0110(2\u9032\u5236\u78bc) --&gt; 0x06(16\u9032\u5236\u78bc)\n  digitalWrite(seg[0],bitRead(data[1],0));  \/\/ a\n  digitalWrite(seg[1],bitRead(data[1],1));  \/\/ b\n  digitalWrite(seg[2],bitRead(data[1],2));  \/\/ c\n  digitalWrite(seg[3],bitRead(data[1],3));  \/\/ d\n  digitalWrite(seg[4],bitRead(data[1],4));  \/\/ e\n  digitalWrite(seg[5],bitRead(data[1],5));  \/\/ f\n  digitalWrite(seg[6],bitRead(data[1],6));  \/\/ g\n  delay(1000);\n}<\/code><\/pre>\n\n\n\n<p>\u9032\u4e00\u6b65\u53ef\u5c07\u8981\u986f\u793a\u7684\u6578\u5b57\u6539\u5beb\u6210\u526f\u7a0b\u5f0f\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">void showdata(int x)\n{\n  for(int i=0; i&lt;7; i++)\n  digitalWrite(seg[i],bitRead(data[x],i));\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp\">int seg[8] = {15, 16, 17, 18, 19, 21, 22, 23};\n\/\/ \u5c0d\u61c9\u7684\u63a5\u8173 { a,  b,  c,  d,  e,  f,  g, dp}\nint data[]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x67,0x00};\n\/\/ \u986f\u793a\u7684\u6578\u5b57{ 0  ,  1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,  9 ,\u5168\u6ec5}\n\nvoid setup() {\n  \/\/ \u521d\u59cb\u5316\u4e03\u6bb5\u986f\u793a\u5668\n  for(int i=0; i&lt;=7; i++)\n  {\n    pinMode(seg[i], OUTPUT);\n  }\n}\n\nvoid loop() {\n  showdata(0);  \/\/ \u986f\u793a0\n  delay(1000);\n\n  showdata(1);  \/\/ \u986f\u793a1\n  delay(1000);\n}\n\nvoid showdata(int x)\n{\n  for(int i=0; i&lt;7; i++)\n  digitalWrite(seg[i],bitRead(data[x],i));\n}<\/code><\/pre>\n\n\n\n<p>\u4f5c\u696d\u7df4\u7fd2\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u958b\u6a5f\u5f8c\uff0c\u4e03\u6bb5\u986f\u793a\u5668\u986f\u793a 8 \u548c dp (\u597d\u58de\u6e2c\u8a66)\uff0c1\u79d2\u5f8c\u986f\u793a0\u3002<\/li>\n\n\n\n<li>\u6bcf\u6309\u4e00\u4e0b\u6309\u9215\u958b\u95dc\uff0c\u53ef\u958b\u59cb\u6216\u505c\u6b62\u8a08\u6578(\u6bcf\u79d2\u52a01\uff0c\u57280~9\u4e4b\u9593\u5faa\u74b0)\u3002<\/li>\n\n\n\n<li>\u9577\u6309\u6309\u9215\u958b\u95dc\uff0c\u8a08\u6578\u5668\u6b78 0\u3002<\/li>\n\n\n\n<li>\u4e03\u6bb5\u986f\u793a\u5668\u7684\u72c0\u614b\u5fc5\u9808\u540c\u6b65\u986f\u793a\u5728\u76e3\u770b\u8996\u7a97\u4e0a\u3002<\/li>\n\n\n\n<li>\u5728Wokwi\u7db2\u7ad9\u4e0a\u9032\u884c\u6a21\u64ec\uff0c\u4e26\u5b8c\u6210\u5be6\u9ad4\u63a5\u7dda\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u53c3\u8003\u7bc4\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"cpp\" class=\"language-cpp line-numbers\">\/\/---------------------------------------------------------------------------\nconst int pb = 34;                   \/\/ \u6309\u9215\u958b\u95dc\u63a5\u8173\nbool lastButtonState = HIGH;         \/\/ \u6309\u9215\u958b\u95dc\u524d\u4e00\u6b21\u7684\u72c0\u614b\nunsigned long lastDebounceTime = 0;  \/\/ \u6309\u9215\u958b\u95dc\u524d\u4e00\u6b21\u72c0\u614b\u6539\u8b8a\u6642\u7684millis()\u6642\u9593\nint debounceDelay = 150;             \/\/ \u9632\u5f48\u8df3\u9810\u8a2d\u7684\u5ef6\u9072\u6642\u9593\n\/\/---------------------------------------------------------------------------\nint seg[8] = {15, 16, 17, 18, 19, 21, 22, 23};\n\/\/ \u5c0d\u61c9\u7684\u63a5\u8173 { a,  b,  c,  d,  e,  f,  g, dp}\nint data[]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x67,0x00};\n\/\/ \u986f\u793a\u7684\u6578\u5b57{ 0  ,  1 ,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,  9 ,\u5168\u6ec5}\n\/\/---------------------------------------------------------------------------\nbool startCount = 0;  \/\/ (0:\u505c\u6b62\uff0c1:\u958b\u59cb)\nint count = 0;        \/\/ \u8a08\u6578\u5668\uff0c\u521d\u503c\u70ba0\n\/\/---------------------------------------------------------------------------\nunsigned long previousMillis = 0;    \/\/ \u524d\u4e00\u6b21\u7684millis()\u6642\u9593\nconst long interval = 1000;          \/\/ \u9810\u8a2d\u8a08\u6642\u7684\u6642\u9593\n\/\/---------------------------------------------------------------------------\n\nvoid setup() {\n  \/\/--------------------------------------------------\n  Serial.begin(9600);     \/\/ \u555f\u7528\u4e32\u5217\u57e0\u76e3\u770b\u8996\u7a97\n  \/\/--------------------------------------------------\n  pinMode(pb, INPUT);     \/\/ \u521d\u59cb\u5316\u6309\u9215\u958b\u95dc\n  \/\/--------------------------------------------------\n  for(int i=0; i&lt;=7; i++) \/\/ \u521d\u59cb\u5316\u4e03\u6bb5\u986f\u793a\u5668\n  {\n    pinMode(seg[i], OUTPUT);\n  }\n  \/\/--------------------------------------------------  \n}\n\nvoid loop() {\n  \/\/ ---------------------------------------------------------------------------------------------------------------\n  unsigned long currentTime = millis();  \/\/ \u7576\u524d\u7684millis()\u6642\u9593\n  bool buttonState = digitalRead(pb);    \/\/ \u7576\u524d\u7684\u6309\u9215\u958b\u95dc\u72c0\u614b\uff1a\u672a\u6309\u4e0b(HIGH)\uff0c\u6309\u4e0b(LOW)\n\n  \/\/ \u82e5\u6309\u9215\u958b\u95dc\u72c0\u614b\u767c\u751f\u8b8a\u5316\uff0c\u4e14\u8d85\u904e\u9632\u5f48\u8df3\u9810\u8a2d\u7684\u5ef6\u9072\u6642\u9593\n  if ((buttonState != lastButtonState) &amp;&amp; (currentTime - lastDebounceTime) &gt; debounceDelay)\n  {\n    \/\/ --------------------------------------------------------------------------------------\n    if (lastButtonState == HIGH &amp;&amp; buttonState == LOW)        \/\/ \u82e5\u6309\u9215\u5f9e\u672a\u6309\u4e0b(HIGH)\u5230\u6309\u4e0b(LOW)\n    {\n      \/\/ \u6309\u9215\u6309\u4e0b\u6642\uff0c\u60f3\u505a\u7684\u4e8b\n      startCount = !startCount;           \/\/ \u53d6\u53cd\u76f8\n      if(startCount==0)\n      {\n        Serial.println(\"Stop.\");          \/\/ \u5370\u51fa\u505c\u6b62\u72c0\u614b  \n      }\n      else\n      {\n        Serial.println(\"Start count...\"); \/\/ \u5370\u51fa\u958b\u59cb\u8a08\u6578\u72c0\u614b  \n      }\n    }\n    else if (lastButtonState == LOW &amp;&amp; buttonState == HIGH)   \/\/ \u82e5\u6309\u9215\u5f9e\u6309\u4e0b(LOW)\u5230\u672a\u6309\u4e0b(HIGH)\n    {      \n      \/\/ \u6309\u9215\u653e\u958b\u6642\uff0c\u60f3\u505a\u7684\u4e8b\n    }\n    lastButtonState = buttonState;    \/\/ \u66f4\u65b0\u6309\u9215\u72c0\u614b\n    \/\/ --------------------------------------------------------------------------------------\n    lastDebounceTime = currentTime;   \/\/ \u66f4\u65b0\u524d\u4e00\u6b21\u72c0\u614b\u6539\u8b8a\u6642\u7684millis()\u6642\u9593\n  }\n  \/\/ ---------------------------------------------------------------------------------------------------------------\n\n\n  \/\/ ---------------------------------------------------------------------------------------------------------------\n  unsigned long currentMillis = millis();          \/\/ \u7576\u524d\u7684millis()\u6642\u9593\n\n  if (currentMillis - previousMillis &gt;= interval)  \/\/ \u82e5\u9054\u5230\u9810\u8a2d\u8a08\u6642\u7684\u6642\u9593\n  {\n    \/\/---------------------------------------------------------------------\n    \/\/ \u6bcf\u7d93\u904e\u4e00\u500binterval\u7684\u6642\u9593\uff0c\u8981\u505a\u7684\u4e8b\n    \/\/---------------------------------------------------------------------\n    if(startCount == 1)\n    {\n      count = count + 1; \n      Serial.println(count);      \n    }\n    \/\/---------------------------------------------------------------------\n\n    previousMillis = currentMillis;  \/\/ \u66f4\u65b0\u524d\u4e00\u6b21\u7684millis()\u6642\u9593\n  }\n  \/\/ ---------------------------------------------------------------------------------------------------------------\n}\n\nvoid showdata(int x)\n{\n  for(int i=0; i&lt;7; i++)\n  digitalWrite(seg[i],bitRead(data[x],i));\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u300a bitRead() \u4f7f\u7528\u8aaa\u660e \u300b bitRead(x, n) x \uff1a\u8981\u8b80\u53d6\u7684\u6578\u5b57\uff0c\u5982\u679c\u8f38\u5165\u662f10\u9032\u4f4d\u621616<\/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-1114","post","type-post","status-publish","format-standard","hentry","category-programming"],"_links":{"self":[{"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1114","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=1114"}],"version-history":[{"count":36,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1114\/revisions"}],"predecessor-version":[{"id":2300,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=\/wp\/v2\/posts\/1114\/revisions\/2300"}],"wp:attachment":[{"href":"https:\/\/www.640629.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.640629.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}