Arduino应用开发:第六章代码及练习答案

编号:button_cnt

[code]
const int D_0 = 8;        //二进制第0位
const int D_1 = 9;        //二进制第1位
const int D_2 = 10;       //二进制第2位
const int BUTTON = 11;    //按键连接管脚      

unsigned char cnt;       //记录按键次数的变量

void setup() {
  // put your setup code here, to run once:
  pinMode(D_0, OUTPUT);
  pinMode(D_1, OUTPUT);
  pinMode(D_2, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);
  cnt = 0;
}

void loop() {
  // put your main code here, to run repeatedly:
  if(digitalRead(BUTTON) == LOW){       //低电平表示按键被按下
    cnt = cnt + 1;
    delay(500);                        //降低电路运行速度
  }
  digitalWrite(D_0, bitRead(cnt, 0) );
  digitalWrite(D_1, bitRead(cnt, 1) );
  digitalWrite(D_2, bitRead(cnt, 2) );
}
[/code]

=========================================================================

编号:button_cnt_1

[code]
const int D_0 = 8;        //二进制第0位
const int D_1 = 9;        //二进制第1位
const int D_2 = 10;       //二进制第2位
const int BUTTON = 11;    //按键连接管脚      

unsigned char cnt;       //记录按键次数的变量
bool pre_state;          //用来前一时刻的状态
bool state;              //用来记录现在状态

void setup() {
  // put your setup code here, to run once:
  pinMode(D_0, OUTPUT);
  pinMode(D_1, OUTPUT);
  pinMode(D_2, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);
  cnt = 0;
  pre_state = HIGH;
  state = HIGH;
}

void loop() {
  // put your main code here, to run repeatedly:
  pre_state = state;               //把旧状态存入前一时刻状态寄存变量
  state = digitalRead(BUTTON);     //读取新的当前状态
  
  if( (pre_state == HIGH)&& (state == LOW) ){       //低电平表示按键被按下
    cnt = cnt + 1;
    
  }
  digitalWrite(D_0, bitRead(cnt, 0) );
  digitalWrite(D_1, bitRead(cnt, 1) );
  digitalWrite(D_2, bitRead(cnt, 2) );
}
[/code]

=========================================================================

编号:button_cnt_2

[code]
const int D_0 = 8;        //二进制第0位
const int D_1 = 9;        //二进制第1位
const int D_2 = 10;       //二进制第2位
const int BUTTON = 11;    //按键连接管脚      

unsigned char cnt;       //记录按键次数的变量
bool pre_state;          //用来前一时刻的状态
bool state;              //用来记录现在状态

void setup() {
  // put your setup code here, to run once:
  pinMode(D_0, OUTPUT);
  pinMode(D_1, OUTPUT);
  pinMode(D_2, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);
  cnt = 0;
  pre_state = HIGH;
  state = HIGH;
}

void loop() {
  // put your main code here, to run repeatedly:
  pre_state = state;               //把旧状态存入前一时刻状态寄存变量
  state = digitalRead(BUTTON);     //读取新的当前状态
  
  if( (pre_state == HIGH)&& (state == LOW) ){       //低电平表示按键被按下
    delay(200);
    cnt = cnt + 1;    
  }
  digitalWrite(D_0, bitRead(cnt, 0) );
  digitalWrite(D_1, bitRead(cnt, 1) );
  digitalWrite(D_2, bitRead(cnt, 2) );
}
[/code]

=========================================================================

编号:button_cnt_cvt

[code]
const int D_0 = 8;        //二进制第0位
const int D_1 = 9;        //二进制第1位
const int D_2 = 10;       //二进制第2位
const int BUTTON = 11;    //按键连接管脚      

unsigned char cnt;       //记录按键次数的变量
bool pre_state;          //用来前一时刻的状态
bool state;              //用来记录现在状态

void setup() {
  // put your setup code here, to run once:
  pinMode(D_0, OUTPUT);
  pinMode(D_1, OUTPUT);
  pinMode(D_2, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);
  cnt = 0;
  pre_state = HIGH;
  state = HIGH;
}

void loop() {
  // put your main code here, to run repeatedly:
  pre_state = state;               //把旧状态存入前一时刻状态寄存变量
  state = digitalRead(BUTTON);     //读取新的当前状态
  
  if( (pre_state == HIGH)&& (state == LOW) ){       //低电平表示按键被按下
    delay(200);
    cnt = cnt + 1;    
  }
  digitalWrite(D_0, !bitRead(cnt, 0) );
  digitalWrite(D_1, !bitRead(cnt, 1) );
  digitalWrite(D_2, !bitRead(cnt, 2) );
}
[/code]

=========================================================================

编号:button_cnt_db

[code]
const int D_0 = 8;        //二进制第0位
const int D_1 = 9;        //二进制第1位
const int D_2 = 10;       //二进制第2位
const int BUTTON = 11;    //按键连接管脚      

unsigned char cnt;       //记录按键次数的变量
bool pre_state;          //用来前一时刻的状态
bool state;              //用来记录现在状态

void setup() {
  // put your setup code here, to run once:
  pinMode(D_0, OUTPUT);
  pinMode(D_1, OUTPUT);
  pinMode(D_2, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);
  cnt = 0;
  pre_state = HIGH;
  state = HIGH;
}

void loop() {
  // put your main code here, to run repeatedly:
  pre_state = state;               //把旧状态存入前一时刻状态寄存变量
  state = digitalRead(BUTTON);     //读取新的当前状态
  
  if( (pre_state == HIGH)&& (state == LOW) ){       //低电平表示按键被按下
    delay(200);
    cnt = cnt + 1;    
  }
  digitalWrite(D_0, bitRead(cnt, 1) );
  digitalWrite(D_1, bitRead(cnt, 2) );
  digitalWrite(D_2, bitRead(cnt, 3) );
}
[/code]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值