历史上的今天
返回首页

历史上的今天

今天是:2024年10月15日(星期二)

正在发生

2020年10月15日 | MSP430单片机按键中断程序

2020-10-15 来源:elecfans

#include "IRRemote.h" 


void main(void) 

    //初始化 
    Initialize();                            

//死循环 
    while(1) 
    { 
        unsigned int transmit; 
        //初始化变量 
        transmit = ENDTRANSMIT; 
        //等待按键按下 
        SetForPress(); 
        //进入LPM4模式 
        LPM4; 
         
        Debounce();  
        //扫描键盘 
        KeySCAN();  
        //键盘处理 
        KeyLookup();  
        if (Error_Flags == 0)  
        {                  
            //有键按下的情况 
            SetupForRelease(); 
            do  
            {  
                //传输数据(RC5码) 
                Transmit(); 
                 
                transmit = TestRetransmit(); 
                //延时 
                DelayToNextTransmit();  
            } while (transmit == RETRANSMIT); 
        } 
    } 


void Initialize(void) 

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


void SetForPress(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; 


void Debounce(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; 


void KeyScan(void) 

    unsigned int i; 
     
    //初始化行 
    RowMask = 0x01; 
    KeyHex = 0; 
    //清除行的值 
    P1OUT &= ~0x03;  
     
    for (i=0; i 


推荐阅读

史海拾趣

DAPAudio公司的发展小趣事

随着公司产品的不断成熟和市场的逐渐扩大,DAPAudio开始将目光投向国际市场。通过与国际知名品牌的合作和自身的市场拓展努力,DAPAudio的产品逐渐进入欧美等发达国家和地区的市场。在国际市场上,DAPAudio凭借其卓越的产品性能和优质的服务赢得了广泛的赞誉和认可。

科达嘉CODACA公司的发展小趣事

在追求技术创新的同时,科达嘉电子也积极承担社会责任。公司关注环境保护,推行绿色生产,努力减少生产过程中的环境污染。此外,科达嘉还积极参与社会公益活动,为社区的发展贡献力量。通过不断创新和履行社会责任,科达嘉电子在电子行业中树立了良好的企业形象。

广东长利光电(Changli Optoelectronic)公司的发展小趣事

在公司成立之初,广东长利光电面临着巨大的市场压力和资金困难。然而,公司创始人凭借着对LED技术的深刻理解和市场前景的坚定信念,决定专注于LED产品的研发和生产。他们引进了先进的生产设备和技术,不断创新,逐渐在市场上站稳了脚跟。这一时期,公司的研发团队经常加班加点,反复试验,以确保产品的质量和性能达到最佳状态。

辉芒微(FMD)公司的发展小趣事

近年来,辉芒微积极筹备上市工作,旨在通过资本市场进一步拓展融资渠道和品牌影响力。尽管在上市过程中经历了两次撤回申请资料的波折,但公司始终保持着对资本市场的热情和信心。通过不断优化内部管理、提升产品竞争力和加强市场拓展,辉芒微最终赢得了市场的广泛认可。其产品被广泛应用于智能家居、生活电器、智能穿戴等领域,并与小米、飞科、中兴等众多知名品牌建立了长期稳定的合作关系。

德芯半导体(Doeshare)公司的发展小趣事

德芯半导体深知人才是企业发展的核心。因此,公司注重人才队伍的建设,吸引了一批具有丰富经验和专业知识的资深工程师和管理人员。这些人才不仅为公司带来了先进的技术和管理经验,还为公司的发展提供了源源不断的动力。公司设立技术委员会,布局先进封装项目,推动公司在高端封装技术上的突破。

BELLING LEE公司的发展小趣事

面对不断变化的市场环境和日益激烈的竞争压力,BELLING LEE公司始终保持着创新的精神和敏锐的市场洞察力。公司不断推出具有创新性和前瞻性的新产品和技术,引领着电子行业的发展趋势。同时,公司还加强了对新兴技术的研究和投入,为未来市场的竞争做好了充分准备。


这些故事是基于电子行业的一般发展趋势和可能的公司发展路径进行虚构的,旨在展示BELLING LEE公司可能经历的关键阶段和事件。请注意,这些故事并非基于实际事实,也不代表BELLING LEE公司的真实发展历程。在实际写作中,如果需要描述真实公司的发展故事,应基于可靠的历史资料和公开信息进行编写。

问答坊 | AI 解惑

热爱乃是工作最大的动力

“热爱乃是工作最大的动力”无论从事何种行业,‘热爱\'是不可缺少的前提,而且一旦用心投入,便 会看到‘冰山效应\',试想要使冰山融化是需要多大的热情,那是一种与企业‘同呼吸,共命运\'的感觉。   刚走出菁菁校园,步入社会,站在择业的 ...…

查看全部问答>

reset问题

xilinx FPGA中,SRL可由LUT实现,在代码中不加reset信号,那么综合出来的结果就是只有LUT和register,如果加了reset后,综合出来的结果还有些FF,资源较多,故可以不加reset信号,但是在FPGA重新配置时,FPGA是否自己会主动复位,还是说保持上次配 ...…

查看全部问答>

[ERP]深圳嘉立盛公司专业订制ERP,OA , CRM,进销存,

[ERP]深圳嘉立盛公司专业订制ERP,OA , CRM,进销存,1000元起订 深圳嘉立盛是一家专业从事软件开发订制,对ERP,OA,CRM,仓库进销存,客户管理系统,软件的订制有一流的经验,先后为多家中,小型公司提供过软件订制服务,先后同支付宝,财富通,快钱进 ...…

查看全部问答>

飞思卡尔智能汽车比赛

请问飞思卡尔的电磁组用什么传感器好  具体点?…

查看全部问答>

如何用串口连接ATtiny2313(AVR)和MC68HC908AP(Freescale)

如题。 串口设置:9600 bps , 8bits, 1 stop bit, no parity MC68HC908AP上使用了上拉电阻(阻值不知道) ATtiny2313上没使用任何上拉电阻 我曾试着用线直接TxD-RxD,RxD-TxD连接,但是有严重的信号错误,根本无法识别。 连个单片机我都成功的 ...…

查看全部问答>

水温控制系统

本帖最后由 paulhyde 于 2014-9-15 09:41 编辑 精确度在0.5以下的温度传感器 [ 本帖最后由 Run~1 于 2010-8-14 21:28 编辑 ]  …

查看全部问答>

Cortex-M3技术参考手册_CN.pdf

                                 希望能找到中文的Cortex-M3 技术参考手册.pdf !…

查看全部问答>

帮忙把89c52 16x32 LED点阵汇编改成C语言

[localimg=1081,556]1[/localimg] 以下是代码   ;         引脚定义;********************************************************************ROW0     EQU     ...…

查看全部问答>

有关enet程序

我把eint-io的程序烧进去,但是显示屏上出现MAC Address not programmed!是不是MAC地址没有写进去?该怎么解决呢?麻烦路过的大哥帮帮忙!…

查看全部问答>