找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3165|回复: 4
收起左侧

MSP430单片机按键实现跑马灯,怎么用中断的方式来实现?

[复制链接]
ID:434526 发表于 2018-11-28 19:29 | 显示全部楼层 |阅读模式
这是我在Proteus8.7上仿真跑马灯的图:
跑马灯.png
#include <msp430f249.h>

void main(void)

{
   unsigned int i;
   char j,k;
   WDTCTL  =WDTPW  + WDTHOLD   ;
   P4DIR  =0xff;
   while(1)
   {
      k=1;
      for(j=0;j<8;j++)
      {
  P4OUT  =~k;
  for(i=65535;i>0;i--);
     k=k<<1;
      }
   }
}

这个代码是一运行跑马灯就依此亮,请问怎么用按键中断的方法来实现跑马灯的亮灭呢,就是按一下就开始依此亮,然后再按一下就停止。

回复

使用道具 举报

ID:164602 发表于 2018-11-29 08:52 | 显示全部楼层
很简单啊。
外部中断服务程序中,加入一个位变量,按一次置1,再按一次置零。
你这边的显示主程序中,加入if语句,如果是1,就走马灯,如果是零,就停止了。
回复

使用道具 举报

ID:308437 发表于 2018-11-29 08:58 | 显示全部楼层
你可以尝试:在中断中进行按键扫描,然后,按键函数内设置一个标志位。通过识别这个标志位,达到目的
回复

使用道具 举报

ID:434526 发表于 2018-11-29 18:33 | 显示全部楼层
HC6800-ES-V2.0 发表于 2018-11-29 08:52
很简单啊。
外部中断服务程序中,加入一个位变量,按一次置1,再按一次置零。
你这边的显示主程序中,加 ...

emmmm,小弟愚钝,大哥可以帮忙写一下程序吗
回复

使用道具 举报

ID:434526 发表于 2018-11-29 18:34 | 显示全部楼层
yousunny 发表于 2018-11-29 08:58
你可以尝试:在中断中进行按键扫描,然后,按键函数内设置一个标志位。通过识别这个标志位,达到目的

可以帮忙写一下程序吗,谢谢啦,please
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表