MSP430键盘程序

发布者:yuehui最新更新时间:2016-08-23 来源: eefocus关键字:MSP430  键盘程序 手机看文章 扫描二维码
随时随地手机看文章
// 此示例程序为中断方式,得到键盘的键值,存放在队列keybuff[10]中

// 此示例程序没有显示,
// 键盘的按键按下引起P1口的中断服务程序,得到键盘的键值,保存到键值队列
// 在其他的中断服务程序中通过键值队列中的数据引导程序的流程
#i nclude   
unsigned char keybuff[10];
unsigned char keypoint=0; 
void delay(int v)
    {
        while(v!=0)v--;
    }
 
unsigned char key(void)
  {
    unsigned char x=0xff;
    P1DIR=0X0F;
    P1OUT=0X01;                 //扫描第一行
    if((P1IN&0X70)==0X10)       
       x=0;
       else
          if((P1IN&0X70)==0X20)
            x=1;
                else
                  if((P1IN&0X70)==0x40)
                    x=2;
       else 
        {
          P1OUT=0X2;            //扫描第二行
          if((P1IN&0X70)==0X10)
             x=3;
             else
               if((P1IN&0X70)==0X20)
                  x=4;
                    else
                      if((P1IN&0X70)==0x40)
                        x=5;
           else
           {
            P1OUT=0X4;           //扫描第三行
            if((P1IN&0X70)==0X10)
            x=6;
              else
                if((P1IN&0X70)==0X20)
                x=7;
                  else
                  if((P1IN&0X70)==0x40)
                    x=8;
             else 
             {P1OUT=8;           //扫描第四行
             if((P1IN&0X70)==0X10)
       x=9;
       else
          if((P1IN&0X70)==0X20)
            x=10;
                else
                  if((P1IN&0X70)==0x40)
                    x=11;
                    }
             }      
         }    
  return(x);
  }
  
  
unsigned char keyj(void) 
    {unsigned char x;
    P1DIR=0x0f;
    P1OUT=0x0f;        //键盘硬件:P10--P13为行线,最上面一根为P10
    x=(P1IN&0X70);      //         P14--P16为列线,最左边一根为P14,列线下拉
    return(x);          // 无按键,返回 0?;  有按键返回 非0
    }  
     
       
interrupt[PORT1_VECTOR] void port1key(void)
        {
        if(keyj()!=0X00)
           {
           delay(300)  ;   //消抖动
               if(keyj()!=0X0)
                 {
                    keybuff[keypoint]=key();    //按键见键值保存到队列
                    keypoint++;                 //
                    if(keypoint==10)
                         keypoint=0;
                  }
            }
         P1OUT=0X0F;
         P1IFG=0X0;         //清除中断标志
        }

  

void main(void)

  WDTCTL = WDTPW + WDTHOLD;  /*   // Stop WDT */
  P1DIR=0XF;
  P1OUT=0XF;
  P1IES=0X0;
  P1IE=0X70;    //列线上升沿允许P1中断
   _EINT();                      /*/ Enable interrupts                 */
  
  while(1)
  { 
  
     LPM0;                   
    _NOP();   
}

关键字:MSP430  键盘程序 引用地址:MSP430键盘程序

上一篇:MSP430单片机矩阵键盘测试程序
下一篇:MSP430液晶LCD048

推荐阅读最新更新时间:2024-03-16 15:06

