历史上的今天
返回首页

历史上的今天

今天是:2025年02月14日(星期五)

正在发生

2020年02月14日 | 基于msp430的按键实时控制LED灯

2020-02-14 来源:eefocus

相信玩过430的人都知道它的P1、P2口除了具有普通IO口的功能外,还具有中断功能。


所以那我们就利用它的中断功能来实现一个小项目吧!


那就是通过按键来点亮LED灯


项目大体框架

初始化相应的IO端口:比如我们要用的P1_0—–P1_3来连接按键,然后通过P6口输出.所有,我们要设置P1口的低四位为第二功能引脚,方向为输入,P6为普通引脚,方向为输出。


设置好P1端口低四位的中断触发方式,如下降沿;打开相应的中断控制位,和打开总中断。


然后编写函数,下载到电路,调试,实现。


开发板介绍

8个LED一端连在P6口上,一端与VCC相连,共阳。

四个独立按键一端分别连在P1口的低四位,一端接地。

代码

/*********主函数main************/


/************************************************************

*作者:风儿与沙

*版本:1.0

*时间:2018/7/4

*功能:通过四个独立按键,产生外部中断,来控制4组LED发亮

*MCU:  msp430F149

*************************************************************/

#include

#include "Config.h"      //引入开发板硬件配置文件

#include "irq_port.c"    //引入端口初始化源文件


//相关宏

#define  LED8    P6OUT

#define  LED8DIR P6DIR

/*************************************************************

*                    主函数

*************************************************************/

void main( void )

{

  // Stop watchdog timer to prevent time out reset

  WDTCTL = WDTPW + WDTHOLD;    //关闭看门狗定时器

  Port_init();                //端口初始化

  while(1);

}

//**********************************************************************

//  P1口中断服务程序,需要判断

//**********************************************************************

#pragma vector = PORT1_VECTOR

__interrupt void P1_IRQ(void)

{

  switch(P1IFG&0x0F)

  {

     case 0x01: LED8 = 0xFC;P1IFG=0x00;break;     // 引脚0对应S1中断,必须手动清标志位,点亮D1D2

     case 0x02: LED8 = 0xF3;P1IFG=0x00;break;     // 引脚1对应S2中断,必须手动清标志位,点亮D3D4

     case 0x04: LED8 = 0xCF;P1IFG=0x00;break;     // 引脚2对应S3中断,必须手动清标志位,点亮D5D6

     case 0x08: LED8 = 0x3F;P1IFG=0x00;break;     // 引脚3对应S4中断,必须手动清标志位,点亮D7D8

  }

}

/////////////////////////////////////////////////////////////////////////

IQR_PORT源文件

////////////////////////////////////////////////////////////////////////

//*************************************************************************

//  初始化IO口子程序

//*************************************************************************

void Port_init()

{


  P1SEL = 0x00;                   //P1普通IO功能

  P1DIR = 0xF0;                   //P10~P13输入模式,外部电路已接上拉电阻

  P1IE  = 0x0F;                   //开启P1低四位中断

  P1IES = 0x0F;                   //下降沿触发中断

  P1IFG = 0x00;                   //软件清零中断标志寄存器

  _EINT();                        //打开总中断


  LED8DIR |= 0xFF;                 //P6口输出模式

  LED8  |= 0xFF;                   //先关闭所有LED

}


附上局部电路图 

LED 
按键 

搞定!

推荐阅读

史海拾趣

Axon' Cable公司的发展小趣事

随着科技的不断进步,Axon' Cable公司逐渐将业务拓展至航空航天领域。公司研发出了一系列高性能、高可靠性的数据网络系统和连接器产品,成功应用于众多重要的航空航天项目中。这些产品的成功应用不仅提升了Axon' Cable在航空航天领域的知名度,也为公司带来了丰厚的利润和更广阔的发展空间。

华润华晶公司的发展小趣事

Axon' Cable公司自1965年在法国成立起,便致力于通讯连接器的研发与生产。在创业初期,公司面临着资金短缺、技术瓶颈和市场竞争的诸多挑战。然而,Axon' Cable凭借其坚定的信念和不懈的努力,逐步突破了技术难关,并成功开发出了一系列具有竞争力的产品。这些产品在市场上得到了广泛认可,为公司的后续发展奠定了坚实的基础。

南京中科微公司的发展小趣事

CSM深知在半导体领域,合作是实现共赢的关键。因此,公司积极与TSMC、UMC、SMIC等国内外领先的半导体芯片厂商建立合作关系,共同推进流片生产和技术研发。这种合作模式不仅提高了CSM的生产效率和产品质量,也促进了整个半导体产业链的发展。

Gruner AG公司的发展小趣事
在需要高安全性的控制系统中,如工业自动化、医疗设备等领域,光耦合器可以实现电路之间的电气隔离,提高系统的安全性和可靠性。
Ho Chien Electronics Group Inc公司的发展小趣事
通过给LED施加适当的电压和电流,观察其发光情况是否正常。
AAEON公司的发展小趣事
明确电路需要实现的功能,如信号传输、电气隔离、放大等。

问答坊 | AI 解惑

2008黑龙江电子竞赛试题下载

本帖最后由 paulhyde 于 2014-9-15 09:04 编辑 A题 宽带前置放大器电路(本科) B题 运水机器人(本科) C题 无线汉字识别装置(本科) [ 本帖最后由 open82977352 于 2010-2-3 10:46 编辑 ]  …

查看全部问答>

有谁了解HART协议的?小妹求助啊

最近在准备一个智能变送器的项目,要用到HART协议,差了些资料,大致了解了HART协议的内容,但就是不知道如何下手,还请高手指点迷津啊! 先在这里谢谢了。…

查看全部问答>

关于舵机的编程问题

小弟最近刚学汇编,还是个菜鸟,正在研究舵机,需要用汇编写一点程序驱动舵机转动,到网上找了半天,很少有现成的程序,而且写的很复杂,很难理解,有没有那位大侠帮帮写一点关于驱动舵机的汇编程序示例,顺带稍微的讲解,小弟感激不尽。(我买的舵 ...…

查看全部问答>

make后的问题

在make后,提示出现一个error 请指正错误在哪? 谢谢 [root@localhost qt-serial]# make g++ -c -pipe -DQWS -fno-exceptions -fno-rtti -Wall -W -O2 -fno-default-inline -DNO_DEBUG -I/working/qt/qt-2.3.7/include -o hello.o hello.cpp I ...…

查看全部问答>

TQ6410有人搞了吗?

怎么样?资料全吗?…

查看全部问答>

STM32F105串口乱码问题

采用的是STM32F105,串口输入始终是乱码 以下是串口的配置信息 void USART1_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure;     USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructur ...…

查看全部问答>

刚学习ARM 不知道买点什么书看

本人现在研究生阶段,想学习下ARM9,不知道买点什么好一点的书籍,ARM的和LINUX的都需要 求助 求助 求助…

查看全部问答>

简介

1.1       简单说明 Figure 1  msp430f149的内部结构图 1.2       地址分布 Msp430f149存储单元采用的是冯·诺依曼体系结构,即ROM和RAM使用同一组地址。Msp430f149是16位 ...…

查看全部问答>

MSP430依次采样

最近在做一个项目,想实现MsP430对Flash的控制,有On和OFF按钮,ON可以控制电路开始采样,OFF控制停止采样,比如第一次按下on后采集到的数据存到了Flash的第一块和第二块的一部分,按下Off停止采集,下一次采集的时候就可以直接存在Flash的第三块上 ...…

查看全部问答>