1602液晶显示屏(串行通讯)
管脚分布示意图:
以下是按键计数器的代码:
int a=0;
int b;
int c=0,d=1;
void setup()
{
Serial.begin(9600);
pinMode(7,OUTPUT);
Serial.print(“$CLEAR\r\n”);
Serial.print(“$PRINT Number:0\r\n”);
}
void loop()
{
digitalWrite(7,HIGH);
b=analogRead(0);
if(b>1000)
{
delay(400);
if(b>1000)
{
c=1;
}
}
if(b<1000)
{
delay(400);
if(b<1000)
{
d=0;
}
}
if(c==1&&d==0)
{
a++;
Serial.print(“$CLEAR\r\n”);
Serial.print(“$GO 1 1\r\n”);
Serial.print(“$PRINT Number:”);
Serial.print(a);
Serial.print(“\r\n”);
Serial.print(“$CURSOR 0 0\r\n”);
c=0;
d=1;
}
}
遗留问题:对于按键,上述代码解决了长时间按住数值不断变化的问题,但是笔者认为处理方式不好,不知道有没有更好的方式来处理:判断一次按键,这个问题。
能否借鉴“边沿触发”的想法:长时间按键只计数一次?如这么做,能否避免快速按键时出现漏计数? — 乐永康 2013/07/21 13:22
Attention
在复制代码的时候一地要把代码中的中文双引号改成英文双引号,否则程序会报错! — 沈金辉 2013/09/20 14:18