社区导航

 
查看: 1270|回复: 3

[资料分享] MSP430学习笔记7-4*4键盘的对应数码管显示

[复制链接]

3360

TA的帖子

421

TA的资源

五彩晶圆(中级)

Rank: 8Rank: 8

荣誉会员勋章

发表于 2013-11-29 18:58:03 | 显示全部楼层 |阅读模式
这个例程也是开发板上面的一个经典例程,我对程序的框架进行了修改,更适合以后的调用。具体的4*4键盘扫描原理较为基础这里不再赘述,这里我认为比较重要的是要养成一个良好的写程序的习惯,想4*4键盘扫描这样的函数可以写成一个固定的C或者H文件,便于以后调用。先看看主程序:

/***********************************************
程序功能:扫描4X4键盘并将键值在数码管上显示


------------------------------------------------
测试说明:按动K1~K16按键,观察数码管显示
************************************************/
#include <msp430x14x.h>
#include "Keypad.C"

//数码管7位段码:0--f
unsigned char scandata[16] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
                              0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//记录显示位数的全局变量
unsigned char cnt = 0;
//显示缓存
unsigned char Dispbuf[2];

//引用外部变量的声明
extern unsigned char key_Pressed;      
extern unsigned char key_val;         
extern unsigned char key_Flag;


/********************主函数********************/
void main(void)
{
    /*下面六行程序关闭所有的IO口*/
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0XFF;

    P6DIR |= BIT2;P6OUT |= BIT2;  //关闭电平转换      
    WDTCTL = WDT_ADLY_1_9;        //设置内部看门狗工作在定时器模式,1.9ms中断一次
    IE1 |= WDTIE;                 //使能看门狗中断

    _EINT();                      //打开全局中断
    Init_Keypad();
    while(1)
    {
        Key_Event();

        if(key_Flag == 1)
        {
            key_Flag = 0;
            Dispbuf[1] = key_val / 10;
            Dispbuf[0] = key_val % 10;

        }
    }
}
/*******************************************
函数名称:watchdog_timer
功    能:看门狗中断服务函数,在这里输出数码管的
          段选和位选信号
参    数:无
返回值  :无
********************************************/
#pragma vector=WDT_VECTOR
__interrupt void watchdog_timer(void)
{
    P4OUT = 0xff;
    P5OUT = scandata[Dispbuf[cnt]];         //输出段选信号
    P4OUT &= ~(1 << (cnt+2));               //输出位选信号

    cnt++;                                  //位计数变量在0~1之间循环
    if(cnt == 2) cnt = 0;
}


作者:emouse
此帖出自MSP430论坛


回复

使用道具 举报

11

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-1-10 11:53:34 | 显示全部楼层
本帖最后由 天微原厂总部 于 2014-1-10 14:38 编辑

楼主给力,我也整理了LED和LCD数码管驱动IC全套规格书供大家下载,提高工作效率。 LED数码管驱动IC全套规格书.rar (12.04 MB, 下载次数: 40)

点评

感谢你的分享,但好像下载不了啊。。  详情 回复 发表于 2014-1-10 12:30


回复

使用道具 举报

419

TA的帖子

5

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2014-1-10 12:30:34 | 显示全部楼层
天微原厂总部 发表于 2014-1-10 11:53
楼主给力,我也整理了LED和LCD数码管驱动IC全套规格书供大家下载,提高工作效率。

感谢你的分享,但好像下载不了啊。。

点评

现在可以了  详情 回复 发表于 2014-1-10 14:39
终于逐渐稳定下来了,,有时间可以更新这里面的内容了。


回复

使用道具 举报

11

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2014-1-10 14:39:26 | 显示全部楼层
jqh_111 发表于 2014-1-10 12:30
感谢你的分享,但好像下载不了啊。。

现在可以了


回复

使用道具 举报

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

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-10-23 04:18 , Processed in 0.132447 second(s), 19 queries , Gzip On, MemCache On.

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