使用TI的MSP430实现完成单片机定时和中断相关设计。(西安电子科技大学综合应用开发实验任务3)

题目要求:
目标:反应检测系统(打地鼠), 设计一个反应检测系统,N个LED指示灯(或者数码管)分别对应N个按键,在指示灯亮的时间t内按下对应按键就算命中,此时指示灯熄灭,否则算miss。
要求:完成单片机定时和中断相关设计。如果大作业没有相关设计部分,则需要单独完成此部分内容;如果大作业中包含相关部分,则只需提交这部分内容的作为平时作业。
平台:MSP430,MCS51,STM32等皆可。
分析:
该任务需要一个记录时间的变量,然后判断是否在5s内摁下按键,及时摁下则红灯亮,绿灯灭;没有在5s内摁下则绿灯长亮。(直到reset)

以下是使用energia开发环境的代码。

const int LED1 =  RED_LED; 
const int LED2 =  GREEN_LED; 
const int buttonPin = PUSH2;
unsigned long time1;
unsigned long time2;

int buttonState = 0;
void setup() {                
  pinMode(LED1, OUTPUT);   
  pinMode(LED2, OUTPUT);  
  pinMode(buttonPin, INPUT_PULLUP);  
  time1 = millis();
  time2 = millis(); 
}

void loop() {
  time2 = millis(); 
  buttonState = digitalRead(buttonPin);
  if (buttonState == LOW){
    if((time2-time1)<5000){
      while(1){
        digitalWrite(LED1,HIGH) ;
        digitalWrite(LED2,LOW) ;
      }
    }
    else{
      while(1){
        digitalWrite(LED1,LOW) ;
        digitalWrite(LED2,HIGH) ;
      }
    }
}
  else{
  digitalWrite(LED2,HIGH) ;
  digitalWrite(LED1,LOW) ;
  }
}
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值