0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MSP430单片机按键中断程序

算法&编程学院 来源:网络整理 2018-01-30 18:28 次阅读

#include"IRRemote.h"


voidmain(void)
{
//初始化
Initialize();

//死循环
while(1)
{
unsignedinttransmit;
//初始化变量
transmit=ENDTRANSMIT;
//等待按键按下
SetForPress();
//进入LPM4模式
LPM4;

Debounce();
//扫描键盘
KeySCAN();
//键盘处理
KeyLookup();
if(Error_Flags==0)
{
//有键按下的情况
SetupForRelease();
do
{
//传输数据(RC5码)
Transmit();

transmit=TestRetransmit();
//延时
DelayToNextTransmit();
}while(transmit==RETRANSMIT);
}
}
}

voidInitialize(void)
{
//停止看门狗
WDTCTL=WDTPW+WDTHOLD;
//P2口为输出
P2DIR=0xFF;
//P2.3为TA1功能管脚
P2SEL=0x08;
//清除P2口的输出
P2OUT=0;
//设置DCO频率为1MHz
DCOCTL=CALDCO_1MHZ;
BCSCTL1=CALBC1_1MHZ;
//使能中断
_EINT();
}

voidSetForPress(void)
{
//P1.0和P1.1为输入
P1DIR=0xFC;
//清除P1口的输出,下拉
P1OUT=0;
//使能P1.0和P1.1的电阻
P1REN|=0x03;
//使能键盘
P2OUT|=0x07;
//低到高中断方式
P1IES&=~0x03;
//清除中断标志
P1IFG=0;
//使能中断
P1IE|=0x03;
//清除错误标志
Error_Flags=0;
//清除传输标志
Trans_Flags=0;
}

voidDebounce(void)
{
//SMCLK/8,清除TA
TACTL=TASSEL1+TACLR+ID0+ID1;
//使能CCR0中断
TACCTL0=CCIE;
//设置延时的值
TACCR0=5000-1;
//开始UP模式
TACTL|=MC0;
//进入LPM0模式
LPM0;
//停止并清除TA
TACTL=TACLR;
//清除CCTL0寄存器
TACCTL0=0;
}

voidKeyScan(void)
{
unsignedinti;

//初始化行
RowMask=0x01;
KeyHex=0;
//清除行的值
P1OUT&=~0x03;

for(i=0;i

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620817
  • msp430
    +关注

    关注

    178

    文章

    2223

    浏览量

    228569
  • 中断程序
    +关注

    关注

    0

    文章

    34

    浏览量

    8609
收藏 人收藏

    评论

    相关推荐

    MSP430单片机串口的程序升级方法

    摘要:介绍了一种MSP430单片机通过串口升级程序的方法,并在MSP430F5438上得以实现。通过实验,证明此方法稳定、可靠,避免了利用仿真器更新
    发表于 11-09 20:52

    【下载】MSP430单片机资料大合集

    最新的F15x、Fl6x)所涉及的片内外围模块的功能、原理、应用作了详尽的描述,并配有完整的经过测试的实用子程序;还包括MSP430单片机的开发环境安装方法、汇编语言、C语言程序设计方
    发表于 06-08 18:16

    MSP430单片机实现远程升级

    如下七个选项: 1. 监控程序在何种MSP430上运行 2. 可用的中断个数 3. USART 端口选择 4. 系统复位后监控程序和用户程序
    发表于 07-03 04:13

    MSP430单片机实现远程升级

    如下七个选项: 1. 监控程序在何种MSP430上运行 2. 可用的中断个数 3. USART 端口选择 4. 系统复位后监控程序和用户程序
    发表于 07-09 08:23

    什么是中断MSP430单片机中断机制是怎样的?

    今天我们要涉及一个对于单片机来说非常重要的一个概念和功能。什么是中断?还有MSP430单片机中断机制是怎样的?那么关于
    发表于 10-13 09:18

    MSP430单片机中断中断响应过程

    目录一、硬知识中断的基本概念MSP430单片机中断中断响应过程中断返回过程
    发表于 11-29 07:40

    MSP430系列单片机C语言程序设计与开发

    MSP430系列单片机C语言程序设计与开发MSP430系列是一个具有明显技术特色的单片机品种。关于它的硬件特性及汇编语言
    发表于 10-09 17:23 1096次下载
    <b class='flag-5'>MSP430</b>系列<b class='flag-5'>单片机</b>C语言<b class='flag-5'>程序</b>设计与开发

    MSP430单片机中断系统

    中断MSP430单片机的一大特点,有效地利用中断可以简化程序并提高执行效率。在MSP430
    发表于 07-15 15:27 0次下载

    MSP430单片机

    MSP430单片机
    发表于 12-17 17:01 0次下载

    MSP430单片机的定时器

    实现MSP430单片机的定时器中断,并在中断中使LED闪烁
    发表于 03-15 16:10 5次下载

    MSP430单片机实践篇之MSP430单片机ADC模数转换操作

    MSP430单片机中断编程;ADC(模数转换)的实现;MSP430单片机低功耗控制(休眠)。
    发表于 04-28 10:46 39次下载
    <b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>实践篇之<b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>ADC模数转换操作

    MSP430单片机中断

    MSP430单片机中断
    发表于 11-19 15:51 12次下载
    【<b class='flag-5'>MSP430</b><b class='flag-5'>单片机</b>】<b class='flag-5'>中断</b>篇

    MSP430 TTP229 单片机 触摸按键 实践 51单片机 触摸键盘

    MSP430 TTP229 单片机 触摸按键 实践 51单片机 触摸键盘
    发表于 11-19 19:21 20次下载
    <b class='flag-5'>MSP430</b> TTP229 <b class='flag-5'>单片机</b> 触摸<b class='flag-5'>按键</b> 实践 51<b class='flag-5'>单片机</b> 触摸键盘

    MSP430系列单片机实用C语言程序设计

    MSP430系列单片机实用C语言程序设计
    发表于 01-14 10:48 10次下载

    MSP430单片机中断系统课件ppt

    中断MSP430单片机的一大特点,有效地利用中断可以简化程序并提高执行效率。在MSP430
    发表于 08-01 15:13 0次下载