采用MSP430与CC2420芯片进行无线传感器网络节点的设计
无线传感器网络是信息技术发展到一定阶段后出现的一种聚合传感器、嵌入式、现代网络以及无线通信、分布式信息处理等多种综合性的技术。传感器网络能够广泛用于军事、环境监测和预报、健康护理、智能家居、建筑物状态监控、复杂机械控制、城市交通、空间探索、大型车间和仓库管理,以及机场、大型工业园区的安全监测等领域。文中设计了一种无线传感器节点,硬件设计基于Moteiv方案,采用超低功耗单片机MSP430F1611作为数据处理芯片,以CC2420无线射频芯片作为收发芯片,并拥有JTAG以及其他扩展接口。通过硬件测试以及软件调试该节点符合设计指标。 1 系统概述 无线传感器网络由大量无线传感器节点组成,每个节点由传感器采集数据,数据处理芯片负责接
[单片机]
采用<font color='red'>MSP430</font>与CC2420芯片进行无线传感器网络节点的设计
基于MSP430单片机实现CPFSK调频数据广播接收机的设计
一、 引言 我们独立自主开发了数据广播编码器和微型低功耗调频数据广播接收机,整套系统采用连续相位频移键控(CPFSK)调制方式,副载波频率为72KHz,占用带宽约16Khz,数据传输速率4.8KHZ。采用CPFSK调制方式使接收机易于实现,与QPSK的调制方式相比对相位稳定度要求不高,不易受外界温度噪声的影响,而且在信号解调处理时实现低功耗。 由于在发送端先后进行了数据编码、信道调制、线性调频,所以接收设备要完成信号逆处理。硬件结构框图: 二、MSP430单片机的特点及在接收机中的应用 TI公司MSP430系列单片机的超低功耗特性(运行在1MHz时钟条件下工作电流视工作模式不同为0.1-400uA)、强大的外围模块功
[单片机]
基于<font color='red'>MSP430</font>单片机实现CPFSK调频数据广播接收机的设计
分享MSP430用TB捕获脉宽问题与解决心得
============================================================================================================================= 硬件:单片机:MSP430F149 晶振:32K,8M 输入信号:通过无线接收到低电平10ms,高电平7.5ms, 输入口:P4.0(TB0) 要求:捕获低电平的脉宽 =============================================================================================================
[单片机]
MSP430程序库<五>SPI同步串行通信
SPI总线系统是一种同步串行外设接口;是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。 许多的芯片都用这种协议通信:EEPROM、Flash、实时时钟、AD转换器、数字信号处理器等:MSP430的USART模块不仅能够实现异步模式(见:MSP430程序库 二 UART异步串口),而且支持同步串行通信(即SPI模式);其SPI支持3线、4线操作,支持主机模式和从机模式,字符长度可以7位或8位等。由于要用AD7708芯片完成AD采样,AD7708是通过SPI与其它设备通信的;本程序比较简化,
[单片机]
<font color='red'>MSP430</font><font color='red'>程序</font>库<五>SPI同步串行通信
MSP430驱动OV7670摄像头的程序和注意事项
再用MSP430 调试摄像头时,其实按照网上给的步骤完全可以实现,只是我们很少注意一些细节上的问题,导致最终效果出不来,看着液晶屏上要么一直一种颜色,要么就是乱码,要么就是只有物体轮廓,我感觉后两种情况还算好吧,至少离成功不远了。 1、一般带FIFO的摄像头模块引脚一般在18-22个之间,但有的引脚是一般不用接,比如行扫描同步信号,还有闪光灯,还有低功耗之类的,这些不用在意, 接线极其重要,不要看着人家给的例子上面的标号来接你的摄像头,因为淘宝上的摄像头很多,每家店之间的都有可能不同,比如我同学的的是18脚的,我的是22脚,我的,我们 的两个摄像头上的引脚名称有好几个都不一样,有的尽管一样但是可能会误导你,还是看看买摄
[单片机]
MSP430按键中断Ⅱ
#include msp430f149.h typedef unsigned char uchar; typedef unsigned int uint; #define keyin (P1IN & 0X0F) #define wei_h P5OUT |= BIT5 #define wei_l P5OUT &= BIT5 #define duan_l P6OUT &= ~BIT6 #define duan_h P6OUT |= BIT6 uchar table = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}
[单片机]
MSP430单片机 矩阵键盘与数码管实验
#include msp430x44x.h #define ROW P2OUT //矩阵键盘的行宏定义 #define COL P2IN //矩阵键盘的列宏定义 #define DPYOUT P3OUT //数码管输出口宏定义 unsigned char keyval; //键值 //共 阳 极数码管的码表 unsigned char LED7CA ={~0x3F,~0x06,~0x5B,~0x4F,~0x66,~0x6D,~0x7D, ~0x07,~0x7F,~0x6F,~0x77,~0x7C,~0x39,~0x5E,~0x79,~0x71,0
[单片机]
一种基于MSP430的超低功耗电子温度计的设计
  本文设计的超低功耗电子温度计能够通过温度传感器测量和显示被测量点的温度,并可进行扩展控制。该温度计带电子时钟,其检测范围为l0℃~30℃,检测分辨率为1℃,采用LCD液晶显示,整机静态功耗为0.5μA。其系统设计思想对其它类型的超低功耗微型便携式智能化检测仪表的研究和开发,也具有一定的参考价值。 1元器件选择    本系统的温度传感器可选用热敏电阻。在10~30℃的测量范围内,该器件的阻值随温度变化比较大,电路简单,功耗低,安装尺寸小,同时其价格也很低,但其热敏电阻精度、重复性、可靠性相对稍差,因此,这种传感器对于检测在1℃以下,特别是分辨率要求更高的温度信号不太适用。   显示部分可以采用笔段式LCD液晶显示。特
[安防电子]
一种基于<font color='red'>MSP430</font>的超低功耗电子温度计的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved