打印

老师让我们做的,我也不知道错哪了?大虾们看看,,,XIEIXE

[复制链接]
1648|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tingtang|  楼主 | 2009-3-25 20:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <msp430x22x4.h>
int tmp;
typedef unsigned int uchar;
typedef unsigned int uint;
uchar cnt = 0; //位码
uchar scandata[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x07,0x75,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
/***********全局变量********************/
int key_pressed; //按键是否按下   1--是,  0--否
int key_val;   //存放键值
int key_flag;  //是否放开   1--是,  0--否
int tmp1;
int row;
int col;
int tmp1;
int tmp2;
//键盘逻辑键值与程序计算键值的映射
uchar key_map[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
uchar Dispbuf[2];

/****************
初始化键盘扫描的io端口
*********************/
void init_keypad(void)
{
P1DIR=0xf0;
P1OUT |=0xf0;
key_pressed =0;
key_flag=0;
key_val=0;
}

void main(void)
{
  WDTCTL=WDT_ADLY_1_9;//看门狗计时  1、9毫秒中断
  IE1 |=WDTIE;
  P4DIR=0xff;
  P3DIR=0xff;
  P4OUT=0x00;
  P3OUT=0xff;

  _EINT();  //全局中断
init_keypad();
while(1)
{
  
P1OUT &=0x00;//设置p1out全为0,等待按键输入
tmp = P1IN;//获取p1in
if((key_pressed ==0x00)&&((tmp &0x0f)<0x0f))//如有键按下
{
key_pressed = 1;//如有键按下,设置key_press标志为一
{
uint tmp;
for(tmp = 12000;tmp>0;tmp--);
}

 
tmp1=0x80;
for(row =0;row<4;row++)  //行扫描
{
P1OUT=0xf0;           //p1.4--1.7全输1
P1OUT -= tmp1;           //p1.4--1.7输出四位有一个为0
tmp1>>=1;
if((P1IN & 0x0F)<0x0f)        //是否p1in的p1.0--p1.3有一个0

{
tmp2 = 0x01;             //tmp2检测哪一位为0
for(col = 0;col < 4;col++)   //列检测
{
if((P1IN & tmp2)==0x00)//是否是该列  为0是
{
key_val = key_map[row*4 + col];//获取键值
return;                 //  退出循环
}
tmp2 <<=1;         //tmp2右移一位

}
}
}
            //check_key();//调用它,获取键值
}
else if ((key_pressed == 1)&&((tmp &0x0f)==0x0f))//按键已放
{
key_pressed = 0;//清除key_press标示
key_flag = 1;  //设置key_flag标志
}
else
{
_NOP();
}
  
    if (key_flag==1)
    {
      key_flag=0;
      Dispbuf[0]=key_val /10;
      Dispbuf[1]=key_val %10;
    }
}
}

#pragma vector=WDT_VECTOR
__interrupt void  watchdog_timer(void)
{
 P3OUT=0xff;
 P4OUT=scandata[Dispbuf][cnt]];//段选
 P3OUT &=~(1<<(cnt));//位选
 cnt++;  //位计数变量在0 1间循环
 if (cnt==2)  cnt=0;
}

相关帖子

沙发
NE5532| | 2009-3-25 21:37 | 只看该作者

把我们当仿真器用?连啥问题也不说。

做啥用的程序,硬件结构,电路图啥都没有,大虾不是神仙啊!

使用特权

评论回复
板凳
huangqi412| | 2009-3-25 22:06 | 只看该作者

看来是msp430 ,键盘和数码管实验,,,也不说明具体情况

使用特权

评论回复
地板
斜子| | 2009-3-26 01:39 | 只看该作者

把我们当仿真器用?


这句说得妙

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

33

主题

147

帖子

0

粉丝